如何使用 Qt 5.5.1 在调试器中查看 QString 值

Posted

技术标签:

【中文标题】如何使用 Qt 5.5.1 在调试器中查看 QString 值【英文标题】:How to view QString values in debugger with Qt 5.5.1 【发布时间】:2015-12-14 11:59:40 【问题描述】:

有人知道如何在 Qt 5.5.1 (QtCreator 5.3.1) 的调试器中查看 QString 值吗?

我尝试了网上找到的各种方法,从启用/禁用 GDB 漂亮打印机、显示 QString 格式等。似乎没有任何效果。

(编译器 - MSVC 2013 - 32 位)

编辑-图像:

非常感谢, 迈克尔

【问题讨论】:

你看到了什么? not accessible? 我只看到了 QString、QArrayData 等的内部结构。 (在 Qt Creator 中是的。-我所有的同事也看到了相同的行为) “从启用/禁用 GDB 漂亮打印机”——听起来很奇怪,创建者应该在 Windows 上默认使用 Windows 调试工具 (cdb)。您在 Kit 中配置了哪个调试器? 只是尝试我在网上找到的提示。如何查看我配置了哪个调试器?我没有改变它,所以大概是正确的。其他一切正常,只是显示字符串。我的其他同事也看到了同样的问题。 bugreports.qt.io/browse/QTBUG-50322 【参考方案1】:

我也遇到了同样的问题。我找到了解决方案。

我的 Qt 是 5.9.2。 IDE 是 Qt Creator 4.3.1。

点击Tools->options->Debugger->Local & Expresions->Use Debugging Helper

【讨论】:

【参考方案2】:

我相信您可以在 QString 类中使用 QString::data() 函数或 data_ptr 指针。

【讨论】:

这不是真正的解决方案。我想使用调试器,而不是打印值。 @Dynite 不,我的意思是您可以在调试器中查看对象的“data/data_ptr”元素以查看实际数据:o 不起作用 - 查看数据的唯一方法是可视化 QArrayData 子对象的内存。 我刚刚检查了我自己的 Windows Qt(与您的 Qt 5.5.1 和 Qt Creator 3.5.1 相同的版本)。当我查看 QString 时,我只看到我的变量名称(及其类型),然后在它下面是 QChars 列表,按索引列出及其内容。我没有看到 QString 的其他成员(即我可以看到数组的内容)。您在套件中使用的是哪个编译器/调试器?我的是:mingw 4.9.2GNU gdb 7.8 for mingw 4.9.2 信息在问题中:“编译器 - MSVC 2013 - 32 位”【参考方案3】:

这是 QT Creator 3.5.1 中的一个错误。当 webengine 链接到项目时(出于某种原因)

修复在 Qt Creator 3.6.1 中。详情在这里:https://bugreports.qt.io/browse/QTCREATORBUG-15580

【讨论】:

以上是关于如何使用 Qt 5.5.1 在调试器中查看 QString 值的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2015 上调试时如何查看 Qt5 QString 内容

Qt 5.7 版本+2013VS环境配置

Qt Creator Mac OS X 10.8.3 调试助手不起作用

在 Qt Creator 调试器中查看数组内容

如何在 静态编译的qt 5.5.1 中 使用数据库插件连接 odbc

qt creator中在调试状态下如何查看变量的值