我正在使用 mobDebug。如果从命令行运行 lua 脚本,一切正常。 但是当我从 openresty 运行它们时,这个想法并没有停止。它只写“已连接/已断开” 配置:
location / {
access_by_lua_block {
local client = require("client")
}
客户端.lua:
local mobdebug = require("mobdebug");
mobdebug.start()
local lfs = require("lfs")
print("Folder: "..lfs.currentdir())
对于所需的行,不会调用 modebug debug_hook,不会调用 set_breakpoints。
Idea 调试日志,但没有任何反应:
想法从终端client.lua捕获调试;但它在运行 nginx 时错过了它。
最佳答案
这不是答案。只是我遇到了基本相同的问题,并且评论空间太小,无法容纳我想分享的所有相关观察结果:
- 实际上,我能够在 nginx 中运行的代码中在
mobdebug.start()
之后立即停止,并进行单步调试 - 但仅限于直接从init_by_lua_block
调用的代码。该代码当然会在服务器启动或配置重新加载期间执行一次。 - 我永远无法在工作代码中停下来(例如
rewrite_by_lua_*
)。mobdebug.coro()
没有帮助,并且mobdebug.on()
引发了“尝试跨越 C 调用边界” - 我只能在
mobdebug.start()
之后的下一条语句中停止一次;一旦我点击|>(恢复程序),它就不会在任何进一步的断点处停止。
关于intellij-idea - 远程调试 Idea 不适用于 openresty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57431575/