Partager via


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

Les extensions !db, !dc, !dd, !dp, !dq, !du et !dw affichent des données à l’adresse physique spécifiée sur l’ordinateur cible.

Ces commandes d'extension ne doivent pas être confondues avec la commande d* (mémoire d'affichage) ou avec la commande d'extension !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] 

Paramètres

Cache
Il peut s’agir de l’une des valeurs suivantes. Les valeurs Cache doivent être entourées de crochets :

[c]
Provoque la lecture de cette extension à partir de la mémoire mise en cache.

[uc]
Provoque la lecture de cette extension à partir de la mémoire non mise en cache.

[wc]
Provoque la lecture de cette extension à partir de la mémoire combinée en écriture.

-m
Provoque la lecture de la mémoire à raison d’une unité à la fois. Par exemple, !db -m lit la mémoire en blocs de 8 bits et !dw -m lit la mémoire en blocs de 16 bits. Si votre matériel ne prend pas en charge les lectures de mémoire physique 32 bits, il peut être nécessaire d’utiliser l’option -m. Cette option n’affecte pas la longueur ou l’apparence de l’affichage. Elle affecte uniquement la façon dont la mémoire est accessible.

PhysicalAddress
Spécifie la première adresse physique à afficher, au format hexadécimal. Si cela est omis la première fois que cette commande est utilisée, l’adresse est par défaut égale à zéro. Si cela est omis lors d’une utilisation ultérieure, l’affichage commence à l’emplacement où le dernier affichage s’est terminé.

L **** Taille
Spécifie le nombre de blocs de mémoire à afficher. La taille d’un bloc est déterminée par l’extension précise utilisée.

Environnement

Mode

Mode noyau

DLL

Kext.dll

Informations supplémentaires

Pour écrire dans la mémoire physique, utilisez les extensions !e\*. Pour obtenir une vue d’ensemble de la manipulation de la mémoire et une description d’autres commandes liées à la mémoire, consultez Lecture et écriture de données dans la mémoire.

Notes

Ces extensions affichent chaque mémoire physique, mais leurs formats d’affichage et leur longueur par défaut diffèrent :

  • L’extension !db affiche des octets hexadécimaux et leurs équivalents en caractères ASCII. La longueur par défaut est 128 octets.

  • L’extension !dc affiche les valeurs DWORD et leurs équivalents en caractères ASCII. La longueur par défaut est 32 DWORD (128 octets totaux).

  • L’extension !dd affiche les valeurs DWORD. La longueur par défaut est 32 DWORD (128 octets totaux).

  • L’extension !dp affiche les valeurs ULONG_PTR. Il s’agit de mots 32 bits ou 64 bits, selon la taille de l’instruction. La longueur par défaut est de 128 octets totaux.

  • L’extension !dq affiche les valeurs ULONG64_PTR. Il s’agit de mots 32 bits. La longueur par défaut est de 128 octets totaux.

  • L’extension !du affiche les caractères UNICODE. La longueur par défaut est de 16 caractères (32 octets totaux) ou jusqu’à ce qu’un caractère NULL soit rencontré.

  • L’extension !dw affiche les valeurs WORD. La longueur par défaut est 64 DWORD (128 octets totaux).

Par conséquent, l’utilisation de deux de ces extensions distinctes avec la même valeur de Size entraîne probablement une différence dans la quantité totale de mémoire affichée. Par exemple, l’utilisation de la commande !db L 32 entraîne l’affichage de 32 octets (sous forme d’octets hexadécimaux), tandis que la commande !dd L 32 entraîne l’affichage de 128 octets (en tant que valeurs DWORD).

Voici un exemple dans lequel l’indicateur d’attribut de mise en cache est nécessaire :

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