2011-10-18 3 views

答えて

3

gdbはMMUを使用して、監視対象のアドレス範囲を含むメモリページが保護されているとマークします - 保護されたページへの書き込みに例外が発生すると、gdbは例外を処理し、特定のウォッチポイントに対応し、それに応じてgdbコマンドプロンプトに再開またはドロップします。

mprotectを使用して、独自のデバッグコードまたはテストハーネスに類似のものを実装できますが、不正な書き込みで失敗するよりも洗練されたものを実行する必要がある場合は、例外ハンドラを実装する必要があります。

+0

ありがとうございました。使用可能なハードウェアからのサポートはありますか?私は暗闇の中でちょうどそれを知っている。 – Kapil

+1

MMU(メモリ管理ユニット)*は*ハードウェアです。ページを保護されているとマークすることで、そのページへの書き込み時に例外が発生することがあります。これがハードウェア支援ウォッチポイントの働きです。 MMUがなければ、命令ごとに一時停止してすべてのウォッチポイントアドレス範囲を調べる必要があります。これはソフトウェアウォッチポイントがMMUのないシステム(通常は小さな組み込みシステム)で動作し、非常に遅い方法です。 –

7

Thisは、Linuxでハードウェアブレークポイントがどのように実装されているかを説明し、プロセッサ固有の機能がどのように使用されているかについても詳しく説明しています。

関連する問題