① 事先安装好完整的Qt工具链,我这里是:Qt5.14.2

② 安装几个开发调试插件:C/C++、clangd、CMake、CMake Tools、CodeLLDB

③ 新建配置.vscode配置文件目录,主要用于存放task和launch文件

④ 工程目录、可执行文件、环境变量、调试器参数配置,见文件.vscode\launch.json
Bash
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug pump-link (gdb)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build-debug/pump-link.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [
{
"name": "QTDIR",
"value": "C:/Qt/Qt5.14.2/5.14.2/mingw73_64"
},
{
"name": "PATH",
"value": "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/bin;C:/Qt/Qt5.14.2/Tools/mingw730_64/bin;${env:PATH}"
},
{
"name": "QT_PLUGIN_PATH",
"value": "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/plugins"
},
{
"name": "QML2_IMPORT_PATH",
"value": "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/qml"
}
],
"externalConsole": true,
"showDisplayString": true,
"MIMode": "gdb",
"miDebuggerPath": "C:/Qt/Qt5.14.2/Tools/mingw730_64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable gdb pretty printing",
"text": "-enable-pretty-printing",
"ignoreFailures": false
},
{
"description": "Import Python sys module",
"text": "python import sys",
"ignoreFailures": false
},
{
"description": "Add Qt Creator debugger path",
"text": "python sys.path.insert(0, 'C:/Qt/Qt5.14.2/Tools/QtCreator/share/qtcreator/debugger')",
"ignoreFailures": false
},
{
"description": "Load Qt pretty printers",
"text": "python from gdbbridge import *",
"ignoreFailures": false
}
],
"logging": {
"engineLogging": true,
"trace": true,
"traceResponse": true
},
"preLaunchTask": "Build Debug (MinGW)"
}
]
}
⑤ 编译工具配置,如CMake,编译参数(Debug版本)、MinGW工具链等,见文件.vscode\tasks.json
Bash
{
"version": "2.0.0",
"tasks": [
{
"label": "Configure Debug (MinGW)",
"type": "shell",
"command": "cmake",
"args": [
"-S",
"${workspaceFolder}",
"-B",
"${workspaceFolder}/build-debug",
"-G",
"MinGW Makefiles",
"-DCMAKE_BUILD_TYPE=Debug",
"-DCMAKE_PREFIX_PATH=C:/Qt/Qt5.14.2/5.14.2/mingw73_64"
],
"options": {
"env": {
"PATH": "C:/Qt/Qt5.14.2/Tools/mingw730_64/bin;C:/Qt/Qt5.14.2/5.14.2/mingw73_64/bin;${env:PATH}"
}
},
"problemMatcher": [
"$gcc"
]
},
{
"label": "Build Debug (MinGW)",
"type": "shell",
"command": "cmake",
"args": [
"--build",
"${workspaceFolder}/build-debug",
"--target",
"all"
],
"options": {
"env": {
"PATH": "C:/Qt/Qt5.14.2/Tools/mingw730_64/bin;C:/Qt/Qt5.14.2/5.14.2/mingw73_64/bin;${env:PATH}"
}
},
"dependsOn": "Configure Debug (MinGW)",
"dependsOrder": "sequence",
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [
"$gcc"
]
}
]
}
⑥ 实时调试打断点效果,按F5启动launch,启动前会执行tasks编译,注意VSCode是识别不了Qt自带对象类型的,这是个小缺陷

⑦ 调试工具栏快捷键
| 快捷键 | 功能 |
|---|---|
| F5 | 启动调试、继续执行、暂停 |
| F10 | 单步执行 |
| F11 | 单步进入 |
| Shift + F11 | 单步跳出 |
| Ctrl + Shift + F5 | 重新启动应用 |
| Shift + F5 | 关闭应用 |
| F9 | 新增/移除断点 |