lua遠程調試 Remote Debug


日常的debug

當把一個本地項目部署到遠程測試服務器后有可能出現意想不到錯誤,為了排查問題可能會變成:

這樣:

然后這樣:

最后就:

最可怕的是,由於堆棧的關系,很難在一次debug日志中拿到想要的信息,往往是一層層往下打日志,才能拿到想要的debug信息。

remote debug

本地服務器開放端口,將遠程服務器的斷點信息打到本地服務器。

那具體如何實現呢?

jetbrains的“EmmyLua”插件 + mobdebug庫

本地jetbrains增加EmmyLua插件安裝

遠端服務器增加mobdebug包放到項目debug目錄下,並增加配置信息

https://github.com/pkulchenko/MobDebug/blob/master/src/mobdebug.lua

local mobdebug = require("debug.mobdebug");
mobdebug.rbasedir("/usr/local/openresty/nginx/lua/")  -- remote
mobdebug.lbasedir("/Users/wilburxu/lua/test/")  -- local
mobdebug.start("host.docker.internal", 28172);


ps:斷點信息發回的是遠端服務器的line,所以本地服務器要保證和遠端服務器的line一致。

本地添加調試configuration

發送請求

就可以得到我們想要的堆棧信息了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM