Debugging 远程调试托管Lua 我使用Lua 5.3,将它托管在C++应用程序中。C++应用程序为运行的Lua脚本提供各种功能。我希望允许用户在Lua在我的应用程序中运行时调试它。我相信这是可能的,但我找不到任何最近关于这样做的信息,只针对Lua的旧版本,这似乎不起作用
有人能帮我调试在我的应用程序下运行的Lua脚本吗?任何帮助都将不胜感激Debugging 远程调试托管Lua 我使用Lua 5.3,将它托管在C++应用程序中。C++应用程序为运行的Lua脚本提供各种功能。我希望允许用户在Lua在我的应用程序中运行时调试它。我相信这是可能的,但我找不到任何最近关于这样做的信息,只针对Lua的旧版本,这似乎不起作用,debugging,lua,Debugging,Lua,有人能帮我调试在我的应用程序下运行的Lua脚本吗?任何帮助都将不胜感激 谢谢大家! 据我所知,最简单的方法是使用ZeroBrane的远程调试功能。很好地解释了这一点,但为了自我遏制: 将嵌入式Lua的path/cpath设置为zerobrane的东西,或者将mobdebug.Lua文件复制到源代码中 在代码开头添加require('mobdebug').start() 您现在应该可以调试了。启动程序后,应该命中Lua源中设置的断点 这种方法最好用ZB编辑Lua文件,这意味着使用C++编辑器的
谢谢大家! 据我所知,最简单的方法是使用ZeroBrane的远程调试功能。很好地解释了这一点,但为了自我遏制:
- 将嵌入式Lua的path/cpath设置为zerobrane的东西,或者将
文件复制到源代码中mobdebug.Lua
- 在代码开头添加
require('mobdebug').start()
- 您现在应该可以调试了。启动程序后,应该命中Lua源中设置的断点
这种方法最好用ZB编辑Lua文件,这意味着使用C++编辑器的不同编辑器。不过,我发现这在实践中相当有效。
非常感谢您的回答。我以前下载过ZeroBrane并尝试过,但这对我不起作用,我认为原因是在他们的文档中,他们说:“使用package.path和package.cpath引用mobdebug.lua和luasocket的路径”,他们没有提供到luasocket的链接。我以前在谷歌搜索过luasocket,甚至下载了它的源代码,但我无法让它工作。luasocket是用ZeroBrane打包的,还是有(二进制和lua)发行版需要从外部下载?@MariusMyburg这是一个单独的包,但我认为它是大多数lua发行版的标准版。如果不是这样的话,您应该可以使用luarock
安装它,或者您可以自己构建它。luasocket与ZeroBrane Studio一起打包,适用于所有受支持的平台(Windows/macOS/Linux)和Lua版本5.1-5.3,因此您不需要任何其他东西(假设您可以加载与Lua解释器链接的luasocket库)。我将更新文档以澄清这一点。此外,ZeroBrane Studio还将编辑c/cpp文件,并应在大纲中显示c代码中的函数。@PaulKulchenko太棒了!还有,既然你在那里,我想对你所做的令人惊叹的工作表示感谢!:)