VSCode调试mintty时命令行参数多了2>CON 1>CON <CON的问题
今天在调试mintty
时,命令行参数始终多了几个参数2>CON 1>CON <CON。由于mintty
是运行在MSYS
环境的而不是运行在MinGW
环境的,所以编译、调试都需要使用MSYS环境的编译器和调试器。
VSCode中添加MinGW64
终端可以在settings.json
中的terminal.integrated.profiles.windows
中添加
1"MinGW64": {
2 "path": "G:\\msys64\\usr\\bin\\bash.exe",
3 "args": ["--login", "-i"],
4 "env": {
5 "MSYSTEM": "MinGW64",
6 "CHERE_INVOKING": "1",
7 "MSYS2_PATH_TYPE": "inherit"
8 }
9 }
下面是terminal.integrated.profiles.windows
的完整配置
1"terminal.integrated.profiles.windows": {
2 "PowerShell": {
3 "source": "PowerShell",
4 "icon": "terminal-powershell",
5 },
6 "Command Prompt": {
7 "path": [
8 "${env:windir}\\Sysnative\\cmd.exe",
9 "${env:windir}\\System32\\cmd.exe"
10 ],
11 "args": ["/K chcp 65001 >nul"],
12 "icon": "terminal-cmd"
13 },
14 "Git Bash": {
15 "source": "Git Bash"
16 },
17 "MinGW64": {
18 "path": "G:\\msys64\\usr\\bin\\bash.exe",
19 "args": ["--login", "-i"],
20 "env": {
21 "MSYSTEM": "MinGW64",
22 "CHERE_INVOKING": "1",
23 "MSYS2_PATH_TYPE": "inherit"
24 }
25 },
26 "MSYS": {
27 "path": "G:\\msys64\\usr\\bin\\bash.exe",
28 "args": ["--login", "-i"],
29 "env": {
30 "MSYSTEM": "MSYS",
31 "CHERE_INVOKING": "1",
32 "MSYS2_PATH_TYPE": "inherit"
33 }
34 },
35 },
然后使用make DEBUG=1
编译调试版本。
使用默认配置launch.json
,修改program
和miDebuggerPath
调试:
1{
2 // 使用 IntelliSense 了解相关属性。
3 // 悬停以查看现有属性的描述。
4 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
5 "version": "0.2.0",
6 "configurations": [
7 {
8 "name": "(gdb) 启动",
9 "type": "cppdbg",
10 "request": "launch",
11 "program": "${workspaceFolder}/bin/msys64/mintty.exe",
12 "stopAtEntry": false,
13 "cwd": "${workspaceFolder}",
14 "environment": [],
15 "externalConsole": false,
16 "MIMode": "gdb",
17 "miDebuggerPath": "G:/msys64/usr/bin/gdb.exe",
18 }
19 ]
20}
发现命令行参数多了3个参数:2>CON
, 1>CON
, <CON
但是VSCode下使用MinGW64
的gdb
调试是正常的(mintty
依赖MSYS
,不能使用MinGW64
中的gdb调试,笔者是使用的一个不依赖MSYS
的简单demo测试的),只要使用/usr/bin/gdb.exe
就会有这个问题。
原来是launch.json
中externalConsole
参数的问题,将之改为true
,即使用外部终端就正常了。
- 原文作者:Witton
- 原文链接:https://wittonbell.github.io/posts/2023/2023-06-06-VSCode调试mintty时命令行参数多了2CON-1CON-CON的问题/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。