我在Windows上使用vscode和gdb(mingw)进行cpp调试。 但是有一天它一直没用,直到现在。
我之前的工作流程是:编码 - >设置断点 - >构建 - >开始调试 - >逐步调试,但现在当我开始调试时,它会卡住。
单击Debug-> start debug后,正常触发preLaunchTask。 生成.exe文件,如果从vscode外部运行,它将正常工作。 然后启动程序开始,终端打开,顶部显示浮动条,终端正在运行命令。
但是这个项目并没有运行,也没有阻止我的断点,当然也没有给出我的输出。 我得到的是一个带有命令的termainal,它从不输出任何内容,除了ctrl-c之外从未接收任何输入,
ying@DESKTOP-5GV0Q9R MINGW64 /d/project/leetcode (master)$
env c:\\Users\\ying\\.vscode\\extensions\\ms-vscode.cpptools-0.23.1\\debugAdapters\\bin\\WindowsDebugLauncher.exe
--stdin=Microsoft-MIEngine-In-hm3amha1.us3
--stdout=Microsoft-MIEngine-Out-vlas2vht.meb
--stderr=Mi crosoft-MIEngine-Error-c1e3oyr5.kel
--pid=Microsoft-MIEngine-Pid-ij4mrymv.zxl
--dbgExe=C:\\mingw-w64\\x86_64\\mingw64\\bin\\gdb.exe
--interpreter=mi
一个带有三个灰色按钮的浮动条,一个从左到右永远飞行的东西,
当我尝试使用ctrl-c来停止程序时,VSCode会发出如下警告:
Undefined command "". Try "help".
我想也许.exe没有传递给gdb,但不知道怎么知道到底发生了什么。
我在用:
windows10 1903 18362.145
vscode 1.35.0(今天更新,但它发生在几周前)
gdb8.1(mingw-w64 x86_64-posix-seh-rev0)
"configurations": [
{
"name": "g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\mingw-w64\\x86_64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++.exe build active file"
}
]
尝试将externalConsole从false转换为true无法解决此问题,并且控制台无法按我的意愿显示。 我在cout行使用默认的helloworld.cpp和断点。 这不是代码的错。 但是对于我的所有代码,调试行为都是一样的。
请告诉我案件的原因和/或解决方案,或者我自己能找到的地方。 任何帮助将不胜感激。