Clion开发QT5下(GDB)调试打印QString

[版权声明] 本站内容采用 知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆 (CC BY-NC-SA 3.0 CN) 进行许可。
部分内容和资源来自网络,纯学习研究使用。如有侵犯您的权益,请及时联系我,我将尽快处理。
如转载请注明来自: Broly的博客,本文链接: Clion开发QT5下(GDB)调试打印QString

之前用QT5开发过一个桌面小应用,后来就没怎么用了。最近又有个新东西要折腾,所以要拾起来搞搞。

开发环境用的是Clion,这家公司的IDE就是好用呐。如何用Clion开发QT具体参考我前面的博文:《Clion+Qt5环境搭建

用Clion开发QT5会有个麻烦,就是QT自带的类不容易调试,比如QString,你期待能直接看到个字符串,然后调试模式下,看到的却是内存地址。

有几个简陋的解决方法,比如GUI模式下QMessage打印字符串,非GUI模式下用qDebug()打印字符串。虽然简单,但是引入更多冗余代码。

也有网友向Clion发起投票希望能改进这方面功能,但是目前还没改善:https://youtrack.jetbrains.com/issue/CPP-605

所以最后还是自己动手丰衣足食吧。

首先说说我的解决思路:Clion调试C++是可以选开发调试环境的,可选项有MSVC、MinGW 、CYGWIN等。安装QT5时,会附带一个可选MINGW环境,我安装了这个环境,搭配Clion编译调试QT。

其实就是用MinGW 环境的GDB工具调试QT,所以找到GDB打印QString的方法即可。

GDB可以通过.gdbinit文件扩展自定义调试方法,网上提供的方案就是通过这种形式把QString打印出来。

具体步骤:

一、测试环境

OS: windows 8/10

我安装的是目前最新版本的QT5.12,在安装的时候有个步骤是选择组件,勾选Tools中的MinGW 7.3.0 64bit,待会用到这个环境的开发工具如g++,gdb等。比如我安装在D盘,D:\Qt\Qt5.12.0\Tools\mingw730_64

打开Clion,点击菜单,File | Settings | Build, Execution, Deployment | Toolchains,

然后新建一个MinGW配置并放置在最上面,填入MinGW Home路径,即D:\Qt\Qt5.12.0\Tools\mingw730_64,确定。

二、配置.gdbinit

在个人用户目录,因为我使用的是windows8/10,所以这个目录是:C:\Users\[username]

新建文件.gdbinit,由于我使用的是windows系统,所以要生成带点的文件,必须借助命令行工具:

编辑.gdbinit文件,填入如下内容保存:

三、添加环境变量

gdb在启动的时候会查找${HOME}/.gdbinit,如果存在则载入。

所以下一步即要增加或者修改HOME环境变量,并把路径设置成.gdbinit的目录,如本文中的C:\Users\Broly

然后注销或者重启使环境变量生效。

四、测试使用

启动Clion,在代码中下断点,并运行调试程序。在断点停下来出,进入gdb界面,如果看到了有提示信息“.gdbinit loaded.”,说明已经加载了.gdbinit。

然后在gdb命令行,打印QString字符串,比如我的QString变量名为qs,则

嗯,看起来是已经完成了。

 

参考链接:《在gdb中显示QString

如果本文对您有所帮助,可以请作者喝杯咖啡,感谢支持^_^

支付宝支付
微信支付