開源 lua 調試器

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


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

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

linux

它是什麼:

socket

是一個lua 的遠程調試器。

使用平臺:

函數

Windows 與 Linux

簡略的說明: oop

文件lxdebug.lua爲被調試者

文件ldbclient.lua爲調試者

適用場合、範圍:

ui

    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()

注意: google

若在win下跑調試者,則有個問題注意下。 若當前系統控制檯爲本地編碼,而遠端被調試者腳本代碼爲utf8編碼,那麼l以及其餘會顯示文件內容的命令會爲亂碼。 若在Linux下跑調試者,由於linux終端默認(大多數吧)就是utf8,這樣也要注意,遠端腳本存utf8比較好。 具體看使用者。  
相關文章
相關標籤/搜索