Qt调试功能使用方法

devtools/2025/3/11 0:39:29/

QT编程环境

QT在Windows操作系统下的三种编程环境搭建。

方案编程环境编译器调试器
1Qt CreatorMinGW GCCGDB
2Qt CreatorMicrosoft Visual C++ CompilerDebugging Tools for Widows
3Microsoft Visual Studio VS自带VS自带

方案提及的QT安装程序及压缩包均能在官网Index of /official_releases下载到。

 Qt编译器MinGW-32下载地址:Index of /development_releases/prebuilt/mingw_32

Index of /development_releases/prebuilt/mingw_64 Qt编译器MinGW-64下载地址:Index of /development_releases/prebuilt/mingw_64

QT调试功能

一、基础调试操作

  1. 启动调试

    • 使用 F5 或点击调试按钮(绿色虫子图标)进入调试模式。调试前需确保项目为 Debug 版本,否则无法加载调试信息‌。

    • 支持的调试器:Windows 平台推荐 CDB(需安装 Debugging Tools for Windows),其他平台可选 GDB 或 LLDB‌。
      GDB调试器:安装MinGW后,对应的bin目录下有gdb.exe文件。通过kit工具添加gdb

      CDB调试器:已经安装过sdk(比如:win10系统),通过控制面板,找到window软件开发包套件(如下),右键,再选择“更改”,选择Debuging Tools for Windows。


      安装完毕之后,重启Qt Creator就可以调试,如果不行,就通过kit工具添加CDB

  2. 断点管理

    • 在代码行号左侧单击设置断点,程序运行到断点时会暂停执行,可查看变量、调用栈等信息‌。

    • 支持条件断点和临时禁用断点‌。

  3. 单步执行与变量监控

    • 使用 Step Into(步入)、Step Over(步过)、Step Out(步出)逐行跟踪代码逻辑‌。

    • 在调试视图中查看局部/全局变量,支持修改变量值进行动态测试‌。


二、高级调试技巧

  1. 调试动态库(DLL)

    • Attach to Running Application‌:附加到已运行进程调试动态库‌。

    • Attach to Unstarted Application‌:配置未启动的应用程序进行调试‌。

    • Start and Debug External Application‌:直接启动外部应用并调试其加载的动态库‌。

  2. 处理程序崩溃

    • 程序崩溃时,调试器会自动定位到崩溃位置,通过调用栈(Call Stack)回溯问题源头,检查变量值或指针是否异常(如野指针或越界访问)‌。

    • 常见错误分析:

      • Segmentation fault:内存访问错误,检查指针或容器越界‌。

      • 0xc0000005:空指针调用,需验证指针有效性‌。

  3. 调试子进程

    • 在调试器设置中添加 set follow-fork-mode child(GDB)命令,自动附加到由 QProcess 启动的子进程‌。


三、调试配置

  1. 调试 Qt 源码

    • MinGW/MSVC 配置‌:安装 Qt 源码并配置调试符号路径,支持单步进入 Qt 内部函数‌。

    • 建议使用 Qt Creator 10.0.0+ 版本,内置代码分析插件,对 CMake 项目支持更完善‌。

  2. Release 模式调试

    在 .pro 文件中添加编译选项,如下,重新编译生效‌,生成调试符号后需清理旧构建文件(如 .pdb)。
  3. QMAKE_CXXFLAGS_RELEASE += -g QMAKE_LFLAGS_RELEASE = -g
  4. 远程调试(如嵌入式设备)

    • 配置交叉编译工具链,构建 ARM 版本程序后传输到目标设备,通过 Qt Creator 远程附加调试‌。

四、注意事项

  • 版本兼容性‌:确保 Qt Creator 版本与调试器及工具链匹配,避免功能缺失‌。

  • 调试符号‌:调试第三方库或系统组件时需安装对应的调试符号包‌。

  • 资源清理‌:修改调试配置后需执行 清理 → qmake → 重新构建,确保生效‌。


http://www.ppmy.cn/devtools/166146.html

相关文章

Web前端开发——HTML基础下

HTML语法 一表格1.基本格式2.美化表格合并居中属性 二表单1.input2.select3.textarea4.button5.date6.color7.checkbox8.radio9.range10.number 一表格 1.基本格式 HTML表格由<table>标签定义 其中行由<tr>标签定义&#xff0c;单元格由<td>定义。我们先来…

Android MXPlayer-v1.86.0-wushidi专业版[原团队最后一个版本]

MXPlayer 链接&#xff1a;https://pan.xunlei.com/s/VOKiDeDUxTDbJNN7yRAZjW8HA1?pwd4bzc# MX Video Player视频播放器是一款安卓最优秀的媒体播放器软件&#xff0c;它能够播放几乎每一个影片档案&#xff0c;并且具备多核心的译码能力来处理你的影片档案和字幕。多核译码…

基于Spring Boot的学院商铺管理系统的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

C# 基础知识总结(持续更新中...)

C#有哪些数据类型&#xff1f; 值类型 引用类型 整数类型 实数类型 布尔类型 字符类型 结构类型 枚举类型 类 数组 字符串 接口 委托 对象型 C#有哪几种访问修饰符&#xff0c;有何区别&#xff1f; public 公共成员 访问不受限制 private 私有成员 只限于当前类成员…

React基础之项目实战

规范的项目结构 安装scss npm install sass -D 安装Ant Design组件库 内置了一些常用的组件 npm install antd --save 路由基础配置 npm i react-router-dom 路由基本入口 import Layout from "../page/Layout"; import Login from "../page/Login"; impor…

【进程和线程】(面试高频考点)

【进程和线程】 前言 在计算机编程领域&#xff0c;并发编程是一项至关重要的技术&#xff0c;而进程和线程正是实现并发编程的核心概念。为了让大家更直观地理解并发编程的作用&#xff0c;我们先来看一个简单的生活例子。 想象一下&#xff0c;现在有一大份美味的饭菜&…

深度学习实战车辆目标跟踪与计数

本文采用YOLOv8作为核心算法框架&#xff0c;结合PyQt5构建用户界面&#xff0c;使用Python3进行开发。YOLOv8以其高效的实时检测能力&#xff0c;在多个目标检测任务中展现出卓越性能。本研究针对车辆目标数据集进行训练和优化&#xff0c;该数据集包含丰富的车辆目标图像样本…

列表加上总价 自定义只计算某一列

在el-table上加上 将show-summary设置为true就会在表格尾部展示合计行。 使用summary-method并传入一个方法 <el-table:data"assetsDetailInfo.feedFormulaItems":cell-style"columnStyle":header-cell-style"headerStyle"show-summary:su…