【Qt调试技巧】如何在Release下调试Qt程序?

1. 前言

在实际项目中,我们会遇到这种需求,即在Release构建配置下,调试Qt程序。

刚听到这个需求时,可能会有些奇怪。调试一般都是在Debug构建模式下进行的,Release用于发布程序,Release模式程序下应该是无法调试的。为什么不在Debug下调试呢?

复杂的项目中,通常存在各种各样的第三方库。由于各种因素,某些第三方库只有Release版本,没有Debug版本,同时由于各种原因,如在头文件中使用了STL,导致程序在Debug模式下使用Release版本的库会崩溃,从而导致主程序以及其他程序模块也只能在Release下构建和运行。默认情况下,Release模式下是无法调试的。无法调试程序,会严重阻碍开发进度。

实现在Release下调试Qt程序,需要对构造系统进行配置。

2. 配置项目

结合我们前面讲的《掌握VS项目配置》、《掌握Qt构造系统》、《掌握Qt调试技巧》等相关内容,我们其实可以通过修改项目配置解决以上问题。

2.1 开启调试信息输出

首先,在Qt Creator中将构建配置切换至 Profile 模式,如图:

选择Profile配置

对于 Profile 构建配置,有:

Profile = Release with debug info

Profile 配置即带调试信息(带*.pdb)的Release配置,为了在Release模式下进行调试,可以在开发阶段,使用此配置代替Release配置。

2.2 禁用优化

Release 构建配置一样,在 Profile 构建配置下,编译器也会对代码进行优化,导致生成的程序和我们的代码无法一一对应,从而导致无法调试。所以我们需要禁用 Profile 模式下的程序优化。

在Qt项目的 .pro 文件中,添加以下 qmake 指令:

QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -Od

即可禁用 Profile 构建配置下的程序优化。

2.3 重新构建

修改 .pro 文件后,执行qmake,使Qt构造系统重新生成Makefile文件,从而使 qmake 指令生效。最后,重新构建项目即可。

至此,已完成所有步骤,程序便可以在 Release 模式下进行源码调试。

2.4 开始调试

需要提及的是,在实际开发中,使用Qt调试程序经常会出现卡死、调试源码位置错误等问题。这是Qt使用的调试器本身存在的问题。如果出现这种问题,建议使用Visual Studio进行辅助调试,此部分的详细内容,可以参考本公众号的《掌握Qt调试技术》文章。

3. 结语

在实际项目开发中,可能会出现各种问题。仅仅学会Qt编码是不够的,深入Qt开发必须掌握构造系统配置的基本功。


本文原创发布于 Qt未来工程师。

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

撬动未来的支点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值