2010-11-27 85 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,並在該函數中放置一個斷點。然後,你的程序應該停止,只要打印其中一條消息。