actboy168 / lua-debug

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

WIN7 x86 #119

Closed phy0292 closed 3 years ago

phy0292 commented 3 years ago

在WIN7 x64位系统中,按F5能正常调试。 但在WIN7 x86 32位系统里,按F5不能调试,提示句柄无效。

actboy168 commented 3 years ago

你可以自己编译一个

phy0292 commented 3 years ago

我只会使用VSCODE插件,没写过VSCODE插件,不知道如何下手。

actboy168 commented 3 years ago

README有编译的方法 https://github.com/actboy168/lua-debug/tree/master/extension

phy0292 commented 3 years ago

d:\vcProjects\luamake>msvc_x86.bat '\Microsoft' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 系统找不到指定的路径。

d:\vcProjects\luamake>tools\ninja.exe -f ninja\msvc.ninja [0/5] cmd.exe /C cd tools\msvc && lua....3rd\bee.lua\build\msvc\msvc-init.ninja [1/5] cmd.exe /C cd 3rd/bee.lua && .....inja.exe -f build\msvc\msvc-init.ninja ninja: error: build\msvc\msvc-init.ninja:3: loading 'ninja/msvc.ninja': 系统找不 到指定的路径。

subninja ninja/msvc.ninja ^ near here FAILED: build/msvc/_/bee cmd.exe /C cd 3rd/bee.lua && ....\tools\ninja.exe -f build\msvc\msvc-init.ninja

ninja: build stopped: subcommand failed.

d:\vcProjects\luamake>

phy0292 commented 3 years ago

这是什么原因,编译不了,我的是vc2019

phy0292 commented 3 years ago

vs2019安装在D盘,应该没关系吧

actboy168 commented 3 years ago

我没有win7,所以只能靠你自己找答案了

phy0292 commented 3 years ago

Z:\Projects\luamake>msvc_x86.bat


Visual Studio 2019 Developer Command Prompt v16.8.6 Copyright (c) 2020 Microsoft Corporation


Z:\Projects\luamake>tools\ninja.exe -f ninja\msvc.ninja [0/5] cmd.exe /C cd tools\msvc && lua.exe init.lua ....\3rd\bee.lua\build\msvc\msvc-init.ninja [1/5] cmd.exe /C cd 3rd/bee.lua && ....\tools\ninja.exe -f build\msvc\msvc-init.ninja ninja: error: build\msvc\msvc-init.ninja:3: loading 'ninja/msvc.ninja': 系统找不到指定的路径。

subninja ninja/msvc.ninja ^ near here FAILED: build/msvc/_/bee cmd.exe /C cd 3rd/bee.lua && ....\tools\ninja.exe -f build\msvc\msvc-init.ninja ninja: build stopped: subcommand failed.

phy0292 commented 3 years ago

这个是在WIN10下的结果,也报错,不管是msvc_x64.bat还是msvc_86.bat 另外在win7 32位系统,需要把msvc_x86.bat里的%ProgramFiles(x86)%改成%ProgramFiles%,32位系统没有%ProgramFiles(x86)%文件夹,另外-host_arch=x64也要改成-host_arch=x86,然后的报错就和win10下面的一样了。

phy0292 commented 3 years ago

呵呵,搞得我又装了win7 x64,又装了win10,以为会正常了,结果还是一样。

phy0292 commented 3 years ago

我不知道init.lua生成的msvc-init.ninja文件是干什么用的,它的结果是这样:

builddir = build/msvc msvc_deps_prefix = ???: ???????: subninja ninja/msvc.ninja

会不会是这些问号是不对的?

phy0292 commented 3 years ago

手动用下面的方式去编译,这些问号得到的结果应该是: msvc_deps_prefix = 注意: 包含文件: cl /showIncludes /nologo test.c

phy0292 commented 3 years ago

难道是中文系统的原因导致这个结果有问题?

phy0292 commented 3 years ago

或者你用msvc_x86.bat编译一份发给我好吗?

actboy168 commented 3 years ago

我猜你没有更新submodule

phy0292 commented 3 years ago

可能吧。如何更新submodule?

actboy168 commented 3 years ago
git submodule init
git submodule update
phy0292 commented 3 years ago

总算能编译了。64位系统都能编译过了。32位系统改一下msvc_x86.bat也可以编译了。.

phy0292 commented 3 years ago

接下来是不是把编译后的文件复制到C:\Users\ ???\.vscode\extensions\actboy168.lua-debug-1.31.5\bin\win ?

actboy168 commented 3 years ago

请按照readme的步骤来

phy0292 commented 3 years ago

第3步 clone lua debug 后 第4步 如何Rebuild? 第5步 也不知道

actboy168 commented 3 years ago

第三步是打开VSCode,不是clone lua debug。 第四第五步都是执行VSCode的task

phy0292 commented 3 years ago

Executing task: luamake remake <

luamake: cannot open D:\vcProjects\11\lua-debug\main.lua: No such file or directory 终端进程“C:\Windows\System32\cmd.exe /c luamake remake”启动失败(退出代码: 1)。

phy0292 commented 3 years ago

不好意思,这是哪里的问题,在VSCODE中运行ReBuild任务就显示这样

actboy168 commented 3 years ago

luamke只会找它所在目录的main.lua,所以你的luamake应该在不正确的目录里

phy0292 commented 3 years ago

luamake: ...Projects\11\lua-debug\extension\script\frontend\main.lua:3: module ' common.network' not found: no field package.preload['common.network'] no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\lua\common \network.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\lua\common \network\init.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\common\network.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\common\network\init.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend..\share\lua\5.4\common\network.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend..\share\lua\5.4\common\network\init.lua' no file '.\common\network.lua' no file '.\common\network\init.lua' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\common\network.dll' no file 'D:\vcProjects\11\lua-debug\extension\script\frontend\common.dll' stack traceback: [C]: in function 'require' ...Projects\11\lua-debug\extension\script\frontend\main.lua:3: in main chunk [C]: in ? 终端进程“C:\Windows\System32\cmd.exe /c luamake remake”已终止,退出代码: 1。

phy0292 commented 3 years ago

main.lua在 extension\script\frontend\ 文件夹,我只好把luamake放到这个文件夹里,但是运行任务却说找不到luamake,我只好把这个文件夹放到PATH里。然后运行任务后就出现上面的提示,我看这些提示中的模块在上一层文件夹的common文件夹里,而main.lua却在frontend文件夹里。这怎么办?把main.lua弄到上层去?

actboy168 commented 3 years ago

你应该按照readme的步骤做,而不是擅自加一些新的步骤。luamake它原来在哪,那它就应该在那。不需要也不应该改变它的位置。

phy0292 commented 3 years ago

真是不好意思,你有QQ或微信吗,这里联系起来有点慢。 luamake是之前在luamake项目中编译好的,现在VSCODE打开的是lua-debug吧,这两者是如何关联在一起的?

actboy168 commented 3 years ago

你可以把luamake加到PATH里

phy0292 commented 3 years ago

oh,把luamake加到PATH里可以了,这次执行的是luamake文件夹里的main.lua, 不过要把msvc_helper.lua文件里的ProgramFiles(x86)改成ProgramFiles,我觉得可以在msvc_helper.lua对系统做个判断,如果是64位系统,就用ProgramFiles(x86),32位系统就用ProgramFiles,之前的msvc_x86.bat里也可以做个判断,如果有环境变量ProgramFiles(x86)就说明是64位系统。 另外,做完第4步和第5步后,重新运行VSCODE还是不能调试,同样提示无效的句柄。

actboy168 commented 3 years ago

我没有32位的操作系统做测试,你可以提供PR。

你可以直接运行编译出来的lua-debug.exe,是否会提升无效句柄

phy0292 commented 3 years ago

lua-debug.exe之前我也试过的,可以运行的,这次编译后的也是可以运行的。

actboy168 commented 3 years ago

launch.json添加"console": "integratedTerminal",看看执行的lua是哪个

phy0292 commented 3 years ago

Windows PowerShell 版权所有 (C) 2009 Microsoft Corporation。保留所有权利。

PS Z:\Projects\lua> & 'c:/Users/zzz/.vscode/extensions/actboy168.lua-debug-1.31.5/runtime/win64/lua53/lua.exe' '-ldbg' '-e' 'DBG{2904}' 'Z:\Projects\lua/1.lua' 无法执行程序“lua.exe”: 该版本的 %1 与您运行的 Windows 版本不兼容。请查看计算机的系统信息,了解是否需要 x86 (3 2 位)或 x64 (64 位)版本的程序,然后联系软件发布者。 所在位置 行:1 字符: 3

phy0292 commented 3 years ago

果然如你所见,运行的是64位版本的

phy0292 commented 3 years ago

增加了 "luaArch": "x86", 可以了

phy0292 commented 3 years ago

总结:不用自编译,直接 增加 "luaArch": "x86", 可以了

phy0292 commented 3 years ago

另外我看你那个bee挺不错,有参考手册吗?

actboy168 commented 3 years ago

目前没有。不过我有计划给给它添加lua doc。

phy0292 commented 3 years ago

恩,好的,期待。