我正在寻找远程调试Lua的最佳方式(如从网页浏览器)。如何远程调试Lua?
我看到了RemDebug,但最后一个项目更新是在2006年完成的。它适用于Lua 5.0和5.1,但Lua 5.2非常接近,我没有看到RemDebug很快就会获得更新。
我可以在我的调试主机上安装一个小型嵌入式Web服务器,并使用类似RemDebug的东西与它进行通信,并通过HTTP执行远程调试。
建议表示赞赏。
我正在寻找远程调试Lua的最佳方式(如从网页浏览器)。如何远程调试Lua?
我看到了RemDebug,但最后一个项目更新是在2006年完成的。它适用于Lua 5.0和5.1,但Lua 5.2非常接近,我没有看到RemDebug很快就会获得更新。
我可以在我的调试主机上安装一个小型嵌入式Web服务器,并使用类似RemDebug的东西与它进行通信,并通过HTTP执行远程调试。
建议表示赞赏。
我不确定这是否正确。希望它能帮助,但:
来源:http://www.keplerproject.org/remdebug/example.html
这是下面的脚本(test.lua)的调试会话的例子:
1 require"remdebug.engine"
2
3 remdebug.engine.start()
4
5 local tab = {
6 foo = 1,
7 bar = 2
8 }
9
10 print("Start")
11
12 function bar()
13 print("In bar 1")
14 print("In bar 2")
15 end
16
17 for i = 1, 10 do
18 print("Loop")
19 bar()
20 tab.foo = tab.foo * 2
21 end
22
23 print("End")
首先运行RemDebug控制器:
%lua50 controller.lua Lua远程调试器 运行你想调试的程序 在这一刻你可以运行你的目标程序(在另一个窗口中):
%lua50 test.lua 现在回去,你跑controller.lua窗口(这里假设你是C内运行test.lua:在Windows系统上\研发\开普勒):
在暂停文件C:/development/kepler/test.lua 类型 '帮助' 的命令
BASEDIR C:/开发/开普勒/ 新基地目录为C:/开发/开普勒/ BASEDIR C:/开发/开普勒/ 步骤 暂停在文件C :/development/kepler/test.lua线6 超过 暂停在文件C:/development/kepler/test.lua线7 超过 暂停在文件C:/development/kepler/test.lua线10 超过 暂停在文件C:/development/kepler/test.lua第15行 setb test.lua 19 运行 您可以随时切换到应用程序窗口以查看其输出。回到调试器会话:
暂停在文件C:/ development/kepler/test。LUA线19
运行 在文件C暂停:/development/kepler/test.lua线19 EVAL tab.foo EVAL tab.bar EXEC old_tab =标签 零 EXEC标签= 2 零 EVAL标签 EXEC标签= old_tab 零 EVAL tab.foo 运行 在文件C暂停:/development/kepler/test.lua线19 delb test.lua 19 运输及工务局局长tab.foo == 32 插入的0的eval tab.foo观看EXP没有。 1个 运行 在文件C暂停:/development/kepler/test.lua线17 (监视表达式1:[tab.foo = 32]) EVAL tab.foo DELW 1个 运行 程序完成
在原来的问题中,我指出我看到了RemDebug,但Lua 5.2非常接近,并且我没有看到RemDebug很快就能获得更新。我真的不认为这是对我的问题的合适答案。 – Goles 2011-04-10 17:52:55
不知道是不是网页浏览器的调试(的想法似乎怪我,也许你可以详细解释您需要一个网络浏览器调试器?)
对于独立得不但是,我写了一个远程调试器与GUI:http://cushy-code.com/grld
它与调试的程序与套接字API通信,所以任何网络连接都可以,不需要HTTP。
希望这会有所帮助。
这听起来很有趣,但我需要一个开源解决方案来理解如何去做。 (问题是“如何远程调试lua”)谢谢。 – Goles 2011-08-02 07:45:18
我开发了一个基于RemDebug的新调试器(MobDebug),它具有新命令,新功能,错误修正以及与IDE的集成。
MobDebug是基于客户机(调试者)和服务器(控制器)之间的TCP相互作用。 RemDebug和大多数其他远程调试器也是如此。您也许能够对别的东西(如网页套接字或HTTP)上运行,但你仍然需要能够运行协同程序和调试钩来控制被调试的应用程序。
调试过程的结构很简单:
可能会模仿现有的套接字接口(因为它只使用连接/发送/接收和选择/超时来中止应用程序)并重用大部分库。我仍然不确定为什么你想在浏览器中运行它,因为你可以在任何支持TCP的应用程序上运行应用程序(我有一个工作原型正在调试从我的桌面移动设备上运行的应用程序)。
我真的很喜欢我在这里看到的...我会试试! – Goles 2012-06-14 18:00:24
您的调试器看起来不错!是否有初学者教程(我已经看过示例文件夹)?有些事情不是自我解释,“帮助”也不是那么彻底。 – Atcold 2015-01-29 21:57:01
@Atcold,您可能需要查看[本概述](http://studio.zerobrane.com/doc-lua-debugging)和其他[调试相关链接](http://studio.zerobrane.com/documentation的.html#调试)。它们是从IDE用户的角度出发的,但由于所有功能都基于MobDebug提供的功能,因此它可以让您更深入地了解它的工作原理。 – 2015-01-29 22:34:33
我不确定我明白你为什么需要基于浏览器的客户端。是一个基于全面调试器的客户端吗? – 2011-04-01 10:40:28
嘿,那里,我在游戏开发工作,我需要一些通用的,我可以编译和运行在几个架构。制作一个基于Web浏览器的客户端对我来说是理想的选择。 – Goles 2011-04-01 15:13:00