【发布时间】:2012-01-15 04:33:47
【问题描述】:
我的公司有一个程序,它使用嵌入在其运行时中的 Lua,从磁盘加载 .lua 文件并重复执行其中定义的函数。
有没有办法附加到正在运行的进程并在我的.lua 文件中设置断点? (我会接受 gdb 风格的命令行调试作为 Lua 发行版的一部分,或者可能是提供类似 Visual-Studio 的 GUI 断点的第三方 IDE。)
或者考虑到运行时从磁盘加载随机文件的性质,我所要求的完全是荒谬和不可能的?
编辑:看起来这不是无稽之谈,因为 Lua 自己的 debug.getinfo() 函数可以确定给定函数的源文件,而 debug.sethook() 允许对输入的每一行新代码进行回调.因此,从磁盘加载源代码并能够判断解释器何时执行该文件中的特定代码行是合理的。问题仍然存在:如何锁定具有 Lua 解释器的现有进程并注入我自己的跟踪函数(然后可以监视文件/行号对并暂停执行)?
【问题讨论】:
标签: lua