2011-07-19 8 views
0

ソース、エラー、およびスタックトレースが含まれています。この問題を解決するにはどうすればよいですか? - 私は、WindowsがテストにブレークポイントをトリガしたVisual Studio 2008 QDomElement :: text()関数の呼び出し中に "Debug Assertion Failed"メッセージが表示される

メッセージが表示されます

QFile xmlInputFile(".\\gatewayipmonitor.xml"); 
xmlInputFile.open(QIODevice::ReadOnly); 

QByteArray xmlData(xmlInputFile.readAll()); 

QDomDocument doc; 
doc.setContent(xmlData); 

QDomElement docEl(doc.documentElement()); 
const QString tagName(docEl.tagName()); 

docEl.text(); 

最後の行が実行されています。私はこの

ソースコードに関する進め方についてのポインタ(説明)が必要です。EXE。

ヒープが破損している可能性があります。これは、 tests.exeまたはそれがロードしたいずれかのDLLのバグを示しています。

これは、tests.exeのフォーカスが である間にユーザーがF12キーを押したことが原因である可能性もあります。

出力ウィンドウには、より多くの診断情報が含まれている場合があります。 「

私は、[続行]をクリックします -

プログラム - 私はさらにメッセージを取得: F:\ DD \ vctools \ crt_bldリリースの\ tests.exeファイル\ ...のn \テストを\ self_x86の\のCRTの\ dbgheap.c

式:_CrtIdValidHeapPointer(pUserData)

スタックトレース:

msvcr90d.dll!_free_dbg_nolock(void * pUserData=0x00a5f348, int nBlockUse=1) Line 1317 + 0x30 bytes C++ 
msvcr90d.dll!_free_dbg(void * pUserData=0x00a5f348, int nBlockUse=1) Line 1258 + 0xd bytes C++ 
msvcr90d.dll!free(void * pUserData=0x00a5f348) Line 49 + 0xb bytes C++ 
QtCored4.dll!qFree(void * ptr=0x00a5f348) Line 60 + 0xa bytes C++ 
QtCored4.dll!QString::free(QString::Data * d=0x00a5f348) Line 1185 + 0x9 bytes C++ 
QtCored4.dll!QString::~QString() Line 883 + 0x23 bytes C++ 
tests.exe!test_GatewayIpMonitor() Line 321 + 0xc bytes C++ 
tests.exe!main() Line 343 C++ 
tests.exe!__tmainCRTStartup() Line 586 + 0x17 bytes C 

答えて

1

私はリリースビルドでプログラムを実行していましたが、デバッグビルドライブラリ(Qtcored.lib)とリンクしていました。それが問題でした。

0

ヒープの破損ではありません。あなたは悪いqstringを削除しています。そのqstringのインスタンスまたはポインタ(ほとんどの場合)が実際に悪い時にどのように使用されたかを調べてください。

関連する問題