WinDbg の覚え書き (その 2)
コマンド ウィンドウにデバッグ出力を表示させたい
ドライバーのデバッグ出力を WinDbg のコマンド ウィンドウに表示したいときは、次のようにして nt!kd_default_mask
を有効にする。
eb nt!Kd_Default_Mask f
なお、マスクはいろいろあり、x nt!kd_*_mask
で確認することができる。
次の資料が詳しい。
- How to enable verbose debug tracing in various drivers and subsystems
- Reading and Filtering Debugging Messages
変数を使いたい
デバッガーで変数のようなものを使いたいときがある。その時は、疑似レジスタ (pseudo register) を使うとよい。 $t0 - $t19 まで用意されており、次のように使用することができる。
r $t0 = 123
たとえば、とある変数が持つハンドルからプロセス情報を表示するには次のようにすることで表示が可能。
** 現在ブレークしている地点で参照可能な handle という変数があるという前提 ** handle はハンドルのポインターなので、poi() によってポインターが指し示す先から値を取得する r $t0 = poi(handle) !process $t0 0