actboy168 / lua-debug

Lua Debug Adapter for Visual Studio Code
MIT License
439 stars 95 forks source link

Extension hangs on Windows 10 x64 #292

Closed ijean closed 4 months ago

ijean commented 4 months ago

Hello,

thanks for all your great work. I used your Lua Debug extension without any problem on macOS and it works great.

I've noticed a problem on Windows 10 x64, if I try to debug a simple Lua, the extension hangs forever, here is what it is printed in the Terminal:

C:\Users\xyz\.vscode\extensions\actboy168.lua-debug-2.0.7-win32-x64\runtime\win32-x64\lua54\lua.exe: (debugger.lua):144: The specified module could not be found.

stack traceback:
        [C]: in function 'assert'
        (debugger.lua):144: in upvalue 'initDebugger'
        (debugger.lua):169: in method 'start'
        ...ns/actboy168.lua-debug-2.0.7-win32-x64/script/launch.lua:35: in upvalue 'f'
        (debugger.lua):204: in global 'DBG'
        (command line):1: in main chunk
        [C]: in ?
PS C:\work\hello2>

Any idea what could be wrong or how can I solve the problem ?

Thanks.

actboy168 commented 4 months ago

It seems that loading the debugger dll failed.

  1. open C:/Users/xyz/.vscode/extensions/actboy168.lua-debug-2.0.7-win32-x64/script/debugger.lua(144), then add print(luadebug). Let's see if the path to the dll is correct.

  2. Use depends to check whether all the dependencies of the dll exist.

ijean commented 4 months ago

Hello, I put a print line just before the assert at line 144, this is what I got:

c:/Users/xyz/.vscode/extensions/actboy168.lua-debug-2.0.7-win32-x64/runtime/win32-x64/lua54/luadebug.dll

I can confirm that the luadebug.dll is present.

Some dlls that luadebug.dll depends on are missing, can this trigger the problem ?

$ ldd luadebug.dll
        ntdll.dll => /c/Windows/SYSTEM32/ntdll.dll (0x7ff9e3330000)
        KERNEL32.DLL => /c/Windows/System32/KERNEL32.DLL (0x7ff9e16f0000)
        KERNELBASE.dll => /c/Windows/System32/KERNELBASE.dll (0x7ff9e0a50000)
        msvcrt.dll => /c/Windows/System32/msvcrt.dll (0x7ff9e27f0000)
        luadebug.dll => /c/Users/paul/.vscode/extensions/actboy168.lua-debug-2.0.7-win32-x64/runtime/win32-x64/lua54/luadebug.dll (0x7ff9c87c0000)
        ws2_32.dll => /c/Windows/System32/ws2_32.dll (0x7ff9e2eb0000)
        rpcrt4.dll => /c/Windows/System32/rpcrt4.dll (0x7ff9e2cc0000)
        user32.dll => /c/Windows/System32/user32.dll (0x7ff9e30d0000)
        win32u.dll => /c/Windows/System32/win32u.dll (0x7ff9e1330000)
        gdi32.dll => /c/Windows/System32/gdi32.dll (0x7ff9e1360000)
        gdi32full.dll => /c/Windows/System32/gdi32full.dll (0x7ff9e1180000)
        msvcp_win.dll => /c/Windows/System32/msvcp_win.dll (0x7ff9e0d50000)
        ucrtbase.dll => /c/Windows/System32/ucrtbase.dll (0x7ff9e0fd0000)
        vcruntime140.dll => /c/Windows/System32/vcruntime140.dll (0x7ff9db120000)
        msvcp140.dll => /c/Windows/System32/msvcp140.dll (0x7ff9c8720000)
        advapi32.dll => /c/Windows/System32/advapi32.dll (0x7ff9e2a70000)
        sechost.dll => /c/Windows/System32/sechost.dll (0x7ff9e2c20000)
        dbghelp.dll => /c/Windows/System32/dbghelp.dll (0x7ff9cca90000)
        bcrypt.dll => /c/Windows/System32/bcrypt.dll (0x7ff9e0e40000)
        VCRUNTIME140_1.dll => not found
        api-ms-win-crt-runtime-l1-1-0.dll => not found
        api-ms-win-crt-heap-l1-1-0.dll => not found
        api-ms-win-crt-stdio-l1-1-0.dll => not found
        api-ms-win-crt-math-l1-1-0.dll => not found
        api-ms-win-crt-environment-l1-1-0.dll => not found
        api-ms-win-crt-filesystem-l1-1-0.dll => not found
        api-ms-win-crt-string-l1-1-0.dll => not found
        api-ms-win-crt-locale-l1-1-0.dll => not found
        api-ms-win-crt-time-l1-1-0.dll => not found
        api-ms-win-crt-convert-l1-1-0.dll => not found
ijean commented 4 months ago

I found a temporary hack that works, if I add to the path the x64 vcredist from the extension folder I can debug ! Basically, I've added this to my system PATH:

C:\Users\xyz\.vscode\extensions\actboy168.lua-debug-2.0.7-win32-x64\vcredist\win32-x64

Ideally, there will be a solution that does not require the user to manually add this to the PATH.

actboy168 commented 4 months ago

This is a bug and has been fixed in aee8a610fc8f06026232b4dfbd91adaf5b34b456.

ijean commented 4 months ago

Thanks !!!

ijean commented 4 months ago

How long it will take for the VsCode extension to be updated to your latest push ? (sorry for asking, but I'm not familiar with how this works).

actboy168 commented 4 months ago

It may take a few hours, depending on the push speed of vscode.