2

x86 アーキテクチャ用のシンプルな Linux カーネル デバッガを構築したいと考えています。最初にブレークポイントを設定したい。デバッガーレジスターを構成するためのカーネル API があるかどうか疑問に思っていました。デバッガー レジスター用のカーネル API がない場合、レジスターを手動で適切に構成する方法 (アセンブリ "MOV" 命令を使用) に関するドキュメントはありますか?

4

1 に答える 1

4

処理するカーネルのバージョンによって異なります。

少なくとも 2.6.33 以降、カーネルにハードウェア ブレークポイントを設定するための API がありますが、バージョン 3.0 から 3.2 にかけて少し変更されている可能性があります。

register_wide_hw_breakpoint()関数kernel/events/hw_breakpoint.cとその近くの関数を見てください。

ドキュメントはかなり不足しているようですが、カーネルでその API を使用する方法の例があり、役立つかもしれません。

その API を使用したより複雑な例は、RaceHound プロジェクトにあります。

于 2013-05-04T18:22:15.573 に答える