!db, !dc, !dd, !dp, !dq, !du, !dw
Die Erweiterungen !db, !dc, !dd, !dp, !dq, !du und !dw zeigen Daten an der angegebenen physikalischen Adresse auf dem Zielcomputer an.
Diese Erweiterungsbefehle sind nicht zu verwechseln mit dem Befehl d* (Display Memory) oder mit dem Erweiterungsbefehl !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]
Parameter
Caching
Kann einer der folgenden Werte sein. Der Wert Caching muss von eckigen Klammern umgeben sein:
[c]
Veranlasst diese Erweiterung, aus dem Zwischenspeicher zu lesen.
[uc]
Bewirkt, dass diese Erweiterung aus dem nicht zwischengespeicherten Speicher gelesen wird.
[wc]
Bewirkt, dass diese Erweiterung aus dem kombinierten Schreib- und Lesespeicher gelesen wird.
-m
Bewirkt, dass der Speicher jeweils um eine Einheit gelesen wird. Zum Beispiel liest !db -m den Speicher in 8-Bit-Blöcken und !dw -m liest den Speicher in 16-Bit-Blöcken. Wenn Ihre Hardware keine 32-Bit-Lesevorgänge im physischen Speicher unterstützt, kann es notwendig sein, die Option -m zu verwenden. Diese Option wirkt sich nicht auf die Länge oder das Aussehen der Anzeige aus, sondern nur darauf, wie auf den Speicher zugegriffen wird.
PhysicalAddress
Gibt die erste anzuzeigende physikalische Adresse im hexadezimalen Format an. Wird dies bei der ersten Verwendung dieses Befehls weggelassen, wird die Adresse standardmäßig auf Null gesetzt. Wird dies bei einer späteren Verwendung weggelassen, beginnt die Anzeige dort, wo die letzte Anzeige endete.
L **** Größe
Gibt die Anzahl der anzuzeigenden Speicherchunks an. Die Größe eines Chunks wird durch die verwendete Erweiterung bestimmt.
Environment
Mode |
Kernelmodus |
DLL
Kext.dll
Zusätzliche Informationen
Um in den physischen Speicher zu schreiben, verwenden Sie die Erweiterungen !e\*. Einen Überblick über die Speichermanipulation und eine Beschreibung anderer speicherbezogener Befehle finden Sie unter Lesen und Schreiben von Speicher.
Hinweise
Diese Erweiterungen zeigen jeweils den physischen Speicher an, aber ihre Anzeigeformate und Standardlängen unterscheiden sich:
Die Erweiterung !db zeigt hexadezimale Bytes und ihre ASCII-Zeichenäquivalente an. Die Standardlänge beträgt 128 Bytes.
Die Erweiterung !dc zeigt DWORD-Werte und ihre ASCII-Zeichenäquivalente an. Die Standardlänge beträgt 32 DWORDs (128 Gesamtbytes).
Die Erweiterung !dd zeigt DWORD-Werte an. Die Standardlänge beträgt 32 DWORDs (128 Gesamtbytes).
Die Erweiterung !dp zeigt ULONG_PTR-Werte an. Je nach Befehlsgröße handelt es sich um 32-Bit- oder 64-Bit-Wörter. Die Standardlänge beträgt 128 Gesamtbytes.
Die Erweiterung !dq zeigt ULONG64_PTR-Werte an. Dies sind 32-Bit-Wörter. Die Standardlänge beträgt 128 Gesamtbytes.
Die Erweiterung !du zeigt UNICODE-Zeichen an. Die Standardlänge beträgt 16 Zeichen (32 Bytes insgesamt) oder bis ein NULL-Zeichen auftritt.
Die Erweiterung !dw zeigt WORD-Werte an. Die Standardlänge beträgt 64 DWORDs (128 Gesamtbytes).
Folglich wird die Verwendung von zwei unterschiedlichen Erweiterungen mit demselben Wert von Size höchstwahrscheinlich zu einem Unterschied in der angezeigten Gesamtmenge an Speicher führen. Wenn Sie beispielsweise den Befehl !db L 32 verwenden, werden 32 Bytes angezeigt (als hexadezimale Bytes), während der Befehl !dd L 32 zur Anzeige von 128 Bytes führt (als DWORD-Werte).
Hier ist ein Beispiel, in dem das Caching-Attribut-Flag benötigt wird:
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 ................