如何在用qt creator调试时显示qstring的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在用qt creator调试时显示qstring的值相关的知识,希望对你有一定的参考价值。

参考技术A 调试的时候看相应变量的值显示在:局部变量和表达式。窗口。
所以你只要在你要看的qstring那下好断点就可以了。本回答被提问者和网友采纳

如何使 QtCreator 在调试而不是汇编时显示“正常”代码?

【中文标题】如何使 QtCreator 在调试而不是汇编时显示“正常”代码?【英文标题】:How to make QtCreator show "normal" code while debugging instead of assembly? 【发布时间】:2016-04-07 04:50:14 【问题描述】:

我在 Ubuntu 14.04 上使用 QtCreator 3.6.1,gcc 作为我的主要编译器。

我的 Qt 项目正在调试模式下构建。但是,每当我按 F5 尝试通过设置断点来单步执行代码时,我的代码就会崩溃(因为代码有问题),但它并没有在断点处停止,而是向我显示了汇编输出!

这是一个屏幕截图。代码似乎在你看到黄色箭头的地方崩溃了,但我只是不知道它在源代码中的哪个位置!!!

事实上,我已经在 cout 语句处设置了断点,正如您在此处看到的那样。

甚至没有执行cout 语句。在执行 main 之前,代码似乎崩溃了。我不知道这是 QtCReator 问题还是其他问题。我添加了-O0-g 选项 到 QMAKE_CXXFLAGS 选项只是为了确保正在添加调试符号,但我遇到了这个问题。

编辑: 我的堆栈跟踪看起来像这样

我也不确定这是否有帮助,但是当我通过终端运行程序时,程序名称前有LD_DEBUG,我得到了大量的输出。

最后三行是

.
.
.
      7934: symbol=_ZN11QMetaObject8addGuardEPP7QObject;  lookup in file=/usr/lib/x86_64-linux-gnu/libQtGui.so.4 [0]
      7934: symbol=_ZN11QMetaObject8addGuardEPP7QObject;  lookup in file=/usr/lib/x86_64-linux-gnu/libQtCore.so.4 [0]
      7934: binding file /usr/lib/x86_64-linux-gnu/libQtGui.so.4 [0] to /usr/lib/x86_64-linux-gnu/libQtCore.so.4 [0]: normal symbol `_ZN11QMetaObject8addGuardEPP7QObject'
[1]    7934 segmentation fault (core dumped)  LD_DEBUG=all ./CGALQT_Fix_MainWindow

【问题讨论】:

您确定它在您的代码中崩溃了吗?如果它在没有可用调试信息的另一个库(例如 libc)中崩溃,则无论您的代码是否具有完整的调试信息,它仍会显示这些帧的程序集。完整的回溯是什么样的? @FrankOsterfeld 我明白了。你能告诉我如何在 QtCreator 中获得完整的回溯吗?我不太确定那是什么。 @FrankOsterfeld 我不知道它是否在 in 我的代码中崩溃。甚至我在第一行代码中放置的 cout 语句都没有被执行 它在底部区域中列出,其中有很多 call_init() 。我认为有一个上下文菜单选项可以复制内容。您是否有任何全局变量在初始化时可能会崩溃? @FrankOsterfeld 好的,请参阅已编辑的问题,我已将堆栈跟踪放在最后。我的代码中没有任何全局变量。但正如你所说,它不会在我的代码中崩溃 in ......而是一些dl-init.c 文件。不确定那个文件是什么。什么是崩溃初始化? 【参考方案1】:

为此,您的应用程序必须链接到调试库。要调查您的应用崩溃的位置,您通常不需要这个,因为您可以在函数堆栈中看到您自己的所有方法。

【讨论】:

以上是关于如何在用qt creator调试时显示qstring的值的主要内容,如果未能解决你的问题,请参考以下文章

QT Creator 无法在 i.Mx6 (buildroot) 上远程运行和调试

如何使 QtCreator 在调试而不是汇编时显示“正常”代码?

让QtCreator在调试时显示字符串 Qt调试助手 QtDebuggingHelper qtc-debugging-helper

Qt - 如何在拖动项目时显示图像/图标/数据?

在 Mac OS 下使用 Qt-creator 调试时如何进入 Qt 的源代码

如何告诉 Qt-Creator 使用调试或发布第三方库?