【问题标题】:ZeroBrane and LuaJIT FFIZeroBrane 和 LuaJIT FFI
【发布时间】:2020-05-06 06:46:51
【问题描述】:

我正在做一个项目,其中 Lua(更具体地说是 LuaJIT)是脚本语言,但大部分繁重的工作都是在 C 代码中执行的。 C 代码被编译成 .so 文件,LuaJIT 的 ffi 功能用于加载库和访问函数。 假设我在调用 C 函数的地方在 Lua 代码中设置了一个断点。我可以在此时“单步执行”C 代码并继续单步执行 C 代码,就好像我在使用 gdb 一样?

【问题讨论】:

    标签: zerobrane


    【解决方案1】:

    没有; ZeroBrane Studio 调试器(它使用MobDebug)仅支持单步执行 Lua 代码。我不认为有一个调试器集成了 Lua 和 C 代码的单步调试。不过,您也许可以使用两种调试器:一种用于 Lua,另一种用于 C 代码。

    【讨论】:

    • 感谢您的超级及时回复!如果我可以到达 Lua 中的断点,然后将 gdb 附加到 ZeroBrane 进程并继续我在 gdb 中的调查,那将是完美的。你有没有尝试过这样的事情?
    • 不,我在考虑将gdb附加到动态库并使用ZBS调试lua代码。当您单步执行 C 调用时,看起来代码正在“运行”到 Lua 调试器,但 gdb 可以控制以允许您单步执行 C 代码。这两个调试器不会真正干扰,因为当您介入其中一个时,另一个看起来进程仍在执行。
    • 非常有意义。谢谢。
    • 如果它解决了您的问题,您可能希望接受答案。
    猜你喜欢
    • 2011-08-07
    • 2012-09-01
    • 2015-10-13
    • 2018-01-21
    • 2012-12-10
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多