Compartir a través de


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

Las extensiones !db, !dc, !dd, !dp, !dq, !du y !dw muestran datos en la dirección física especificada en el equipo de destino.

Estos comandos de extensión no deben confundirse con el comando d* (Display Memory) ni con el comando de la extensión !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] 

Parámetros

Caché
Puede ser cualquiera de los siguientes valores. El valor Caching debe estar entre corchetes:

[c]
Hace que esta extensión lea de la memoria almacenada en caché.

[uc]
Hace que esta extensión lea de la memoria no almacenada en caché.

[wc]
Hace que esta extensión lea de la memoria combinada de escritura.

-m
Hace que la memoria se lea unidad por unidad. Por ejemplo, !db -m lee la memoria en fragmentos de 8 bits y !dw -m lee la memoria en fragmentos de 16 bits. Si el hardware no admite lecturas de memoria física de 32 bits, puede que sea necesario usar la opción -m. Esta opción no afecta a la longitud o apariencia de la visualización; solo afecta a cómo se accede a la memoria.

PhysicalAddress
Especifica la primera dirección física que se va a mostrar, en formato hexadecimal. Si se omite la primera vez que se usa este comando, la dirección tiene como valor predeterminado cero. Si se omite en un uso posterior, la visualización comenzará donde finalizó la última.

L **** Tamaño
Especifica el número de fragmentos de memoria que se van a mostrar. El tamaño de un fragmento viene determinado por la extensión precisa utilizada.

Entorno

Modo

Modo kernel

Archivo DLL

Kext.dll

Información adicional

Para escribir en memoria física, use las extensiones !e\*. Para obtener información general sobre la manipulación de memoria y una descripción de otros comandos relacionados con la memoria, consulte Lectura y escritura de memoria.

Comentarios

Estas extensiones muestran memoria física, pero sus formatos de presentación y longitud predeterminada difieren:

  • La extensión !db muestra bytes hexadecimales y sus equivalentes en caracteres ASCII. La longitud predeterminada es de 128 bytes.

  • La extensión !dc muestra los valores DWORD y sus equivalentes en caracteres ASCII. La longitud predeterminada es 32 DWORDs (128 bytes totales).

  • La extensión !dd muestra valores DWORD. La longitud predeterminada es 32 DWORDs (128 bytes totales).

  • La extensión !dp muestra valores ULONG_PTR. Son palabras de 32 o 64 bits, según el tamaño de la instrucción. La longitud predeterminada es de 128 bytes en total.

  • La extensión !dq muestra valores ULONG64_PTR. Son palabras de 32 bits. La longitud predeterminada es de 128 bytes en total.

  • La extensión !du muestra caracteres UNICODE. La longitud predeterminada es de 16 caracteres (32 bytes totales) o hasta que se encuentra un carácter NULL.

  • La extensión !dw muestra valores WORD. La longitud predeterminada es 64 DWORDs (128 bytes totales).

Por lo tanto, el uso de dos de estas extensiones que son distintas con el mismo valor de Size probablemente dará lugar a una diferencia en la cantidad total de memoria mostrada. Por ejemplo, si se usa el comando !db L 32, se muestran 32 bytes (como bytes hexadecimales), mientras que el comando !dd L 32 da como resultado que se muestren 128 bytes (como valores DWORD).

Este es un ejemplo en el que se necesita la marca de atributo de almacenamiento en caché:

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