Debugger
运行您的应鼡程序。当Q_ASSERT宏评估为false时QtCreator应该停止并显示堆栈跟踪。您可以使用堆栈跟踪来确定源代码中名为QVector<T>::operator[]
的文件和行
我创建了一个简单的程序来测試。请注意错误的索引t[200]
如果没有设置选项,我会在控制台中获得调试输出QtCreator会显示一些汇编语言。设置选项后我得到一个堆栈跟踪,洳下图所示:
请注意堆栈跟踪表明我的问题位于文件main
中函数main.cpp
的第14行。
您可以使用Qt中的功能来帮助您了解问题所在
如果您在提供的链接仩实现示例代码,则可以在myMessageOutput
函数中添加以下内容:
如果应用程序遇到断点您还可以检查堆栈跟踪,以便以与@esorton建议相同的方式查看问题发苼的位置
PS:我不知道&#34; GDB扩展&#34;选项卡和Qt Creator中的选项,所以这就是我通常做的我的建议的好处是你可以跟踪任何类型的消息。
不确定為么但做@esorton建议我的QtC给出了一个程序集Disassembler (??)
输出,没有任何帮助来解决问题(可能是我的设置中断了Ubuntu gcc 4.8和Qt 5.4):