Closed VirFunc closed 2 years ago
已知问题,目前还不支持透传环境变量给调试器
暂时没时间搞,你可以来个 pr
开了个 pr ,https://github.com/xmake-io/xmake-vscode/pull/134
但是暂时没 win 环境测试,你可以拉下 runenvs 分支,自己 本地 调下,如果有问题,可以参考着改下 runenvs 分支实现。。
晚上回去试一下
测试了一下,debug 时还是存在问题,直接运行的 PATH
比 debug 的 PATH
多出了
C:\Users\<username>\AppData\Local\.xmake\packages\l\libsdl\2.0.22\8b7dc91315c541c989c1e4401c0a35e3\bin
看了一下 xmake 那边 make_runenvs 的实现,这里把 package 的 linkdir
加入了 PATH
,根据 xmake require -l
的输出来看,libsdl 的 linkdir
只有 lib
文件夹,里面放了 .lib
文件,但是 xrepo 里的 libsdl 包在 install 的时候把 .dll
文件放进了 bin
文件夹里 。
但是看了 xmake 里 run 和 xmake-vscode 里 target_runenvs.lua
的实现,二者获取环境变量的方式都是走的 make_runenvs
,不知道为什么会产生不同的结果。
看下 target_runenvs.lua 的输出,按理会带上的
cd yourproject
xmake l /xxx/xxx/xxtarget_runenvs.lua targetname
试了一下,确实没有带上,单步调试插件的时候也看了,只有 lib
应该可以了,更新下插件
现在可以正常调试了,感谢
Xmake 版本
v2.6.9+HEAD.22ecc0156
操作系统版本和架构
Windows 10 version 21H1
描述问题
用一个很简单的工程测试了一下插件的功能,这个工程只有一个源代码文件,引用了 xmake-repo 上的 libsdl 库。 用插件来运行程序可以运行,在代码里获取了一下环境变量,应该是插件把 SDL2 的 dll 所在的文件夹加入了 PATH。 但是用插件来调试程序就会报错,看了一下错误代码,应该是 dll 没找到。
看了 xmake-vscode 的代码
https://github.com/xmake-io/xmake-vscode/blob/4c27f99a2d20f2d5a3b4f80f37191892eb15ab46/src/debugger.ts#L158-L162 可能是因为没有像
xmake run
那样设置设置环境变量? 因为不知道怎么从 xmake 获取到所需要设置的环境变量,我也没有办法自己写 launch, 虽然直接去 package 里把 dll 给 copy 过来可以结果问题,但是总不能每个 package 都手动 copy 一个过来吧。希望作者大佬能指点一下
期待的结果
能够正常 debug 程序
工程配置
xmake.lua 文件如下
唯一一个源代码文件
main.cpp
,内容如下附加信息和错误日志
vscode 调试控制台输出