VSCode C++调试配置全解析

VSCode C/C++调试配置文件 launch.json 全字段解析

launch.json 是 Visual Studio Code 中用于配置调试行为的核心文件。以下是对其字段的详细解析,以 C/C++ 为例。

基础结构

launch.json 必须包含 versionconfigurations 字段:

{
  "version": "0.2.0",
  "configurations": []
}

核心调试配置字段

name

  • 描述:调试会话的名称,显示在调试启动下拉菜单中
  • 示例:
"name": "(gdb) Launch"

type

  • 描述:调试器类型,C/C++ 常用 cppdbg(Windows/Linux)或 lldb(macOS)
  • 示例:
"type": "cppdbg"

request

  • 描述:调试启动方式:
    • launch:启动新进程
    • attach:附加到已有进程
  • 示例:
"request": "launch"

program

  • 描述:可执行文件路径(绝对路径或相对于工作区)
  • 示例:
"program": "${workspaceFolder}/build/myapp"

路径与参数配置

args

  • 描述:传递给程序的命令行参数
  • 示例:
"args": ["--input", "data.txt"]

cwd

  • 描述:程序的工作目录
  • 示例:
"cwd": "${workspaceFolder}/data"

environment

  • 描述:环境变量设置
  • 示例:
"environment": [
  {"name": "PATH", "value": "/usr/local/bin:${env:PATH}"}
]

调试器控制字段

MIMode

  • 描述:指定调试器模式(gdblldb
  • 示例:
"MIMode": "gdb"

miDebuggerPath

  • 描述:调试器绝对路径
  • 示例:
"miDebuggerPath": "/usr/bin/gdb"

stopAtEntry

  • 描述:是否在程序入口暂停
  • 示例:
"stopAtEntry": true

预处理配置

preLaunchTask

  • 描述:调试前运行的任务(需在 tasks.json 中定义)
  • 示例:
"preLaunchTask": "build-myapp"

externalConsole

  • 描述:是否使用外部终端(Windows 下常用)
  • 示例:
"externalConsole": false

高级调试功能

sourceFileMap

  • 描述:源代码路径映射(用于远程调试或容器环境)
  • 示例:
"sourceFileMap": {
  "/mnt/remote": "${workspaceFolder}"
}

setupCommands

  • 描述:调试器初始化命令(GDB/LLDB 专用)
  • 示例:
"setupCommands": [
  {
    "description": "Enable pretty-printing",
    "text": "-enable-pretty-printing",
    "ignoreFailures": true
  }
]

多进程调试配置

processId

  • 描述:附加调试时指定进程ID(需配合 attach 请求)
  • 示例:
"processId": "${command:pickProcess}"

条件断点配置

logging

  • 描述:调试日志输出配置
  • 示例:
"logging": {
  "trace": true,
  "traceResponse": true,
  "engineLogging": true
}

典型完整配置示例

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "(gdb) Launch",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/build/app",
      "args": ["--verbose"],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "/usr/bin/gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "build"
    }
  ]
}

变量替换参考

VSCode 支持以下预定义变量:

  • ${workspaceFolder}:工作区根目录
  • ${file}:当前打开文件
  • ${env:VAR}:环境变量值
  • ${command:...}:执行VSCode命令

BbS.okane244.info/PoSt/1121_118872.HtM
BbS.okane245.info/PoSt/1121_164403.HtM
BbS.okane246.info/PoSt/1121_032326.HtM
BbS.okane247.info/PoSt/1121_402743.HtM
BbS.okane248.info/PoSt/1121_894820.HtM
BbS.okane249.info/PoSt/1121_625112.HtM
BbS.okane250.info/PoSt/1121_761253.HtM
BbS.okane251.info/PoSt/1121_267073.HtM
BbS.okane252.info/PoSt/1121_324172.HtM
BbS.okane253.info/PoSt/1121_113758.HtM
BbS.okane244.info/PoSt/1121_706146.HtM
BbS.okane245.info/PoSt/1121_281842.HtM
BbS.okane246.info/PoSt/1121_147250.HtM
BbS.okane247.info/PoSt/1121_322186.HtM
BbS.okane248.info/PoSt/1121_606267.HtM
BbS.okane249.info/PoSt/1121_512518.HtM
BbS.okane250.info/PoSt/1121_230615.HtM
BbS.okane251.info/PoSt/1121_266085.HtM
BbS.okane252.info/PoSt/1121_849210.HtM
BbS.okane253.info/PoSt/1121_287210.HtM
BbS.okane244.info/PoSt/1121_230791.HtM
BbS.okane245.info/PoSt/1121_752786.HtM
BbS.okane246.info/PoSt/1121_431603.HtM
BbS.okane247.info/PoSt/1121_294001.HtM
BbS.okane248.info/PoSt/1121_279977.HtM
BbS.okane249.info/PoSt/1121_556012.HtM
BbS.okane250.info/PoSt/1121_292723.HtM
BbS.okane251.info/PoSt/1121_030599.HtM
BbS.okane252.info/PoSt/1121_643034.HtM
BbS.okane253.info/PoSt/1121_276836.HtM
BbS.okane244.info/PoSt/1121_077539.HtM
BbS.okane245.info/PoSt/1121_903649.HtM
BbS.okane246.info/PoSt/1121_636556.HtM
BbS.okane247.info/PoSt/1121_666702.HtM
BbS.okane248.info/PoSt/1121_209678.HtM
BbS.okane249.info/PoSt/1121_164767.HtM
BbS.okane250.info/PoSt/1121_668132.HtM
BbS.okane251.info/PoSt/1121_535064.HtM
BbS.okane252.info/PoSt/1121_414145.HtM
BbS.okane253.info/PoSt/1121_098911.HtM
BbS.okane244.info/PoSt/1121_682769.HtM
BbS.okane245.info/PoSt/1121_872890.HtM
BbS.okane246.info/PoSt/1121_187414.HtM
BbS.okane247.info/PoSt/1121_285919.HtM
BbS.okane248.info/PoSt/1121_933008.HtM
BbS.okane249.info/PoSt/1121_286787.HtM
BbS.okane250.info/PoSt/1121_273649.HtM
BbS.okane251.info/PoSt/1121_317400.HtM
BbS.okane252.info/PoSt/1121_482371.HtM
BbS.okane253.info/PoSt/1121_428473.HtM
BbS.okane244.info/PoSt/1121_222324.HtM
BbS.okane245.info/PoSt/1121_695695.HtM
BbS.okane246.info/PoSt/1121_368299.HtM
BbS.okane247.info/PoSt/1121_154883.HtM
BbS.okane248.info/PoSt/1121_226039.HtM
BbS.okane249.info/PoSt/1121_768656.HtM
BbS.okane250.info/PoSt/1121_835633.HtM
BbS.okane251.info/PoSt/1121_861361.HtM
BbS.okane252.info/PoSt/1121_937326.HtM
BbS.okane253.info/PoSt/1121_640649.HtM
BbS.okane244.info/PoSt/1121_096512.HtM
BbS.okane245.info/PoSt/1121_174932.HtM
BbS.okane246.info/PoSt/1121_490761.HtM
BbS.okane247.info/PoSt/1121_482184.HtM
BbS.okane248.info/PoSt/1121_146564.HtM
BbS.okane249.info/PoSt/1121_030338.HtM
BbS.okane250.info/PoSt/1121_000609.HtM
BbS.okane251.info/PoSt/1121_549911.HtM
BbS.okane252.info/PoSt/1121_335332.HtM
BbS.okane253.info/PoSt/1121_703514.HtM
BbS.okane244.info/PoSt/1121_838091.HtM
BbS.okane245.info/PoSt/1121_935389.HtM
BbS.okane246.info/PoSt/1121_747027.HtM
BbS.okane247.info/PoSt/1121_154842.HtM
BbS.okane248.info/PoSt/1121_091581.HtM
BbS.okane249.info/PoSt/1121_858017.HtM
BbS.okane250.info/PoSt/1121_306601.HtM
BbS.okane251.info/PoSt/1121_110928.HtM
BbS.okane252.info/PoSt/1121_470119.HtM
BbS.okane253.info/PoSt/1121_679984.HtM

#牛客AI配图神器#

全部评论

相关推荐

面了100年面试不知...:今年白菜这么多,冬天可以狂吃了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务