13

アクセス違反を引き起こし続けるCで書かれたDLLの問題をデバッグしようとしています。Visual C ++ 2008を使用していますが、コードはストレートCです。

私はDelphiに慣れています。デバッガで実行中に例外が発生すると、プログラムはすぐにデバッガにブレークし、プログラムの状態を調べる機会が与えられます。ただし、Visual C ++では、[出力]タブにメッセージが表示されるだけです。

First-chance exception at blah blah blah: Access violation reading location 0x04410000. 休憩なし、何もありません。Delphi EXEに戻るまでスタックを巻き戻します。これにより、問題が認識され、そこで警告が表示されますが、その時点で、コールスタックのいくつかのレイヤーが失われ、何が起こっているのかわかりません。

私は他のデバッグ手法を試しましたが、それが行っていることは、500回以上呼び出されるCマクロ内のネストされたループの奥深くで行われており、それは私のスキル(または私の忍耐力)を少し超えています。

実際にそれを処理するための「チャンス」を私に与えるには、「ファーストチャンス」例外を取得するための何らかの方法が必要だと思います。おそらく、私が知らない「最初のチャンスの例外ですぐに中断する」構成設定があるかもしれませんが、それはそれほど発見可能ではないようです。

誰かがそれがどこにあり、それを有効にする方法を知っていますか?

4

2 に答える 2

17

[デバッグ]メニューから[例外]を選択し、デバッガーで中断する例外のチェックボックスをオンにします「アクセス違反」は「Win32例外」の下にあります。

于 2010-04-14T21:16:34.193 に答える
1

「First-chanceexceptionat...」行で指定されたアドレスを使用してデータブレークポイントを作成することもできます。

Jamesの回答に続いて、探している例外はWin32例外セクションの下にあります。そこにアクセス違反が表示されるはずです。

于 2010-04-14T21:19:31.907 に答える