我正在寻找远程调试Lua的最佳方法(如从网络浏览器).
我看到了RemDebug,但是最后一个项目更新是在2006年完成的.它与Lua 5.0和5.1配合使用,但Lua 5.2非常接近,我没有看到RemDebug很快就能得到更新.
我可以在我的调试主机上安装一个小的嵌入式Web服务器,并使用类似RemDebug的方式与之通信,并通过HTTP进行远程调试.
赞赏意见
解决方法
我已经开发了一个基于RemDebug(
MobDebug)的新调试器,新的命令,新功能,错误修复和IDE的集成.
MobDebug基于客户端(debugee)和服务器(控制器)之间的TCP交互. RemDebug和大多数其他远程调试器也是如此.您可能能够运行在别的东西(如WebSockets或HTTP)之上,但您仍然需要运行协同程序和调试挂钩来控制被调试的应用程序.
调试过程的架构非常简单:
>您有一个您要调试的应用程序
>你也有一个控制器的调试器
>应用程序加载调试器的客户端组件,该组件将打开与控制器的连接
>控制器从命令行或IDE接受命令(MobDebug提供两者;它与ZeroBraneStudio集成,并提供可脚本化的方式来运行它)
>当应用程序加载时,调试器将安装一个调试挂钩,它在每一行/ call / return上运行.从这个调试钩子开始调用调试器,然后可以从控制器执行命令(如安装断点,评估表达式等等).当下一个可执行命令发送(如运行或步骤)时,调试器将返回到该钩子,然后返回到该应用程序,以允许它继续进行.
可能会模拟现有的套接字接口(因为它只是使用connect / send / receive和select / timeout来中止应用程序)并重用大部分库.我仍然不知道为什么你想在浏览器中运行这个,因为你可以在任何支持TCP的东西上运行应用程序(我有一个工作原型来调试在桌面上在移动设备上运行的应用程序).