支持调试纯脚本以及调试嵌入方式使用的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比较好。 具体看使用者。