c++ - 如何让 QtCreator 在调试而不是汇编时显示 "normal"代码?

标签 c++ qt debugging qt-creator

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

我的 Qt 项目正在 Debug模式下构建。但是,每当我按 F5 键,试图通过设置断点进入代码时,我的代码就会崩溃(因为代码有错误)但它不会在断点处停止,而是显示汇编输出!

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

enter image description here

事实上,我已将断点设置在 cout 语句处,如您所见。

enter image description here

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

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

enter image description here

我也不确定这是否有帮助,但是当我在程序名称前面加上 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

最佳答案

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

关于c++ - 如何让 QtCreator 在调试而不是汇编时显示 "normal"代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36466953/

相关文章:

c++ - 我可以通过使用多线程更快地分配内存吗?

c++ - 请求从 ‘std::vector<AdjacencyData> (*)()’ 到非标量类型 ‘std::vector<AdjacencyData>’ 的转换

c++ - 如何在运行时制作 mex 函数 printf?

c++ - 实时 QCustomPlot 的设置

c++ - 检查 Mutex 释放

c++ - QT Creator 没有自动检测 MSVC2017 64 位编译器

c++ - Qt窗口框架设计

java - 如何在 Processing 调试器中获取堆栈跟踪

javascript - Safari 和 Chrome 上的 Javascript 错误

javascript - 如何在firefox/chrome中通过调试器跟踪定义脚本的js文件?