支持調試純腳本以及調試嵌入方式使用的lua腳本, 僅僅為遠程調試(socket通訊)。
類似GDB的使用方式。
項目地址:http://code.google.com/p/ldb/
詳細文檔地址:這里 - 最新更新
它是什么:
是一個lua 的遠程調試器。
使用平台:
Windows 與 Linux
簡略的說明:
文件lxdebug.lua為被調試者
文件ldbclient.lua為調試者
適用場合、范圍:
- 被調試端是純腳本。 此時切記在腳本最開始執行的地方如此寫:
local ldb = require"lxdebug"
ldb.debug_pure_lua() --此函數在lxdebug.lua里定義,切記先明白何時調用何種接口。 參數為端口。若不指定,則端口為0xdeb。端口被占用則會無法啟動,並有錯誤日志。
2. 被調用者存在邏輯幀的概念。(可以理解為間隔比較小的時間,比如數百ms之內, 會重復進入某個函數)。 此時最好別用純腳本的調試接口,因為他不支持高速模式。所謂高速模式:當存在邏輯幀概念的時候,會根據斷點有效情況等,來決定是否hook行事件,若無斷 點,則其額外開銷極小,就是在邏輯幀函數中做一下檢測,而不是執行每行時都檢測下。使用方法如下:初始化的文件中:local ldb = require"lxdebug"
ldb.startdebug_use_loopfunc()--可以傳入端口;默認為0xdeb
在邏輯幀執行的函數中執行如下函數: ldb.debug_runonce()
當要停止當前的調試行為或者要清除,則調用: ldb.stopdebug()
注意:
若在win下跑調試者,則有個問題注意下。 若當前系統控制台為本地編碼,而遠端被調試者腳本代碼為utf8編碼,那么l以及其他會顯示文件內容的命令會為亂碼。 若在Linux下跑調試者,因為linux終端默認(大多數吧)就是utf8,這樣也要注意,遠端腳本存utf8比較好。 具體看使用者。
