您应该能够使用ZeroBrane Studio按照Lua 5.2调试的说明调试应用程序.请注意,您需要根据Lua5.2编译luasocket.(您看到的崩溃可能是因为您的应用程序加载了针对Lua5.1编译的luasocket,后者又加载了Lua5.1 DLL或无法找到所需的符号.)
如果您不想编译luasocket,可以从该文件夹及其子文件夹中获取Windows/OSX/Linux的二进制文件 ; 只需确保这些库在任何可能具有针对Lua5.1编译的luasocket的文件夹之前都在LUA_CPATH中.
[基于聊天讨论更新]您可能遇到多个VM问题的原因是您的应用程序可能静态编译Lua解释器.然后加载luasocket(直接或通过mobdebug),它是针对lua52.dll编译的,后者加载了另一个解释器副本.为避免这种情况,您有两种选择:(1)将luasocket编译到您的应用程序中的方式与包含lua解释器本身的方式相同; 除了一个mobdebug.lua文件来调试你的应用程序,你不需要任何其他东西,或者(2)使用代理dll; 它看起来像lua52.dll,但实际上会代理您对静态编译的lua库的调用,避免多个VM出现问题.该代理DLL是Lua的5.1,但你可以调整脚本,使它为lua 5.2工作.
(如果你的解释器没有静态编译,如果你加载的Lua DLL命名与lua52.dll不同,你仍然可以得到两个解释器.)
| 归档时间: |
|
| 查看次数: |
1915 次 |
| 最近记录: |