支持調試純腳本以及調試嵌入方式使用的lua腳本, 僅僅爲遠程調試(socket通信)。
相似GDB的使用方式。
項目地址:http://code.google.com/p/ldb/
詳細文檔地址:這裏 - 最新更新
linux
它是什麼:
socket
是一個lua 的遠程調試器。
使用平臺:
函數
Windows 與 Linux
簡略的說明: oop
文件lxdebug.lua爲被調試者
文件ldbclient.lua爲調試者
適用場合、範圍:
ui
- 被調試端是純腳本。 此時切記在腳本最開始執行的地方如此寫:
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()
注意: google
若在win下跑調試者,則有個問題注意下。 若當前系統控制檯爲本地編碼,而遠端被調試者腳本代碼爲utf8編碼,那麼l以及其餘會顯示文件內容的命令會爲亂碼。 若在Linux下跑調試者,由於linux終端默認(大多數吧)就是utf8,這樣也要注意,遠端腳本存utf8比較好。 具體看使用者。