EmmyLua / IntelliJ-EmmyLua

Lua IDE/Debugger Plugin for IntelliJ IDEA
https://emmylua.github.io
Apache License 2.0
1.75k stars 292 forks source link

调试应用程序失败 #45

Closed kincorn closed 6 years ago

kincorn commented 7 years ago

IDEA版本:IDEA 2017.1.5 / 2017.2.3 开源版 EmmyLua版本: EmmyLua 1.1.8 Lua 版本:5.3

重现步骤:

  1. 创建一个 Lua 项目,在系统默认的 src 目录创建 Hello.lua,键入如下代码:

    function Hello()
    local i = 0
    i = i + 10
    i = i + 1
    print("Hello LUA!! i = ", i)
    end
    Hello()
  2. 设置一个断点,放在Hello()函数内部。

  3. 右键菜单“Debug Hello.lua”,系统自动创建一个 Hello.lua 的运行配置,并启动调试, 弹出命令行窗口“D:\Develop\Lua\lua.exe”,然后立即弹出 “lua.exe 已停止工作”的窗口,lua.exe 崩溃。IDEA的Console窗口显示:

    Try launch program:lua.exe with x86 debugger.
    Found all necessary Lua functions [M:lua.exe, V:530]
    Debugger attached to process.
    Found all necessary Lua functions [M:lua53.dll, V:530]
    Attach finish.
  4. 不调试,直接运行 Hello.lua ,正常输出。

tangzx commented 7 years ago

我这边调试正常,试试最新的还能重现吗? image

CodeMasterYi commented 6 years ago

http://joedf.ahkscript.org/LuaBuilds/

CodeMasterYi commented 6 years ago

大概是用错了解释器

zoloypzuo commented 5 years ago

如何使用Lua5.3调试?

抱歉,在这个已关闭的问题下评论,因为我遇到同样的问题,尝试了几次没有找到解决方法。

AttachDebug,使用lua for windows(只有lua5.1)是正常的,但是我现在想使用lua5.3,所以下载了lua binary(http://joedf.ahkscript.org/LuaBuilds/

配置中仅仅把lua.exe换成新的,就会导致无法调试,lua.exe跳了一个窗口,然后退出,然后控制台显示debugger断开链接

Try launch program:D:\ZeloEngine\lua.exe with x86 debugger.
Attach finish.
debugger disconnected.

然后我尝试自己编译了lua源码,用这个lua.exe来调试,报错

Try launch program:D:\ZeloEngine\lua.exe with x86 debugger.
Attach finish.
Assertion failed: (((((t))->tt_) == (((5) | (1 << 6))))) && "table expected", file d:\zeloengine\external\lua-5.3.5\src\lapi.c, line 651
debugger disconnected.
tangzx commented 5 years ago

@zoloypzuo attach debugger暂时有一些问题,用新版本调试器吧,文档外网暂时没更新,进群看视频和文档。

aceyin commented 4 years ago

虽然问题已经close了, 但是我们也遇到了这个问题, 而且找到了原因, 所以这里记录一下, 看看是否能对其他人有帮助:

环境:

现象

跟各位一样, 都是 在 idea 里面直接 “run” Lua 代码是没问题, 但 “debug” 就报 "lua 5.3 停止工作“。

原因

最后发现, 出现这个情况的原因是因为, 我们用的Lua5.3版本是 32位的, 而操作系统是 64位的, 后来把 Lua 换成 64位的, 一切正常了

wmortume commented 4 years ago

@aceyin Solution works but for those of you that speak english, the solution is to make sure you have the 64 bit version of lua binaries and not the 32 bit.