14

プログラムを実行すると(確かに、デバッグモードでビルドされています)、「外部例外80000003」というエラーが発生します。

Win32例外/アクセス違反エラーによると、それは意味します0x80000003 EXCEPTION_BREAKPOINT A breakpoint was encountered.

ただし、IDEにはブレークポイントが設定されておらず、IDEの外部で実行しています。

はい、正しい実行可能ファイルがあります。すべてのブレークポイントを削除し、プロジェクトをクリーンアップして新しくビルドしましたが、それでもそのダイアログボックスは表示されます。.exeを削除し、再度ビルドして、期待どおりに表示されることを確認しました。.exeのタイムスタンプを確認しました。FromCreate()にメッセージボックスを追加し、それと「外部例外80000003」を確認しました。

どうすればそれをなくすことができますか(デバッグモードでビルド)?


D'oh !! それは古いコードであり、もちろん、これを1つのエラー状態で実際にコーディングしたことを忘れました。これはasm int 3 end;、IDE(または、IDEが実行されていない場合はWindows、したがってエラーボックス)にブレークポイントを通知します。時間の浪費についてお詫び申し上げます。

4

1 に答える 1

10

ブレークポイントは基本的にマシンレベルの命令(オペコード?)であり、CPU処理を一時停止し、例外タイプの信号を発生させます。これは通常、OSによって取得され、デバッガーや類似のユーザープロセスに反映されます。

私がこれを持っていたとき、それはほとんどの場合、私のコードがデータスペースに飛び込んだときでした。時々悪夢をデバッグするときに誤ってブレークポイントをコードにハードコーディングしたので、ほとんどいつも言います(!)。

編集:@Ken Whiteが言うように、int 3(ブレークポイント割り込み)は私がハードコーディングするために使用したものです:-)

私が最初にすることは、スタックトレースを取得し、バックワードを処理することです。

于 2012-08-13T03:56:29.143 に答える