我正在使用mobDebug。如果从命令行运行lua脚本,则一切正常。 但是,当我从openresty运行它们时,这个想法并没有停止。它只写“已连接/已断开” 配置:
location / {
access_by_lua_block {
local client = require("client")
}
client.lua:
local mobdebug = require("mobdebug");
mobdebug.start()
local lfs = require("lfs")
print("Folder: "..lfs.currentdir())
modebug debug_hook不会为所需的行调用,set_breakpoints也不会调用。
想法调试日志,但是什么也没发生:
从终端client.lua捕获调试信息;但是由于运行nginx而错过了它。
答案 0 :(得分:1)
这不是答案。只是我遇到了基本相同的问题,并且评论空间太小,无法容纳我要分享的所有相关观察结果:
mobdebug.start()
之后立即停止在nginx中运行的代码,并逐步调试-但仅在直接从init_by_lua_block
调用的代码中才可以。当然,此代码在服务器启动或配置重新加载期间执行一次。rewrite_by_lua_*
)。 mobdebug.coro()
并没有帮助,mobdebug.on()
提出“试图跨越C-call边界屈服” mobdebug.start()
之后的下一条语句中,我只能停止一次;一旦我点击|>(恢复程序),它就不会在任何进一步的断点处停止。答案 1 :(得分:1)
使用mobdebug.loop()
并不是正确的方法,因为它用于实时编码,这种设置无法正常工作。应该使用mobdebug.start()
。
请在此处查看如何使用ZeroBrane Studio设置此调试的示例:http://notebook.kulchenko.com/zerobrane/debugging-openresty-nginx-lua-scripts-with-zerobrane-studio。有关如何配置mobdebug路径和所需模块的所有详细信息仍应适用于您的环境。