debugging - 如何远程调试Lua?

标签 debugging http lua

我正在寻找远程调试 Lua 的最佳方式(比如从网络浏览器)。

我看到了RemDebug , 但最后一次项目更新是在 2006 年完成的。它适用于 Lua 5.0 和 5.1,但 Lua 5.2 非常接近,我看不到 RemDebug 会很快得到更新。

我可以在我的调试主机上安装一个小型嵌入式网络服务器,并使用 RemDebug 之类的东西与其通信,并通过 HTTP 执行远程调试。

欢迎提出建议。

最佳答案

我开发了一个基于 RemDebug ( MobDebug ) 的新调试器,具有新命令、新功能、错误修复以及与 IDE 的集成。

MobDebug 基于客户端(被调试者)和服务器( Controller )之间的 TCP 交互。 RemDebug 和大多数其他远程调试器也是如此。您可能能够在其他东西(如 WebSockets 或 HTTP)之上运行,但您仍然需要能够运行协程和调试 Hook 来控制正在调试的应用程序。

调试过程的架构非常简单:

  • 您有一个要调试的应用程序
  • 您还有带 Controller 的调试器
  • 应用程序加载调试器的客户端组件,打开与 Controller 的连接
  • Controller 接受来自命令行或 IDE 的命令(MobDebug 提供两者;它与 ZeroBraneStudio 集成,还提供了一种可编写脚本的方式来运行它)
  • 加载应用程序时,调试器会安装一个调试 Hook ,它会在每一行/调用/返回时运行。从这个调试 Hook 中,对调试器进行恢复调用,然后调试器可以执行来自 Controller 的命令(如安装断点、计算表达式等)。当发送下一个可执行命令(如 run 或 step)时,调试器返回 Hook ,然后返回到应用程序以允许其继续。

可以模仿现有的套接字接口(interface)(因为它只使用连接/发送/接收和选择/超时来中止应用程序)并重用大部分库。我仍然不确定您为什么要在浏览器中运行它,因为您可以在任何已经支持 TCP 的应用程序上运行该应用程序(我有一个工作原型(prototype),可以从我的桌面调试在移动设备上运行的应用程序)。

关于debugging - 如何远程调试Lua?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5438751/

相关文章:

http - 我可以使用 HTTP 传输的最大文件大小是多少?并使用 FTP?

c++ - Lua C-API : How to identify the coroutine/thread involved in a lua_pushcclosure callback?

string - Lua模式查询

html - 将参数从html发送到lua

c# - 调试时,Visual Studio 2017 无法检查 Razor 页面 View 上的变量值

java - 转账方法在银行程序中不起作用

C# - 附加调试器失败后如何继续 - System.Diagnostics.Debugger.Launch()

.net - 如何禁止将 DebuggerNonUserCodeAttribute 放置在数据集设计器生成的代码上?

http - OPLON LBL ADC : is it possible to use a single VIRTUAL DOMAIN to manage all the incoming requests for all the subdomains?

http - 在 "must-revalidate"中使用 "Cache-Control: no-cache, must-revalidate"是多么必要