!db、!dc、!dd、!dp、!dq、!du、!dw

!db!dc!dd!dp!dq! du および !dw拡張子は、ターゲット コンピュータ上の指定された物理アドレスにあるデータを表示します。

これらの拡張コマンドを、d* (表示メモリ) コマンド、または !ntsdexts.dp拡張コマンドと混同しないでください。

!db [Caching] [-m] [PhysicalAddress] [L Size] 
!dc [Caching] [-m] [PhysicalAddress] [L Size] 
!dd [Caching] [-m] [PhysicalAddress] [L Size] 
!dp [Caching] [-m] [PhysicalAddress] [L Size] 
!dq [Caching] [-m] [PhysicalAddress] [L Size] 
!du [Caching] [-m] [PhysicalAddress] [L Size] 
!dw [Caching] [-m] [PhysicalAddress] [L Size] 

パラメーター

キャッシュ
次のいずれかの値を指定できます。 キャッシュ値は角括弧で囲む必要があります:

[c]
この拡張機能がキャッシュされたメモリから読み取られます。

[uc]
この拡張機能はキャッシュされていないメモリから読み取ります。

[wc]
この拡張機能を書き込み結合メモリから読み取ります。

-m
メモリを一度に 1 ユニットずつ読み取ります。 たとえば、 !db -m は 8 ビット チャンクでメモリを読み取り、 !dw -m は 16 ビット チャンクでメモリを読み取ります。 ハードウェアが 32 ビットの物理メモリ読み取りをサポートしていない場合は、-m オプションを使用することが必要な場合があります。 このオプションは、ディスプレイの長さや外観には影響しません。メモリへのアクセス方法にのみ影響します。

PhysicalAddress
表示する最初の物理アドレスを 16 進数形式で指定します。 このコマンドを初めて使用する際にこれを省略すると、アドレスの既定値は 0 になります。 後続の使用でこれを省略すると、最後の表示が終了した位置から表示が開始されます。

L **** サイズ
表示するメモリのチャンク数を指定します。 チャンクのサイズは、使用される正確な拡張機能によって決まります。

環境

Mode

カーネル モード

DLL

Kext.dll

追加情報

物理メモリに書き込むには、!e\ *拡張機能を使用します。 メモリ操作の概要と、その他のメモリ関連コマンドの説明については、メモリの読み取りと書き込みを参照してください。

解説

これらの拡張機能はそれぞれ物理メモリを表示しますが、表示形式と既定の長さが異なります。

  • !db 拡張機能には、16 進バイトとその ASCII 文字に相当するものが表示されます。 既定の長さは 128 バイトです。

  • !dc 拡張機能には、DWORD 値とその ASCII 文字に相当するものが表示されます。 既定の長さは 32 DWORD (合計 128 バイト) です。

  • !dd 拡張子は DWORD 値を表示します。 既定の長さは 32 DWORD (合計 128 バイト) です。

  • !dp 拡張機能には、ULONG_PTR値が表示されます。 これらは、命令サイズに応じて、32 ビットまたは 64 ビットのワードです。 デフォルトの長さは合計128バイトです。

  • !dq 拡張機能には、ULONG64_PTR値が表示されます。 これらは 32 ビットワードです。 デフォルトの長さは合計128バイトです。

  • !du拡張子は UNICODE 文字を表示します。 既定の長さは 16 文字 (合計 32 バイト)、または NULL 文字が検出されるまでです。

  • !dw拡張子は WORD 値を表示します。 既定の長さは 64 DWORD (合計 128 バイト) です。

その結果、Sizeの値が同じで異なるこれらの拡張機能のうち 2 つを使用すると、表示されるメモリの合計量に差が生じる可能性が最も高くなります。 たとえば、!db L 32 コマンドを使用すると、32 バイト (16 進数のバイト) が表示されますが、コマンド !dd L 32 では 128 バイトが表示されます (DWORD 値として)。

キャッシュ属性フラグが必要な例を次に示します。

kd> !dc e9000
physical memory read at e9000 failed
If you know the caching attributes used for the memory,
try specifying [c], [uc] or [wc], as in !dd [c] <params>.
WARNING: Incorrect use of these flags will cause unpredictable
processor corruption. This may immediately (or at any time in
the future until reboot) result in a system hang, incorrect data
being displayed or other strange crashes and corruption.

kd> !dc [c] e9000
#   e9000 000ea002 000ea002 000ea002 000ea002 ................
#   e9010 000ea002 000ea002 000ea002 000ea002 ................