Affichage et modification de la mémoire dans WinDbg (classique)
Dans WinDbg, vous pouvez afficher et modifier la mémoire en entrant des commandes ou en utilisant une fenêtre Mémoire.
Fenêtre Commande du débogueur
Vous pouvez afficher la mémoire en entrant l’une des commandes Display Memory dans la fenêtre Commande du débogueur. Vous pouvez modifier la mémoire en entrant l’une des commandes Entrer des valeurs dans la fenêtre Commande du débogueur. Pour plus d’informations, consultez Accès à la mémoire par adresse virtuelle et Accès à la mémoire par adresse physique.
Ouvrir une fenêtre Mémoire
Pour ouvrir une fenêtre Mémoire, choisissez Mémoire dans le menu Affichage . (Vous pouvez également appuyer sur ALT+5 ou sélectionner le bouton Mémoire (
La capture d’écran suivante montre un exemple de fenêtre Mémoire.
Utilisation d’une fenêtre mémoire
La fenêtre Mémoire affiche les données dans plusieurs colonnes. La colonne située à gauche de la fenêtre affiche l’adresse de début de chaque ligne. Les colonnes restantes affichent les informations demandées, de gauche à droite. Si vous sélectionnez Octets dans le menu Format d’affichage , les caractères ASCII correspondant à ces octets s’affichent sur le côté droit de la fenêtre.
Note Par défaut, la fenêtre Mémoire affiche la mémoire virtuelle. Ce type de mémoire est le seul type de mémoire disponible en mode utilisateur. En mode noyau, vous pouvez utiliser la boîte de dialogue Options de mémoire pour afficher la mémoire physique et d’autres espaces de données. La boîte de dialogue Options de mémoire est décrite plus loin dans cette rubrique.
Dans la fenêtre Mémoire, vous pouvez effectuer les opérations suivantes :
Pour écrire en mémoire, sélectionnez à l’intérieur de la fenêtre Mémoire et tapez de nouvelles données. Vous pouvez modifier uniquement les données hexadécimales. Vous ne pouvez pas modifier directement les caractères ASCII et Unicode. Les modifications prennent effet dès que vous tapez de nouvelles informations.
Pour afficher d’autres sections de la mémoire, utilisez les boutons Précédent et Suivant de la barre d’outils de la fenêtre Mémoire, ou appuyez sur les touches PAGE HAUT ou PAGE BAS. Ces boutons et touches affichent les sections de mémoire qui précèdent immédiatement ou qui suivent. Si vous demandez une page non valide, un message d’erreur s’affiche.
Pour naviguer dans la fenêtre, utilisez les touches FLÈCHE DROITE, FLÈCHE GAUCHE, FLÈCHE HAUT et FLÈCHE BAS. Si vous utilisez ces clés pour quitter la page, une nouvelle page s’affiche. Avant d’utiliser ces clés, vous devez redimensionner la fenêtre Mémoire afin qu’elle ne dispose pas de barres de défilement. Ce dimensionnement vous permet de faire la distinction entre le bord réel de la page et le découpage de la fenêtre.
Pour modifier l’emplacement de la mémoire qui est en cours d’affichage, entrez une nouvelle adresse dans la zone d’adresse située en haut de la fenêtre Mémoire. Notez que la fenêtre Mémoire actualise son affichage lorsque vous entrez une adresse. Vous pouvez donc obtenir des messages d’erreur avant d’avoir terminé de taper l’adresse.
Note L’adresse que vous entrez dans la zone est interprétée dans le radix actuel. Si le radix actuel n’est pas 16, vous devez précéder une adresse hexadécimale de 0x. Pour modifier le radix par défaut, utilisez la commande n (Définir la base de nombre) dans la fenêtre Commande du débogueur. L’affichage dans la fenêtre Mémoire elle-même n’est pas affecté par le radix actuel.
Pour modifier le type de données utilisé par la fenêtre pour afficher la mémoire, utilisez le menu Format d’affichage de la barre d’outils de la fenêtre Mémoire. Les types de données pris en charge incluent les mots courts, les mots doubles et les quatre mots ; les entiers courts, longs et quad et les entiers non signés ; Nombres réels 10 octets, 16 octets, 32 bits et 64 bits ; Caractères ASCII ; Caractères Unicode ; et octets hexadécimaux. L’affichage des octets hexadécimaux comprend également des caractères ASCII.
La fenêtre Mémoire a une barre d’outils qui contient deux boutons, un menu et une zone, ainsi qu’un menu contextuel avec des commandes supplémentaires. Pour accéder au menu, sélectionnez longuement (ou cliquez avec le bouton droit) sur la barre de titre ou sélectionnez l’icône située dans le coin supérieur droit de la fenêtre de la barre d’outils. Alt+Maj+5 ferme la fenêtre Mémoire active.
(Barre d’outils uniquement) La zone adresse vous permet de spécifier une nouvelle adresse ou un nouveau décalage. La signification exacte de cette zone dépend du type de mémoire que vous affichez. Par exemple, si vous affichez la mémoire virtuelle, la zone vous permet de spécifier une nouvelle adresse virtuelle ou un nouveau décalage.
(Barre d’outils uniquement) Le format d’affichage vous permet de sélectionner un nouveau format d’affichage.
(Barre d’outils et menu) La page précédente (dans la barre d’outils) et la page Précédente (dans le menu contextuel) entraînent l’affichage de la section précédente de la mémoire.
(Barre d’outils et menu) Suivant (dans la barre d’outils) et Suivant (dans le menu contextuel) entraînent l’affichage de la section suivante de la mémoire.
(Menu uniquement) Barre d’outils active et désactive la barre d’outils.
(Menu uniquement) L’ajustement automatique des colonnes garantit que le nombre de colonnes affichées dans la fenêtre Mémoire correspond à la largeur de la fenêtre Mémoire.
(Menu uniquement) Dock ou Undock entraîne l’entrée ou la sortie de la fenêtre dans l’état d’ancrage.
(Menu uniquement) Passer à la nouvelle station d’accueil ferme la fenêtre Mémoire et l’ouvre dans une nouvelle station d’accueil.
(Menu uniquement) Définir comme cible tab-dock pour le type de fenêtre définit la fenêtre Mémoire sélectionnée comme cible tab-dock pour les autres fenêtres mémoire. Toutes les fenêtres mémoire ouvertes une fois que l’une d’elles a été choisie comme cible tab-dock sont automatiquement regroupées avec cette fenêtre dans une collection à onglets.
(Menu uniquement) Le fait de toujours flotter entraîne la non-ancrage de la fenêtre, même si elle est déplacée vers un emplacement d’ancrage.
(Menu uniquement) Le déplacement avec le cadre entraîne le déplacement de la fenêtre lorsque le cadre WinDbg est déplacé, même si la fenêtre n’est pas ancrée.
(Menu uniquement) Propriétés ouvre la boîte de dialogue Options de mémoire , qui est décrite dans la section suivante de cette rubrique.
(Menu uniquement) L’aide ouvre cette rubrique dans la documentation Outils de débogage pour Windows.
(Menu uniquement) Fermer ferme cette fenêtre.
Boîte de dialogue Options de mémoire
Lorsque vous sélectionnez Propriétés dans le menu contextuel, la boîte de dialogue Options de mémoire s’affiche.
En mode noyau, six types de mémoire sont disponibles sous forme d’onglets dans cette boîte de dialogue : Mémoire virtuelle, Mémoire physique, Données de bus, Données de contrôle, E/ S (informations de port d’E/S) et MSR (informations de registre spécifiques au modèle). Sélectionnez l’onglet qui correspond aux informations auxquelles vous souhaitez accéder.
En mode utilisateur, seul l’onglet Mémoire virtuelle est disponible.
Chaque onglet vous permet de spécifier la mémoire que vous souhaitez afficher :
Sous l’onglet Mémoire virtuelle , dans la zone Décalage , spécifiez l’adresse ou le décalage du début de la plage de mémoire que vous souhaitez afficher.
Sous l’onglet Mémoire physique , dans la zone Décalage , spécifiez l’adresse physique du début de la plage de mémoire que vous souhaitez afficher. La fenêtre Mémoire peut afficher uniquement la mémoire physique décrite et pouvant être mise en cache. Si vous souhaitez afficher la mémoire physique qui a d’autres attributs, utilisez la commande d* (Display Memory) ou l’extension !d\* .
Sous l’onglet Données du bus , dans le menu Type de données bus , spécifiez le type de données de bus. Ensuite, utilisez les zones Numéro de bus, Numéro d’emplacement et Décalage pour spécifier les données de bus que vous souhaitez afficher.
Sous l’onglet Données de contrôle , utilisez les zones de texte Processeur et Décalage pour spécifier les données de contrôle que vous souhaitez afficher.
Sous l’onglet E/S , dans le menu Type d’interface , spécifiez le type d’interface d’E/S. Utilisez les zones Numéro de bus, Espace d’adressage et Décalage pour spécifier les données à afficher.
Dans l’onglet MSR , dans la zone MSR , spécifiez le registre spécifique au modèle que vous souhaitez afficher.
Chaque onglet comprend également un menu Format d’affichage . Ce menu a le même effet que le menu Format d’affichage dans la fenêtre Mémoire.
Sélectionnez OK dans la boîte de dialogue Options de mémoire pour que vos modifications prennent effet.
Informations supplémentaires
Pour plus d’informations sur la manipulation de la mémoire et une description d’autres commandes liées à la mémoire, consultez Lecture et écriture de la mémoire.