远程调试Idea不适用于openresty

时间:2019-08-09 13:52:35

标签: intellij-idea lua remote-debugging openresty

我正在使用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也不会调用。

想法调试日志,但是什么也没发生:

Idea Debug Logs: Connected/Disconnected

从终端client.lua捕获调试信息;但是由于运行nginx而错过了它。

2 个答案:

答案 0 :(得分:1)

这不是答案。只是我遇到了基本相同的问题,并且评论空间太小,无法容纳我要分享的所有相关观察结果:

  1. 实际上,我可以在mobdebug.start()之后立即停止在nginx中运行的代码,并逐步调试-但仅在直接从init_by_lua_block调用的代码中才可以。当然,此代码在服务器启动或配置重新加载期间执行一次。
  2. 我从未能够停止使用工作者代码(例如rewrite_by_lua_*)。 mobdebug.coro()并没有帮助,mobdebug.on()提出“试图跨越C-call边界屈服”
  3. mobdebug.start()之后的下一条语句中,我只能停止一次;一旦我点击|>(恢复程序),它就不会在任何进一步的断点处停止。

答案 1 :(得分:1)

使用mobdebug.loop()并不是正确的方法,因为它用于实时编码,这种设置无法正常工作。应该使用mobdebug.start()

请在此处查看如何使用ZeroBrane Studio设置此调试的示例:http://notebook.kulchenko.com/zerobrane/debugging-openresty-nginx-lua-scripts-with-zerobrane-studio。有关如何配置mobdebug路径和所需模块的所有详细信息仍应适用于您的环境。