3

64 ビット XP で動作するハードウェア ブレークポイントを持っている人はいますか?

ハードウェア ブレークポイントを使用するアプリケーションがあります。これは、しばらくの間、32 ビット XP および 32 ビット Vista オペレーティング システムで動作します。ただし、コードを 64 ビットに移植すると、アプリを 64 ビット XP で実行するとクラッシュしますが、64 ビット Vista で実行するとクラッシュしません。アプリは XP でコンパイルおよびビルドされています。

ブレークポイント (DR7=1) を設定した後、これをスレッドの再開に分離しました。ファイル ダイアログ ボックスを表示し、フォームの GUI コントロールが不安定な場合にクラッシュが発生します。奇妙なことに、ブレークポイントを設定して不安定な GUI を観察した後、ブレークポイントを無効 (DR7=0) にすると、GUI は再び通常の動作を開始し、ファイル ダイアログを表示してもクラッシュしません。

ブレークポイント設定コードを他のサンプル ブレークポイント設定コードに置き換えましたが、各サンプルには同じ問題があります。

4

3 に答える 3

1

64 ビット XP で動作するハードウェア ブレークポイントを持っている人はいますか?

それならノーだと思います!

Visual Studio で単純な MFC アプリケーションを作成し、デバッガーでハードウェア ブレークポイント (データ ブレークポイントなど) を設定すると、アプリケーションは説明したのと同じ動作を示します。

XP x64 は、Vista/7 のコードベースと比較すると、ときどき混乱しているように見えます。したがって、Microsoft がOffice 2010 を含む一部の新しい製品でXP x64をまったくサポートしていないことは、おそらく驚くことではありません。

于 2010-02-05T15:01:35.240 に答える
1

Visual Studio にはデータ ブレークポイントがあります。特定のメモリ アドレスへの書き込み時にデバッガを停止するように設定できます。

http://msdn.microsoft.com/en-us/library/350dyxd0.aspx

于 2012-05-09T22:47:01.107 に答える
1

Codeproject に興味深いプロジェクトがあります: 「ハードウェア データの切り替え/プログラムによるブレークポイントの読み取り/実行」

于 2010-07-28T07:03:02.580 に答える