VSCode C++调试配置全解析
VSCode C/C++调试配置文件 launch.json 全字段解析
launch.json 是 Visual Studio Code 中用于配置调试任务的核心文件,对于 C/C++ 开发者尤为重要。以下是对其字段的深度解析。
基础结构
launch.json 必须包含 version 和 configurations 字段。version 指定调试配置的版本,通常为 "0.2.0";configurations 是一个数组,包含多个调试配置。
{
"version": "0.2.0",
"configurations": [
{
"name": "C++ Launch",
"type": "cppdbg",
"request": "launch"
}
]
}
核心字段详解
name
调试配置的名称,显示在 VSCode 调试启动下拉菜单中。命名需清晰,如 "Debug C++ Program"。
type
指定调试器类型。C/C++ 项目通常为 "cppdbg"(Microsoft C++ 调试器)或 "lldb"(LLVM 调试器)。
request
定义调试启动方式:
"launch":启动新进程并附加调试器。"attach":附加到已运行的进程。
program
可执行文件的路径,通常为编译后的二进制文件(如 ${workspaceFolder}/bin/main)。可使用变量如 ${workspaceFolder}。
args
传递给程序的命令行参数数组。例如:
"args": ["--input", "data.txt"]
cwd
设置调试的工作目录,默认为 ${workspaceFolder}。若程序需读取相对路径文件,需正确配置此字段。
调试器控制字段
miDebuggerPath
指定 GDB 或 LLDB 调试器的完整路径。例如:
"miDebuggerPath": "/usr/bin/gdb"
stopAtEntry
布尔值,控制是否在程序入口点(如 main 函数)自动暂停。默认为 false。
externalConsole
布尔值,决定是否使用外部终端(如系统终端)而非 VSCode 集成终端。默认为 false。
环境与预处理
environment
设置环境变量数组。例如:
"environment": [
{"name": "PATH", "value": "/usr/local/bin:${env:PATH}"}
]
preLaunchTask
在调试前执行的任务名称(需在 tasks.json 中定义)。常用于编译构建:
"preLaunchTask": "build-cpp"
高级调试配置
sourceFileMap
映射调试器与本地源代码路径,适用于远程调试或路径不一致的场景:
"sourceFileMap": {
"/remote/path": "${workspaceFolder}/local/path"
}
customLaunchSetupCommands
自定义调试器启动命令,适用于特殊调试需求:
"customLaunchSetupCommands": [
{"text": "set breakpoint pending on"}
]
示例配置
以下是一个完整的 launch.json 示例:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug C++ Program",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/main",
"args": ["--verbose"],
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"miDebuggerPath": "/usr/bin/gdb",
"preLaunchTask": "build-cpp"
}
]
}
通过合理配置这些字段,可以实现断点调试、变量监视、调用栈分析等高级功能,显著提升开发效率。
BbS.okapop072.sbs/PoSt/1122_549204.HtM
BbS.okapop073.sbs/PoSt/1122_678359.HtM
BbS.okapop074.sbs/PoSt/1122_013610.HtM
BbS.okapop075.sbs/PoSt/1122_654843.HtM
BbS.okapop076.sbs/PoSt/1122_474002.HtM
BbS.okapop077.sbs/PoSt/1122_320477.HtM
BbS.okapop078.sbs/PoSt/1122_887857.HtM
BbS.okapop079.sbs/PoSt/1122_407912.HtM
BbS.okapop080.sbs/PoSt/1122_011830.HtM
BbS.okapop081.sbs/PoSt/1122_430981.HtM
BbS.okapop072.sbs/PoSt/1122_682816.HtM
BbS.okapop073.sbs/PoSt/1122_096938.HtM
BbS.okapop074.sbs/PoSt/1122_253177.HtM
BbS.okapop075.sbs/PoSt/1122_010926.HtM
BbS.okapop076.sbs/PoSt/1122_829971.HtM
BbS.okapop077.sbs/PoSt/1122_003266.HtM
BbS.okapop078.sbs/PoSt/1122_650444.HtM
BbS.okapop079.sbs/PoSt/1122_825723.HtM
BbS.okapop080.sbs/PoSt/1122_356833.HtM
BbS.okapop081.sbs/PoSt/1122_431884.HtM
BbS.okapop072.sbs/PoSt/1122_288765.HtM
BbS.okapop073.sbs/PoSt/1122_225044.HtM
BbS.okapop074.sbs/PoSt/1122_188404.HtM
BbS.okapop075.sbs/PoSt/1122_689401.HtM
BbS.okapop076.sbs/PoSt/1122_695677.HtM
BbS.okapop077.sbs/PoSt/1122_043162.HtM
BbS.okapop078.sbs/PoSt/1122_820635.HtM
BbS.okapop079.sbs/PoSt/1122_949838.HtM
BbS.okapop080.sbs/PoSt/1122_240102.HtM
BbS.okapop081.sbs/PoSt/1122_735496.HtM
BbS.okapop072.sbs/PoSt/1122_314902.HtM
BbS.okapop073.sbs/PoSt/1122_758898.HtM
BbS.okapop074.sbs/PoSt/1122_615505.HtM
BbS.okapop075.sbs/PoSt/1122_961544.HtM
BbS.okapop076.sbs/PoSt/1122_267107.HtM
BbS.okapop077.sbs/PoSt/1122_170721.HtM
BbS.okapop078.sbs/PoSt/1122_262232.HtM
BbS.okapop079.sbs/PoSt/1122_005717.HtM
BbS.okapop080.sbs/PoSt/1122_566484.HtM
BbS.okapop081.sbs/PoSt/1122_179139.HtM
BbS.okapop072.sbs/PoSt/1122_267259.HtM
BbS.okapop073.sbs/PoSt/1122_887777.HtM
BbS.okapop074.sbs/PoSt/1122_087468.HtM
BbS.okapop075.sbs/PoSt/1122_656862.HtM
BbS.okapop076.sbs/PoSt/1122_784583.HtM
BbS.okapop077.sbs/PoSt/1122_105479.HtM
BbS.okapop078.sbs/PoSt/1122_595792.HtM
BbS.okapop079.sbs/PoSt/1122_245116.HtM
BbS.okapop080.sbs/PoSt/1122_376957.HtM
BbS.okapop081.sbs/PoSt/1122_180910.HtM
BbS.okapop072.sbs/PoSt/1122_384207.HtM
BbS.okapop073.sbs/PoSt/1122_741882.HtM
BbS.okapop074.sbs/PoSt/1122_471505.HtM
BbS.okapop075.sbs/PoSt/1122_733993.HtM
BbS.okapop076.sbs/PoSt/1122_380183.HtM
BbS.okapop077.sbs/PoSt/1122_413972.HtM
BbS.okapop078.sbs/PoSt/1122_982543.HtM
BbS.okapop079.sbs/PoSt/1122_585717.HtM
BbS.okapop080.sbs/PoSt/1122_643329.HtM
BbS.okapop081.sbs/PoSt/1122_235627.HtM
BbS.okapop072.sbs/PoSt/1122_935228.HtM
BbS.okapop073.sbs/PoSt/1122_160316.HtM
BbS.okapop074.sbs/PoSt/1122_789499.HtM
BbS.okapop075.sbs/PoSt/1122_627916.HtM
BbS.okapop076.sbs/PoSt/1122_402934.HtM
BbS.okapop077.sbs/PoSt/1122_268168.HtM
BbS.okapop078.sbs/PoSt/1122_888909.HtM
BbS.okapop079.sbs/PoSt/1122_476530.HtM
BbS.okapop080.sbs/PoSt/1122_272135.HtM
BbS.okapop081.sbs/PoSt/1122_446121.HtM
BbS.okapop072.sbs/PoSt/1122_114698.HtM
BbS.okapop073.sbs/PoSt/1122_530820.HtM
BbS.okapop074.sbs/PoSt/1122_917315.HtM
BbS.okapop075.sbs/PoSt/1122_364661.HtM
BbS.okapop076.sbs/PoSt/1122_789742.HtM
BbS.okapop077.sbs/PoSt/1122_223461.HtM
BbS.okapop078.sbs/PoSt/1122_856728.HtM
BbS.okapop079.sbs/PoSt/1122_547906.HtM
BbS.okapop080.sbs/PoSt/1122_004652.HtM
BbS.okapop081.sbs/PoSt/1122_923951.HtM
查看21道真题和解析