4

C で記述したコードを VS でデバッグしています。何らかの理由で、ある時点で、次の行でアセンブリ ウィンドウにジャンプします。

  int        3

ポップアップ メッセージ ボックスが表示され、次のメッセージが表示されます。

  User Breakpoint Called From Code At  0X7c90120120e

スタックを調べたところ、それを引き起こしたコマンドはMALLOCでした!

出力ウィンドウで:

Heap missing last entry in committed range near 22549c0

奇妙なことに、メッセージで OK を押してから F5 キーを押してデバッグを続行すると、すべてが 100% 動作します。しかし、コードを実行しようとすると、プロジェクトに問題が発生したというメッセージが表示されます。

プロジェクトのクリーニング、再構築、すべてのブレークポイントの削除を試みました..何も機能しませんでした。

4

2 に答える 2

4

まず、コメント/回答ありがとうございます。

問題を解決しました。同じメモリを 2 回解放しようとしていることがわかりました。

以前に気付かなかった理由は、「Free」(delete 関数) が、デバッガーが停止した場所/ブレークポイントが発生した場所 (malloc で) と同じ関数または同じファイルに含まれていなかったためです。

したがって、誰かが同じ問題を抱えている場合は、同じメモリを複数回解放していないことを確認してください。

于 2013-08-22T11:24:03.243 に答える
2

このスタック オーバーフロー スレッドの重複の可能性があります。この問題の説明は、このリンクにあります。お役に立てば幸いです。

于 2013-08-21T15:32:28.823 に答える