Table of Contents:

vscode中调试启动c++程序有两种方式:
- 方式一:通过cmake插件,在命令面板上输入CMake:Debug,然后开始debug程序
- 方式二:点击左侧的Debug图标debug程序,快捷键是ctrl+shift+D

两种启动debug的方式的配置文件也是不同的:
CMake:Debug的配置在settings.json中配置如下内容

"cmake.debugConfig": {配置项},

左侧的Debug图标的配置在 launch.json 中进行配置

查看qt内置类型

在vscode调试时qt的内置类型如QString,不会显示值,需要配置qt5.natvis

1.在settings.json中配置如下内容,下面的配置是针对cmake插件的debug的配置

"cmake.debugConfig": { "visualizerFile": "D:\\program\\Qt\\qt5.natvis" },

2.在 launch.json 中配置

"visualizerFile": "D:\\program\\Qt\\qt5.natvis"

异常时查看qt源码

在有qt的.pdb调试文件、源码的情况下,当程序使用qt的代码崩溃的时候可以跳到qt的源码位置。配置如下:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Qt App",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${workspaceFolder}/build/bin/your_app.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "symbolSearchPath": "C:\\Qt\\6.6.3\\msvc2019_64\\bin",
      "sourceFileMap": {
        "D:\\a\\qtbase": "D:\\Qt\\qtbase"
      },
      "visualizerFile": "${workspaceFolder}/.vscode/natvis/qt6.natvis"
    }
  ]
}
字段 含义
"symbolSearchPath" 指定 Qt .pdb 文件所在路径。VS Code 会加载符号信息。
"sourceFileMap" 建立符号文件中记录的源码路径 → 你本机源码的映射。比如 Qt 在构建时源码路径是 D:\a\qtbase,你本地源码是 D:\Qt\qtbase
"visualizerFile" 加载 Qt 的 natvis 文件,让调试器更好地显示 Qt 类型(如 QString、QList 等)。Qt 自带这些文件,可在 Qt\Tools\QtCreator\share\qtcreator\debugger\ 下找到。

完成配置如下

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "debug",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${workspaceRoot}/bin/Debug/seismic-system.exe",
      "cwd": "${workspaceRoot}/bin/Debug",
      "stopAtEntry": false,
      "environment": [
        {
          "name": "PATH",
          "value": "E:/program/Qt/5.15.2/msvc2019_64/bin;"
        }
      ],
      "symbolSearchPath": "E:\\program\\Qt\\5.15.2\\msvc2019_64\\bin",
      "sourceFileMap": {
        "C:/Users/qt/work/qt": "E:/program/Qt/5.15.2/Src"
      },      
      "visualizerFile": "D:\\program\\Qt\\qt5.natvis"
    },
    {
      "name": "release",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${workspaceRoot}/bin/Release/seismic-system.exe",
      "cwd": "${workspaceRoot}/bin/Release",
      "stopAtEntry": false,
      "environment": [
        {
          "name": "PATH",
          "value": "D:/program/vcpkg/installed/x64-windows/bin;E:/program/Qt/5.15.2/msvc2019_64/bin"
        }
      ],
      "visualizerFile": "D:\\program\\Qt\\qt5.natvis"
    }
  ]
}