2010-11-27 19 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をインストールしていますが、時には例外をデバッグするように頼んでいます(この場合ではありません:/)。しかし、それでもmingw32デバッグシンボルは認識されません。

理想的には、アプリケーションをクラッシュさせるようなアサートが発生する前に、QT Creatorのダンプスタックが必要です。任意のヒント?

+2

Qt Creatorデバッガモードが動作しません。それは変だ。 –

答えて

2

デバッグに問題がある場合は、Qtのデバッグ/警告メッセージ用に独自のmessage handling functionを作成し、その機能にブレークポイントを設定してみてください。それでは、プログラムは、それらのメッセージのいずれかが印刷されるたびに停止する必要があります。

関連する問題