開源 lua 調試器


支持調試純腳本以及調試嵌入方式使用的lua腳本, 僅僅為遠程調試(socket通訊)。
類似GDB的使用方式。


項目地址:http://code.google.com/p/ldb/

詳細文檔地址:這里    - 最新更新

它是什么:

是一個lua 的遠程調試器。

使用平台:

Windows 與 Linux

簡略的說明:

文件lxdebug.lua為被調試者

文件ldbclient.lua為調試者

適用場合、范圍:

    1. 被調試端是純腳本。 此時切記在腳本最開始執行的地方如此寫:
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比較好。 具體看使用者。  


免責聲明!

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



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