当前位置: 首页 > news >正文

Mastering Qt 番外 —— 添加源码调试

        笔者最近正在尝试深入的学习Qt框架,经常需要明确我经常使用的类底下发生了什么,因此笔者决定仔细研究一下如何进行源码级别的调试

        此篇文章将会介绍如何使用Qt Creator这个IDE进行调试。最终效果如下

EasyWay

        笔者采用的是这个最简单明了的方式,打开Qt安装目录下的MaintenanceTool.exe,在登录结束后选择“添加或移除组件选项”

        在各位看官自己安装的版本下,可以看到Qt Debug Information Files,勾选安装即可

Tough Way

        还有一种情况,就是看官选择的版本的MaintenanceTool.exe不提供Qt Debug Information Files,在这个情况下,看官就需要手动的下载调试所需要的pdb文件了

        举个例子,如果看官使用的是Qt6.7.2,其目标编译器是Mingw64,目标主机操作系统是Windows64位,那么,在如下的链接下载所需要的库的pdb文件即可。放到自己的一个文件夹下(哪里都行,但是需要记住放在哪里)

Index of /online/qtsdkrepository/windows_x86/desktop/qt6_672/qt.qt6.672.debug_info.win64_mingw

Qt Creator配置

        再下一步就是Qt Creator的配置了,如果您是Old Qt Creator User, 在工具 - 选项里找到调试器,如果你是新Qt Creator用户(比如说我),事情很简单

        

        点击Preferences就行。

        下一步就是找到调试器,告诉我们的调试器到哪里找到我们的Qt FrameWork的源码符号。对于采用了EasyWay的同志们,事情还是很Easy,只需要自己在调试器中添加自己下载的Qt源码位置就好了(btw: 自己使用 + 调试的源码保证版本一致,为什么呢,不同版本代码不一样,调试符号自然不同,调试时错配 pdb 文件,默认的行为是调试器装死直接ignore F11)

        ToughWay的同志们在做完上面这个事情的基础上,再选择CDB Path路径

        添加的东西是下载的pdb根文件夹下的bin目录(确保暴露pdb文件即可)(btw,不太负责任,因为笔者尚未求证此方法!)

        现在我们可以对Qt进行源码级别的调试了(笑

Reference

qt5.12调试信息(pdb文件)安装 – simba (simbot.net)

Qt查看源码总结帖 | Olimi (olimiya.github.io)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • pg入门18—如何使用pg gis
  • Mybatis中sql数组为空判断
  • 3款免费的GPT类工具
  • vscode软件在 C发中常用插件
  • 【工具】Windows|两款开源桌面窗口管理小工具Deskpins和WindowTop
  • 【动态库的加载】【进程地址空间(三)】
  • iPhone16,超先进摄像头系统?丝滑的相机控制
  • Vue 依赖注入组件通信:provide / inject 使用详解
  • 链动3+1滑落模式小程序开发
  • 7、论等保的必要性
  • Linux之实战命令03:stat应用实例(三十七)
  • 分治策略:从入门到精通,10分钟带你玩转算法!
  • 软件测试 BUG 篇
  • INDEX函数和MATCH函数知识讲解与案例演示
  • Linux、Windows、Android下查看可执行文件、动态库和静态库信息的命令
  • 【React系列】如何构建React应用程序
  • express.js的介绍及使用
  • Go 语言编译器的 //go: 详解
  • gulp 教程
  • HTML中设置input等文本框为不可操作
  • leetcode46 Permutation 排列组合
  • PHP那些事儿
  • Python - 闭包Closure
  • python 装饰器(一)
  • ReactNativeweexDeviceOne对比
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • STAR法则
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 我看到的前端
  • 想写好前端,先练好内功
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • postgresql行列转换函数
  • 关于Android全面屏虚拟导航栏的适配总结
  • ​linux启动进程的方式
  • # Panda3d 碰撞检测系统介绍
  • %@ page import=%的用法
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (笔试题)合法字符串
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)构建dubbo分布式平台-平台功能导图
  • (函数)颠倒字符串顺序(C语言)
  • (九)信息融合方式简介
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (原創) 未来三学期想要修的课 (日記)
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .libPaths()设置包加载目录
  • .Net FrameWork总结
  • .NET程序集编辑器/调试器 dnSpy 使用介绍
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET精简框架的“无法找到资源程序集”异常释疑