【发布时间】:2019-10-25 19:43:57
【问题描述】:
我在 Windows 上使用 vscode 和 gdb(mingw) 进行 cpp 调试。但总有一天它不起作用,直到现在。
我之前的工作流程是:编码 -> 设置断点 -> 构建 -> 开始调试 -> 逐步调试,但是现在当我开始调试时,它卡住了。
点击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,但不知道如何知道到底发生了什么。
我正在使用:
- windows10 1903 18362.145
- vscode 1.35.0(今天更新,但发生在几周前)
- gdb8.1 (mingw-w64 x86_64-posix-seh-rev0)
这是我的 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 和断点。这不可能是代码的错。但是对于我所有的代码,调试的行为都是一样的。
请告诉我案件的原因和/或解决方案,或者我可以自己找到的地方。任何帮助将不胜感激。
【问题讨论】:
标签: debugging visual-studio-code gdb