Ubuntu环境下如何使用VSCode配合gdb和shell脚本调试CMake C++项目
VSCode CMake项目调试配置步骤(适配自定义Shell调试流程)
前置确认
你已完成CMake构建流程配置,以下配置完全匹配你原有的手动调试逻辑,无需改动现有Shell脚本。
核心配置步骤
1. 明确调试基础信息
原手动调试最终执行的逻辑为:
- 工作目录:
mainFolder/qa/scripts - 启动命令:
gdb --args 可执行文件路径 -f filePath1 -h filePath2 -o dirName - 待调试可执行文件:你构建生成的
mySubProj二进制文件,通常位于CMake构建输出目录下的projectA/mySubProj/路径中
2. 配置launch.json调试规则
打开VSCode调试面板(快捷键Ctrl+Shift+D),点击「创建launch.json文件」,选择C++ (GDB/LLDB)调试器,替换为以下配置:
{ "version": "0.2.0", "configurations": [ { "name": "调试mySubProj", "type": "cppdbg", "request": "launch", // 替换为你构建生成的mySubProj可执行文件的绝对路径 "program": "你的构建输出目录绝对路径/projectA/mySubProj/mySubProj", // 替换为对应参数的实际绝对路径,和你脚本内的参数完全一致 "args": ["-f", "filePath1绝对路径", "-h", "filePath2绝对路径", "-o", "dirName绝对路径"], "stopAtEntry": false, "cwd": "mainFolder/qa/scripts的绝对路径", // 和你手动执行脚本的工作目录一致 "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", // 替换为你的gdb实际路径,默认一般无需修改 "setupCommands": [ { "description": "为gdb启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] }
3. (可选)保留project.sh全部前置/后置逻辑
如果你需要执行project.sh内的其他Shell命令,可以添加前置执行任务:
- 新建
.vscode/tasks.json文件,添加以下内容:
{ "version": "2.0.0", "tasks": [ { "label": "执行前置调试脚本", "type": "shell", "command": "sh project.sh -u /inputDirFullPath/ ", "args": [], "options": { "cwd": "mainFolder/qa/scripts的绝对路径" }, "group": "none", "problemMatcher": [] } ] }
- 在
launch.json的配置中新增一行:"preLaunchTask": "执行前置调试脚本"
验证
配置完成后按F5即可启动调试,支持断点、变量查看、单步执行等所有VSCode调试功能。
内容的提问来源于stack exchange,提问作者Dr.PB
相关产品推荐
相关产品推荐

