2010-11-27 82 views
3

我正在Qt中开发一个应用程序,而且我遇到了一些问题,使应用程序发现运行时错误导致应用程序崩溃的错误。像数组访问出错或指针访问错误之类的错误。Qt:查找内存泄漏和错误

QT Creator根本不会识别此运行时错误。我所拥有的仅仅是退出代码,有时还会在应用程序输出中声明失败消息。例如:

ASSERT failure in QList<T>::operator[]: "index out of range", file c:/Qt/2010.05/qt/include/QtCore/../../src/corelib/tools/qlist.h, line 463 

我该如何找到进行访问的地方? 我尝试在我的应用程序可执行文件上运行gdb,但在应用程序退出并出现错误代码(在上例中为03)后,没有回溯(没有可用的堆栈)。

我有VS安装,有时它会要求调试异常(不是这种情况下:/),但即使如此,doens不认识mingw32调试符号,只给了我一个不可视的视图。

理想情况下,我会有QT Creator转储堆栈之前这样断言,我的应用程序崩溃。有小费吗?

+2

Qt Creator调试器模式不适合你吗?这很奇怪。 – 2010-11-28 10:11:32

回答

2

如果您在调试时遇到问题,请尝试为Qt的调试/警告消息创建自己的message handling function,并在该函数中放置一个断点。然后,你的程序应该停止,只要打印其中一条消息。