Utiliser les fenêtres mémoire dans le débogueur Visual Studio (C#, C++, Visual Basic, F #)Use the Memory windows in the Visual Studio debugger (C#, C++, Visual Basic, F#)

Pendant le débogage, la fenêtre mémoire affiche l’espace mémoire utilisé par votre application.During debugging, the Memory window shows the memory space your app is using.

Les fenêtres du débogueur, telles que Espion, automatique, variables locales et la boîte de dialogue Espion express , affichent des variables qui sont stockées à des emplacements spécifiques en mémoire.Debugger windows like Watch, Autos, Locals, and the QuickWatch dialog show you variables, which are stored at specific locations in memory. La fenêtre mémoire vous montre l’image globale.The Memory window shows you the overall picture. La vue mémoire est pratique pour examiner de grands éléments de données (mémoires tampons ou chaînes volumineuses, par exemple) qui ne s’affichent pas correctement dans les autres fenêtres.The memory view is convenient for examining large pieces of data (buffers or large strings, for example) that don't display well in the other windows.

La fenêtre mémoire n’est pas limitée à l’affichage des données.The Memory window isn't limited to displaying data. Il affiche tout ce qui se trouve dans l’espace mémoire, y compris les données, le code et les bits aléatoires du garbage dans la mémoire non assignée.It displays everything in the memory space, including data, code, and random bits of garbage in unassigned memory.

La fenêtre mémoire n’est pas disponible pour le débogage de script ou SQL.The Memory window isn't available for script or SQL debugging. Ces langages ne reconnaissent pas le concept de mémoire.Those languages don't recognize the concept of memory.

Ouvrir une fenêtre mémoireOpen a Memory window

Comme les autres fenêtres du débogueur, les fenêtres de mémoire sont disponibles uniquement pendant une session de débogage.Like other debugger windows, the Memory windows are available only during a debugging session.

Important

Pour activer les fenêtres de mémoire , activez le débogage au niveau de l’adresse dans Outils > options (ou options de débogage > ) > débogage > général.To enable the Memory windows, Enable address-level debugging must be selected in Tools > Options (or Debug > Options) > Debugging > General.

Pour ouvrir une fenêtre MémoireTo open a Memory window

  1. Assurez-vous que l’option activer le débogage au niveau de l’adresse est sélectionnée dans Outils > options (ou options de débogage > ) > débogage > général.Make sure Enable address-level debugging is selected in Tools > Options (or Debug > Options) > Debugging > General.

  2. Démarrez le débogage en sélectionnant la flèche verte, en appuyant sur F5 ou en sélectionnant déboguer > Démarrer le débogage.Start debugging by selecting the green arrow, pressing F5, or selecting Debug > Start Debugging.

  3. Sous Déboguer la > > mémoire Windows, sélectionnez mémoire 1, mémoire 2, mémoire 3 ou mémoire 4.Under Debug > Windows > Memory, select Memory 1, Memory 2, Memory 3, or Memory 4. (Certaines éditions de Visual StudioVisual Studio offrent une seule fenêtre de mémoire .)(Some editions of Visual StudioVisual Studio offer only one Memory window.)

Se déplacer dans la fenêtre mémoireMove around in the Memory window

L’espace d’adressage d’un ordinateur est important et vous pouvez facilement perdre votre place en faisant défiler la fenêtre mémoire .The address space of a computer is large, and you can easily lose your place by scrolling in the Memory window.

Les adresses mémoire supérieures s'affichent au bas de la fenêtre.Higher memory addresses appear at the bottom of the window. Pour afficher une adresse plus élevée, faites défiler vers le haut.To view a higher address, scroll down. Pour afficher une adresse inférieure, faites défiler vers le haut.To view a lower address, scroll up.

Vous pouvez accéder instantanément à une adresse spécifiée dans la fenêtre mémoire à l’aide du glisser-déplacer, ou en entrant l’adresse dans le champ adresse .You can instantly go to a specified address in the Memory window by using drag-and-drop, or by entering the address in the Address field. Le champ adresse accepte les adresses alphanumériques et les expressions qui correspondent à des adresses, telles que e.User.NonroamableId .The Address field accepts alphanumeric addresses, and expressions that evaluate to addresses, such as e.User.NonroamableId.

Pour forcer la réévaluation immédiate d’une expression dans le champ d' adresse , sélectionnez l’icône de réévaluation de la flèche arrondie automatiquement .To force immediate re-evaluation of an expression in the Address field, select the rounded-arrow Reevaluate Automatically icon.

Par défaut, la fenêtre mémoire traite les expressions d' adresse en tant qu’expressions dynamiques, qui sont réévaluées au fur et à mesure de l’exécution de l’application.By default, the Memory window treats Address expressions as live expressions, which are re-evaluated as the app runs. Les expressions dynamiques peuvent être utiles, par exemple, pour afficher la mémoire affectée par une variable pointeur.Live expressions can be useful, for example, to view the memory that is touched by a pointer variable.

Pour utiliser le glisser-déplacer pour déplacer vers un emplacement de mémoire :To use drag and drop to move to a memory location:

  1. Dans une fenêtre du débogueur, sélectionnez une adresse mémoire ou une variable pointeur qui contient une adresse mémoire.In any debugger window, select a memory address, or a pointer variable that contains a memory address.

  2. Glissez-déposez l’adresse ou le pointeur dans la fenêtre mémoire .Drag and drop the address or pointer in the Memory window. Cette adresse apparaît alors dans le champ adresse , et la fenêtre mémoire s’ajuste pour afficher cette adresse en haut.That address then appears in the Address field, and the Memory window adjusts to display that address at the top.

Pour passer à un emplacement de mémoire, entrez-le dans le champ adresse :To move to a memory location by entering it in the Address field:

  • Tapez ou collez l’adresse ou l’expression dans le champ adresse et appuyez sur entrée, ou choisissez-la dans la liste déroulante du champ adresse .Type or paste the address or expression in the Address field and press Enter, or choose it from the dropdown in the Address field. La fenêtre mémoire s’ajuste pour afficher cette adresse en haut.The Memory window adjusts to display that address at the top.

Personnaliser la fenêtre mémoireCustomize the Memory window

Par défaut, le contenu de la mémoire apparaît sous la forme d’entiers de 1 octet au format hexadécimal, et la largeur de la fenêtre détermine le nombre de colonnes affichées.By default, memory contents appear as 1-byte integers in hexadecimal format, and the window width determines the number of columns shown. Vous pouvez personnaliser la façon dont la fenêtre Mémoire affiche le contenu de la mémoire.You can customize the way the Memory window shows memory contents.

Pour modifier le format du contenu de la mémoire :To change the format of the memory contents:

  • Cliquez avec le bouton droit dans la fenêtre mémoire , puis choisissez les formats souhaités dans le menu contextuel.Right-click in the Memory window, and choose the formats that you want from the context menu.

Pour modifier le nombre de colonnes dans la fenêtre mémoire :To change the number of columns in the Memory window:

  • Sélectionnez la flèche déroulante en regard du champ colonnes , sélectionnez le nombre de colonnes à afficher ou sélectionnez auto pour un ajustement automatique en fonction de la largeur de la fenêtre.Select the drop down arrow next to the Columns field, and select the number of columns to display, or select Auto for automatic adjustment based on window width.

Si vous ne souhaitez pas que le contenu de la fenêtre de mémoire change au fur et à mesure de l’exécution de votre application, vous pouvez désactiver l’évaluation de l’expression dynamique.If you do not want the contents of the Memory window to change as your app runs, you can turn off live expression evaluation.

Pour activer/désactiver l’évaluation dynamique :To toggle live evaluation:

  • Cliquez avec le bouton droit dans la fenêtre mémoire , puis sélectionnez réévaluer automatiquement dans le menu contextuel.Right-click in the Memory window, and select Reevaluate Automatically in the context menu.

    Notes

    L’évaluation de l’expression dynamique est une bascule et est activée par défaut. par conséquent, la sélection de réévaluer automatiquement la désactive.Live expression evaluation is a toggle, and is on by default, so selecting Reevaluate Automatically turns it off. Si vous sélectionnez réévaluer automatiquement , la réactiver.Selecting Reevaluate Automatically again turns it back on.

Vous pouvez masquer ou afficher la barre d’outils en haut de la fenêtre Mémoire.You can hide or display the toolbar at the top of the Memory window. Vous n’avez pas accès au champ adresse ou à d’autres outils lorsque la barre d’outils est masquée.You will not have access to the Address field or other tools when the toolbar is hidden.

Pour activer/désactiver l’affichage de la barre d’outils :To toggle the toolbar display:

  • Cliquez avec le bouton droit dans la fenêtre mémoire , puis sélectionnez afficher la barre d’outils dans le menu contextuel.Right-click in the Memory window, and select Show Toolbar in the context menu. La barre d'outils disparaît ou apparaît, selon son état précédent.The toolbar appears or disappears, depending on its previous state.

Suivre un pointeur dans la mémoireFollow a pointer through memory

Dans les applications en code natif, vous pouvez utiliser des noms de registres comme expressions dynamiques.In native code apps, you can use register names as live expressions. Par exemple, vous pouvez utiliser le pointeur de pile pour suivre la pile.For example, you can use the stack pointer to follow the stack.

Pour suivre un pointeur dans la mémoire :To follow a pointer through memory:

  1. Dans le champ adresse de la fenêtre mémoire , entrez une expression de pointeur qui se trouve dans l’étendue actuelle.In the Memory window Address field, enter a pointer expression that is in the current scope. Vous devrez la déréférencer en fonction du langage.Depending on the language, you might have to dereference it.

  2. Appuyez sur Entrée.Press Enter.

    Lorsque vous utilisez une commande de débogage telle que l' étape, l’adresse mémoire affichée dans le champ adresse et en haut de la fenêtre mémoire change automatiquement à mesure que le pointeur change.When you use a debug command such as Step, the memory address displayed in the Address field and at the top of the Memory window automatically changes as the pointer changes.

Voir aussiSee also