用Clion做QT开发,调试时不能正常显示qt相关变量的值,只能显示地址,还要切换到qtcreator调试,很麻烦,就在网上找解决办法。搜了一圈,果然找到了,按照这篇文章中Clion调试QTQString看不到值问题处理_macos clion 看不到qt变量内容-CSDN博客设置没用,又找到官方文档上一顿操作,还是不行。Qt projects | CLion Documentation (jetbrains.com)
然后一顿各种尝试,最后发现,由于原本的libstdcxx.v6.printers生效了,导致新加的qt.py不会生效。于是删掉了原来的libstdcxx脚本,仅保留新加的就可以成功显示了。本人使用的QT版本是5.15.2,编译器套件选的是mingw810_64,具体设置如下:
1.下载qt.py和helper.py两个脚本文件(上面链接中有链接)放到Qt\Tools\mingw810_64\share\gdb\python\gdb\printer路径下;ps:放其他地方也行,只要脚本中的路径是对的就可以。脚本生效会在文件目录下产生.pyc文件
2.打开Qt\Tools\mingw810_64\etc(根据自己选择的编译器套件)将gdbinit文件中libstdcxx脚本删掉,只保留qt.py的:
python import sys sys.path.insert(0,sys.path[0] + '/../../gdb/python/gdb/printer') from qt import register_qt_printers register_qt_printers (None) end
3.重新进行调试,可以看到生效了
目前我的电脑是需要删掉libstdcxx内容的,不知道是不是和电脑环境有关系,可以先不删除试试。另外还发现了一个clion的插件QT6 Renderer,看介绍是支持qt6的变量显示。
标签:qt,变量值,py,libstdcxx,gdb,clion,调试 From: https://www.cnblogs.com/xiaoyang217/p/18258163