作者本人初次接触linux 相关系统的QT(IDE)时,没有想象中的得心应手,调试较长的对象数据显得有点无奈(超出显示范围后数据变成…,打开数据查看也比较头疼(一行显示一个字节数据))。经过多个项目的编写及调试后,找到了qtcreator调试程序的较优方法。

首先我们先从构建项目说起:

创建项目时,首先确认系统(或安装)QT版本,然后在版本内的Debug(Release)选项需要勾选上,参考图1:


图1(创建工程)

Debug模式一般用来调试程序使用,Release模式作为程序发布使用。

编写测试代码和函数,为接下来的调试做准备,参考图2:


图2(编写调试代码)

示例创建的是控制台程序,并编写一个调试函数和一个QString对象:

#include <QCoreApplication>QString Debug(QString strval)
{return strval;
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QString debug = Debug(QString("Debug..."));return a.exec();
}

选择Debug以及熟悉快捷键,参考图3:


图3(选择Debug模式)

首先查看左下方显示器位置,如果上面显示Debug 表示Debug(调试)模式;通常情况下,我们通过点击这个按钮用来切换Debug或Release模式(当然也可以直接使用命令行编译相关模式执行程序)。

Debug调试常用快捷键:
Ctrl + B 构建指定模式项目
F5 开始调试/执行到断点
F10 从断点处开始单步执行
F11 单步进入(进入对象构造函数或自定义函数内部)
Shift + F11 单步跳出(跳出对象构造函数或自定义函数)

调试程序时,使用快捷键可以更方便定义到具体位置节省调试时间。

开始调试程序并设置对象数据显示方式:

首先我们点击左下角最后一个锤子按钮(或使用快捷键Ctrl + B)构建项目,然后点击左下角倒数第二个甲壳虫按钮(或使用快捷键F5)进入到程序断点,示例中断点位置设置在第12行,参考图4:

图4(QT调试界面)

在程序的右侧可以看到当前有效执行区域的对象,现在我们定义的对象参数还不能查看(因为我们通过Debug函数返回参数信息,目前还没有执行)。

调试按钮:

在QT调试界面中间偏下位置找到“GDB for “Debug” ”字样信息,在它的后面是需要用的功能按钮:
第一个:执行到断点按钮(F5)
第二个:停止调试执行
第三个:从断点处开始单步执行(F10)
第四个:单步进入(F11)
第五个:单步跳出(Shift + F11)

图5(程序执行时的调试按钮)

部分计算机刚进入程序调试时出现无法使用快捷键的情况(有时候点击几次相关按钮就可以使用快捷键了),了解这些按钮后也可以完成调试工作。

单步进入(F11):

接下来,我们正式开始调试程序,我们的第一个断点定位在Debug函数执行处,首先我们使用F11或按钮进入函数查看我们需要的信息,参考图6:

图6(进入对象构造函数)

程序在这里首先进行QString构造函数,这个信息目前用不到(目前我们只需要了解调试方式)使用Shift + F11或按钮回到我们的函数执行处。

再次单步进入(F11):

再次使用F11或按钮,这次进入了自定义函数,在QT调试界面右侧可以看到函数的传参信息,参数信息与我们传入的信息一致,参考图7:

图7(进入自定义函数)

设置使用调试助手和使用工具提示:

为了更方面查看右侧对象数据,需要在使用调试助手处打钩。当然,“调试时在“局部变量”视图中使用工具提示” 也是比较实用的功能,当鼠标放在右侧对象上方时可以动态展示对象相关信息,参考图8:

图8(右侧对象设置使用调试助手和使用工具提示)

在QT调试界面右侧的变量上方右键弹出的菜单栏中可以找到这些选项,菜单栏中“Configure Debugger…”选项可以进入调试器界面,其中可以设置字体、字符串最大数量以及字符串显示长度等。

单步执行(F10):

接下来使用F10或按钮回到Debug函数执行处,这时候定义的QString对象还没有接收函数返回值,再进行一次F10或按钮执行到第13行,参考图9:


图9(单步执行回到主函数)

现在可以看到debug对象数据信息了,接下来进入最重要的一部分。

设置对象参数弹出框:

这次在QT调试界面右侧的debug参数上方右键,找到“Change Value Display Format” -> "Separate Window"处打钩,用来弹出debug完整参数信息,在大量数据时,也可以看到完整的数据信息,参考图10:


图10(设置对象参数弹出框)

效果展示:

现在我们数据显示这部分基本完成了,下面可以开心的调试代码了…,参考图11:


图11(对象参数展示)

总结:
程序调试方面:
QT与VS系列调试快捷键基本相同,熟悉VS系列IDE的朋友可以很快上手。
实用性:
qtcreator界面稍有简陋,功能还算完整。
稳定性:
使用qtcreator调试程序,在进入调试加载时(比如已经按F5,但还没有加载到下个断点)按别的快捷键有几率造成qtcreator界面卡住或系统无法操作。

linux相关系统下qtcreator调试程序相关推荐

  1. 在win7中访问删除linux硬盘分区,win7和linux双系统下,删除linux不能启动win7的解决方法...

    win7和linux双系统下,删除linux不能启动win7的解决方法 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 双系统下删除 ...

  2. 0网卡开启_中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程

    中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程.所谓bond,就是把多个物理网卡绑定成一个逻辑网卡,使用同一个IP工作,在增加带宽的同时也可以提高冗余性,一般使用较多的就是来提 ...

  3. Linux/Unix系统下nginx+php安装简明教程

    本文转载自Linux/Unix系统下nginx+php安装简明教程,请保留转载信息~ 一.安装nginx: 1. 安装pcre库,nginx的rewrite模板需用到pcre库: mkdir -p / ...

  4. windows 7编辑启动菜单 bcdedit linux,windows7系统下删除wubi安装的ubuntu启动项使用命令bcdedit解决...

    windows7系统下删除wubi安装的ubuntu启动项使用命令bcdedit解决 发布时间:2013-05-28 15:19:31   作者:佚名   我要评论 前不久用笔记本通过wubi安装Ub ...

  5. 安卓9.0刷linux,Ubuntu系统下编译Android 9.0系统

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前言 在Ubuntu系统下编译Android系统.哎呀不知道是不是换了新电脑的缘故,这次编译居然从安装JDK和配置环境下 ...

  6. linux CentOS 系统下如何将php和mysql命令加入到环境变量中

    在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行"php -v"命令查看当前 ...

  7. usrp运行完整linux,Ubuntu系统下USRP硬件驱动(UHD)的编译与安装

    在Ubuntu系统下USRP硬件驱动(UHD)安装最简单的方式就是直接从Ettus Research官方提供的PPA源安装,不过本文介绍的是如何从源代码进行编译与安装. 1.从PPA源安装只需要下面三 ...

  8. [Linux] Linux相关系统常用命令command使用及案例

    Linux常用命令及案例分析 基本使用类 打开pdf, 表格,word 文档 基本使用类 Linux常用命令包括: 查看硬件信息命令:ifconfig free fdisk ethtool mii-t ...

  9. 防火墙阻止应用程序linux,win10系统下如何解除被防火墙阻止运行的应用程序

    使用win10系统的用户都知道,它内置有防火墙功能,但是有时候防火墙会默认阻止运行一些应用程序导致无法使用,那么win10系统下如何解除被防火墙阻止运行的应用程序呢?具体步骤如下. 1.右键点击系统桌 ...

最新文章

  1. (C++)1015 德才论
  2. AdventureWorksBI.msi 和 AdventureWorksDB.msi 的官方下载地址及安装方法
  3. B1013 数素数(20分)
  4. Go的sync.Pool(五)
  5. LeetCode 264. 丑数 II
  6. Linux中添加、修改、删除用户和用户组
  7. [转载]用c写PHP的扩展接口(php5,c++)
  8. python 数字大小排序_python list字符按数字大小排序
  9. 图论 —— 最短路 —— Dijkstra 算法
  10. Java项目案例大全
  11. 多路开关模式的switch语句
  12. 语法制导定义 SDD
  13. 宝塔面板部署python项目
  14. Linux_版简易C语言IDE制作
  15. linux网络串口工具下载,串口调试工具手机版下载
  16. 【自用】网页设计与制作教程 笔记
  17. 苹果手机怎么保存ins上的图片到本地
  18. JAVA--多线程管理
  19. 一个开源「知乎日报」Android 客户端
  20. java 三维旋转立方体_java - 如何通过旋转来计算立方体的所有方向,而不重复方向? - SO中文参考 - www.soinside.com...

热门文章

  1. 牛逼!计算机基础知识总结与操作系统 PDF 开放下载了!
  2. 大三、研二的秋招备战路线(Java、大数据)
  3. JeecgBoot 单表数据导出多sheet实例
  4. 低代码平台真的能拯救程序员的996吗?
  5. 介绍Spring Cloud Stream与RabbitMQ集成
  6. MiniDao_1.6.4 版本发布,轻量级Java持久化框架,Hibernate项目辅助利器
  7. JEECG 移动端解决方案
  8. 再问数据中台 - 数据中台和业务中台服务有什么区别 应该如何去界定和划分?
  9. GRUB与Linux系统修复(第二版)
  10. React个人入门总结《五》