# CMakeLists.txt
set(CMAKE_BUILD_TYPE Debug) # 确保是 Debug 模式
set(CMAKE_CXX_FLAGS_DEBUG "-g") # 添加调试符号
C/C++插件 debug修改:
修改 .vscode/tasks.json
支持 -g
要修改 .vscode/tasks.json
以支持 debug,需要确保以下几点:
生成可调试的可执行文件(已包含 -g
,符合要求)。
正确配置 launch.json
以启动调试。
tasks.json
当前 tasks.json
已经包含 -g
选项,这是用于调试的信息,因此你只需要确保它编译 .cpp
文件并生成可执行文件。
如果你希望 支持多文件编译,可以改为:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ 编译(调试)",
"command": "/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-g",
"${workspaceFolder}/*.cpp", // 编译所有 CPP 文件
"-o",
"${workspaceFolder}/app" // 生成 "app" 可执行文件
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "用于调试的编译任务"
}
],
"version": "2.0.0"
}
launch.json
(启动 GDB 进行调试)你还需要在 .vscode/launch.json
添加 GDB 调试支持:
{
"version": "0.2.0",
"configurations": [
{
"name": "GDB 调试",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/app",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "启用 Pretty Printing",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ 编译(调试)",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
编译代码
app
可执行文件启动调试
app
如果你的程序有多线程或使用 OpenCV,可以添加:
"launch.json":
{
"environment": [
{ "name": "LD_LIBRARY_PATH", "value": "/usr/local/lib" }
]
}
这样可以避免 OpenCV 等动态库找不到。
✅ tasks.json
确保编译支持 -g
,并指定 单文件/多文件编译
✅ launch.json
确保 GDB 运行 app
,并支持 Pretty Printing
✅ 运行 Ctrl+Shift+B
编译,然后 F5
调试
这个错误通常出现在 VSCode 使用 gdb
进行调试时,可能的原因如下:
检查 .vscode/launch.json
是否正确,尤其是 miDebuggerPath
和 MIMode
:
"miDebuggerPath": "/usr/bin/gdb",
"MIMode": "gdb"
确保 miDebuggerPath
指向 正确的 GDB 路径。如果 gdb
安装在其他目录,可以使用:
which gdb
然后在 launch.json
中修改 miDebuggerPath
。
尝试在终端运行:
gdb --version
如果 gdb
没有安装,可以通过以下命令安装:
sudo apt update && sudo apt install gdb # Ubuntu/Debian
sudo yum install gdb # CentOS
sudo pacman -S gdb # Arch Linux
brew install gdb # macOS(Homebrew)
VSCode 调试器可能无法正确访问 GDB 终端,尝试:
sudo chmod +x /usr/bin/gdb
或者以 管理员权限 运行 VSCode:
sudo code .
tty
相关设置可以尝试在 launch.json
中添加:
"setupCommands": [
{
"text": "set new-console off",
"description": "禁用 GDB 新终端",
"ignoreFailures": true
}
]
如果 VSCode 仍然报错,尝试手动运行:
gdb build/app
看看是否能正常启动调试,如果手动运行没有问题,则 VSCode 配置可能有问题。
如果 之前调试是正常的,但突然无法使用,可能是 VSCode 更新导致插件问题:
C/C++
扩展(ms-vscode.cpptools)如果调试文件损坏,尝试:
rm -rf build
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build
然后重新尝试 F5
调试。
✅ 检查 launch.json
的 miDebuggerPath
是否正确
✅ 确认 gdb
是否已安装,并可以手动运行
✅ 尝试 set new-console off
关闭 tty
相关设置
✅ 可能是 VSCode 插件 Bug,尝试重装 C/C++
插件
✅ 重新生成 CMake 构建目录
试试这些方法,看能否解决你的问题!