我在Windows上的cpp调试中使用了vscode和gdb(mingw)。但是直到一天,它都无法正常工作。
我以前的工作流程是:编码->设置断点->构建->启动调试->逐步调试,但是现在当我开始调试时,它卡住了。
单击Debug-> start debug后,将正常触发preLaunchTask。生成一个.exe文件,如果从vscode外部运行,它将正常工作。然后开始启动过程,并打开一个终端,顶部显示浮动条,并在终端中运行命令。
但是该项目无法运行,并且不会在我的断点处阻塞,并且当然也不会给出我的输出。我得到的是一个带有命令的终端,该命令从不输出任何东西,除了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,但不知道如何知道真正发生了什么。
我正在使用:
这是我的launch.json。来自https://code.visualstudio.com/docs/cpp/config-mingw#_configure-debug-settings
的大多数副本"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和一个断点。不可能是代码的错。但是对于我所有的代码,调试的行为都相同。
请告诉我案件的原因和/或解决方法,或者在哪里可以自行找到。任何帮助将不胜感激。
答案 0 :(得分:0)
我遇到了与您完全相同的问题,具有相同的输出和相同的性能。我碰巧在该控制台中键入“ help”,并且输出是乱码。所以我意识到我的系统编码有问题,因为我之前只是更改了一些设置。现在,在我重新调整了这些设置之后,vscode调试对我有用。
根据您的身份证,您似乎是中国人,所以我想你可以看下面的图片。无论如何,我可以为您翻译。 setting