我在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
答案 0 :(得分:0)
为此,您的应用程序必须链接到调试库。要调查应用程序崩溃的位置,通常不需要这样,因为您可以在函数堆栈中看到所有自己的方法。