我的公司有一个程序,它使用Lua嵌入其运行时,从磁盘加载.lua文件并重复执行其中定义的函数.
有没有办法附加到正在运行的进程并在.lua文件中设置断点? (我接受gdb风格的命令行调试作为Lua发行版的一部分,或者也许是提供类似Visual Studio的GUI断点的第三方IDE).
或者是因为运行时从磁盘加载随机文件的性质,我要求的是完全无意义的和不可取的?
编辑:由于Lua自己的debug.getinfo()
功能可以确定给定功能的源文件,而且debug.sethook()
允许为每个新的代码行输入回调,所以看起来并不荒谬.因此,从磁盘加载源代码是有道理的,并且能够告诉解释器何时从该文件执行特定的代码行.问题仍然存在:如何锁定到一个具有Lua解释器的现有进程,并注入我自己的跟踪功能(然后可以监视文件/行号对并暂停执行)?
解决方法
这是我经过多次搜索后使用的一种替代方法.如果你有一个加载lua的外部可执行文件,我可以在几分钟内完成工作. op是非常敏感的,它有一个交互式调试器,加载你的代码,你可以交互地放置调试点.它没有编辑器,但我使用scite或深红编辑器并启动可执行文件,您的主lua模块中的一行可启用调试器.
http://www.cushy-code.com/grld/ – 这个链接似乎已经死了
我已经转到eclipse.org/koneki/ldt,它有一个ide和集成调试器,推荐
心连心