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

Le estensioni !db, !dc, !dd, !dp, !dq, !du e !dw visualizzano i dati nell'indirizzo fisico specificato nel computer di destinazione.

Questi comandi di estensione non devono essere confusi con il comando d* (Display Memory) o con il comando di estensione !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] 

Parametri

Memorizzazione nella cache
Può essere uno dei valori seguenti. Il valore caching deve essere racchiuso tra parentesi quadre:

[c]
Fa sì che questa estensione legga dalla memoria memorizzata nella cache.

[uc]
Fa sì che questa estensione legga dalla memoria non memorizzata nella cache.

[wc]
Fa sì che questa estensione legga dalla memoria combinata in scrittura.

-m
Fa sì che la memoria venga letta un'unità alla volta. Ad esempio, !db -m legge la memoria in blocchi a 8 bit e !dw -m legge la memoria in blocchi a 16 bit. Se l'hardware non supporta le letture di memoria fisica a 32 bit, potrebbe essere necessario usare l'opzione -m . Questa opzione non influisce sulla lunghezza o sull'aspetto dello schermo, ma influisce solo sulla modalità di accesso alla memoria.

PhysicalAddress
Specifica il primo indirizzo fisico da visualizzare, in formato esadecimale. Se questo viene omesso la prima volta che viene usato questo comando, l'indirizzo predefinito è zero. Se questo viene omesso in un uso successivo, la visualizzazione inizierà dove è terminata l'ultima visualizzazione.

L **** Grandezza
Specifica il numero di blocchi di memoria da visualizzare. Le dimensioni di un blocco sono determinate dall'estensione precisa usata.

Ambiente

Modalità

Modalità kernel

DLL

Kext.dll

Informazioni aggiuntive

Per scrivere nella memoria fisica, usare le estensioni !e\*. Per una panoramica della manipolazione della memoria e di una descrizione di altri comandi correlati alla memoria, vedere Lettura e scrittura di memoria.

Osservazioni:

Queste estensioni visualizzano ogni memoria fisica, ma i relativi formati di visualizzazione e lunghezza predefinita differiscono:

  • L'estensione !db visualizza i byte esadecimali e i relativi equivalenti di caratteri ASCII. La lunghezza predefinita è di 128 byte.

  • L'estensione !dc visualizza i valori DWORD e i relativi equivalenti di caratteri ASCII. La lunghezza predefinita è 32 DWORD (128 byte totali).

  • L'estensione !dd visualizza i valori DWORD. La lunghezza predefinita è 32 DWORD (128 byte totali).

  • L'estensione !dp visualizza ULONG_PTR valori. Si tratta di parole a 32 bit o a 64 bit, a seconda delle dimensioni dell'istruzione. La lunghezza predefinita è di 128 byte totali.

  • L'estensione !dq visualizza ULONG64_PTR valori. Queste sono parole a 32 bit. La lunghezza predefinita è di 128 byte totali.

  • L'estensione !du visualizza i caratteri UNICODE. La lunghezza predefinita è di 16 caratteri (32 byte totali) o fino a quando non viene rilevato un carattere NULL.

  • L'estensione !dw visualizza i valori di WORD. La lunghezza predefinita è 64 DWORD (128 byte totali).

Di conseguenza, l'uso di due di queste estensioni distinte con lo stesso valore di Size comporterà probabilmente una differenza nella quantità totale di memoria visualizzata. Ad esempio, l'uso del comando !db L 32 comporta la visualizzazione di 32 byte (come byte esadecimali), mentre il comando !dd L 32 comporta la visualizzazione di 128 byte (come valori DWORD).

Di seguito è riportato un esempio in cui è necessario il flag di attributo di memorizzazione nella cache:

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 ................