Partager via


Accès à la mémoire par adresse virtuelle

Pour accéder aux adresses mémoire ou aux plages d’adresses, vous pouvez utiliser plusieurs commandes. Visual Studio et WinDbg fournissent des éléments d’interface utilisateur (ainsi que des commandes) que vous pouvez utiliser pour afficher et modifier la mémoire. Pour plus d’informations, consultez Affichage et modification de la mémoire dans WinDbg (classique).

Les commandes suivantes peuvent lire ou écrire de la mémoire dans différents formats. Ces formats incluent des octets hexadécimaux, des mots (mots, mots doubles et quatre mots), des entiers (nombres entiers courts, longs et quad et entiers non signés), des nombres à virgule flottante (10 octets, 16 octets, 32 octets et 64 octets réels) et des caractères ASCII.

Vous pouvez utiliser les commandes suivantes pour gérer des types de données plus spécialisés :

  • La commande dt (type d’affichage) recherche divers types de données et affiche les structures de données qui ont été créées par l’application en cours de débogage. Cette commande est très polyvalente et comporte de nombreuses variantes et options.

  • La commande ds, dS (Display String) affiche une structure de données STRING, ANSI_STRING ou UNICODE_STRING.

  • La commande dl (Afficher la liste liée) trace et affiche une liste liée.

  • La commande d*s (Afficher les mots et les symboles) recherche les mots doubles ou les quatre mots susceptibles de contenir des informations sur les symboles, puis affiche les données et les informations de symbole.

  • La commande d’extension !address affiche des informations sur les propriétés de la mémoire qui se trouve à une adresse spécifique.

Vous pouvez utiliser les commandes suivantes pour manipuler des plages de mémoire :

Dans la plupart des cas, ces commandes interprètent leurs paramètres dans le radix actuel. Par conséquent, vous devez ajouter 0x avant les adresses hexadécimales si le radix actuel n’est pas 16. Toutefois, la sortie d’affichage de ces commandes est généralement au format hexadécimal, quel que soit le radix actuel. (Pour plus d’informations sur la sortie, consultez les rubriques de commande individuelles.) La fenêtre Mémoire affiche les entiers et les nombres réels au format décimal et affiche d’autres formats au format hexadécimal.

Pour modifier le radix par défaut, utilisez la commande n (Définir la base du nombre). Pour convertir rapidement des nombres d’une base à une autre, utilisez le ? (Évaluer l’expression) ou la commande .formats (Afficher les formats de nombre).

Lorsque vous effectuez un débogage en mode utilisateur, la signification des adresses virtuelles est déterminée par le processus actuel. Lorsque vous effectuez un débogage en mode noyau, la signification des adresses virtuelles peut être contrôlée par le débogueur. Pour plus d’informations, consultez Contexte de processus.