Qt5 VSCode调试

① 事先安装好完整的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 新增/移除断点
相关推荐
FlightYe7 小时前
视界原理之3D视频(四):裸眼、眼镜和头显
android·linux·c++·3d·ffmpeg·音视频
by209999 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
Rover Ramble9 小时前
C++ 用互斥锁实现读写锁
开发语言·c++
你怎么知道我是队长9 小时前
C++零基础入门第2周:数据类型、运算符与表达式完全指南(附20段可运行代码+避坑清单)
c++
say_fall10 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++
雪落漂泊10 小时前
C++算法 滑动窗口篇(下)
开发语言·c++
你怎么知道我是队长13 小时前
C++零基础第3周:if/else、switch、for/while/do-while 控制流完全指南(附20段可运行代码+避坑清单)
java·开发语言·c++
青少儿编程课堂13 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:倍增法求最近公共祖先LCA解析
c++·python·算法·bfs·信息学竞赛
雷✘14 小时前
C++ 类与对象的初始化机制、成员访问边界与拷贝优化
java·网络·c++
努力实干14 小时前
简单工厂模式(Simple Factory Pattern)——C++
开发语言·c++·简单工厂模式