Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un fichier de vidage est un instantané qui montre le processus qui s’exécutait et les modules chargés pour une application à un moment donné. Un vidage de mémoire avec des informations sur le tas inclut également un instantané de la mémoire de l'application à ce moment-là.
L’ouverture d’un fichier d’image mémoire avec un tas dans Visual Studio revient à s’arrêter sur un point d’arrêt dans une session de débogage. Bien que vous ne puissiez pas continuer l’exécution, vous pouvez examiner les piles, les threads et les valeurs de variable de l’application au moment de l’image mémoire.
Les vidages sont principalement utilisés pour déboguer des problèmes sur des machines auxquelles les développeurs n’ont pas accès. Vous pouvez utiliser un fichier de vidage provenant de la machine d'un client lorsque vous ne pouvez pas reproduire un plantage ou un programme non réactif sur votre propre ordinateur. Les testeurs créent également des images mémoire pour enregistrer les données d’incident ou de programme qui ne répond pas afin de les utiliser dans d’autres tests.
Le débogueur Visual Studio peut enregistrer des fichiers dump pour le code managé ou natif. Il peut déboguer les fichiers de vidage créés par Visual Studio ou par d’autres applications qui enregistrent des fichiers au format minidump .
Conditions requises et limitations :
- Pour déboguer des fichiers d’image mémoire sur des machines 64 bits, Visual Studio doit s’exécuter sur une machine 64 bits.
- Visual Studio peut déboguer des fichiers d’image mémoire d’applications managées sur le système d’exploitation Linux.
- Visual Studio peut déboguer les fichiers dump des applications natives à partir des périphériques ARM. Il peut également analyser les vidages de mémoire d'applications gérées provenant d'appareils ARM, mais uniquement dans le débogueur natif.
- Pour déboguer des fichiers d’image mémoire en mode noyau ou utiliser l’extension de débogage SOS.dll dans Visual Studio, téléchargez les outils de débogage pour Windows dans le Kit de pilotes Windows (WDK).
- Visual Studio ne peut pas déboguer les fichiers de vidage enregistrés dans l’ancien format de vidage en mode utilisateur complet . Notez qu’une image mémoire en mode utilisateur complet n’est pas la même chose qu’une image mémoire avec tas.
- Le débogage des fichiers dump de code optimisé peut faire l'objet de confusion. Par exemple, l’incorporation du compilateur des fonctions peut entraîner des piles d’appels inattendues et d’autres optimisations peuvent modifier la durée de vie des variables.
Fichiers dump, avec ou sans tas
Les fichiers d’image mémoire peuvent ou non contenir des informations de tas.
Les fichiers de vidage avec tas contiennent un instantané de la mémoire de l’application, y compris les valeurs des variables, au moment du vidage Visual Studio enregistre également les fichiers binaires des modules natifs chargés dans le fichier d’image mémoire avec un tas, ce qui peut faciliter le débogage. Visual Studio peut charger des symboles à partir d’un fichier d’image mémoire avec un tas, même s’il ne trouve pas de fichier binaire d’application.
Les fichiers de vidage sans tas sont beaucoup plus petits que les fichiers de vidage avec tas, mais le débogueur doit charger les binaires de l’application pour trouver les informations sur les symboles. Les fichiers binaires chargés doivent correspondre exactement à ceux exécutés pendant la création de l’image mémoire. Les fichiers d’image mémoire sans tas enregistrent les valeurs des variables de pile uniquement.
Créer un fichier de vidage
Pendant le débogage d’un processus dans Visual Studio, vous pouvez enregistrer un fichier de vidage lorsque le débogueur s’est arrêté à une exception ou un point d’arrêt.
Avec le débogage Just-In-Time activé, vous pouvez connecter le débogueur Visual Studio à un processus ayant échoué en dehors de Visual Studio, puis sauvegarder un fichier de vidage à partir du débogueur. Consultez Attacher le débogueur aux processus en cours d’exécution.
Pour enregistrer un fichier dump :
Lorsque vous êtes arrêté sur une erreur ou un point d’arrêt pendant le débogage, sélectionnez Debug>Enregistrer le dump sous.
Dans la boîte de dialogue Enregistrer l’image mémoire sous, sous Enregistrer comme type, sélectionnez Minidump ou Minidump avec tas (valeur par défaut).
Accédez à un chemin d’accès et sélectionnez un nom pour le fichier de vidage, puis sélectionnez Enregistrer.
Remarque
Vous pouvez créer des fichiers de vidage avec n’importe quel programme qui prend en charge le format minidump Windows. Par exemple, l’utilitaire en ligne de commande Procdump de Windows Sysinternals peut créer des fichiers de processus de vidage sur incident sur des déclencheurs ou à la demande. Consultez la configuration requise et les limitations relatives à l’utilisation d’autres outils pour créer des fichiers de vidage.
Ouvrir un fichier dump
Dans Visual Studio, sélectionnez Fichier>Ouvrir>Fichier.
Dans la boîte de dialogue Ouvrir un fichier , recherchez et sélectionnez le fichier de vidage. Il aura généralement une extension .dmp . Cliquez sur OK.
La fenêtre Résumé du fichier Minidump affiche des informations de résumé et de module pour le fichier de vidage et les actions que vous pouvez effectuer.
Sous Actions :
- Pour définir les emplacements de chargement de symboles, sélectionnez Définir les chemins d’accès aux symboles.
- Pour démarrer le débogage, sélectionnez Déboguer avec uniquement géré, Déboguer avec mixte, Déboguer avec uniquement natif.
- Pour analyser la mémoire managée, sélectionnez Déboguer la mémoire managée et consultez les rapports de type managé.
- Pour exécuter un analyseur de mémoire sur le vidage, sélectionnez Exécuter l’analyse de diagnostic et consultez Déboguer un vidage de mémoire managée avec les analyseurs de diagnostic .NET.
Rechercher des fichiers .exe, .pdb et sources
Pour utiliser des fonctionnalités de débogage complètes sur un fichier d’image mémoire, Visual Studio a besoin des éléments suivants :
- Le fichier.exe pour lequel le vidage a été créé et d’autres fichiers binaires (tels que des DLL) utilisés par le processus de vidage.
- Fichiers de symboles (.pdb) pour le .exe et d’autres fichiers binaires.
- Les fichiers .exe et .pdb qui correspondent exactement à la version et à la build des fichiers au moment de la création de l’image mémoire.
- Fichiers sources pour les modules appropriés. Vous pouvez utiliser le désassemblement des modules si vous ne trouvez pas les fichiers sources.
Si l’image mémoire a des données de tas, Visual Studio peut gérer les fichiers binaires manquants pour certains modules, mais il doit avoir les fichiers binaires de suffisamment de modules afin de pouvoir générer des piles d’appels valides.
Rechercher des chemins d’accès pour les fichiers .exe
Visual Studio recherche automatiquement ces emplacements pour .exe fichiers qui ne sont pas inclus dans le fichier de vidage :
- Le dossier contenant le fichier d’image mémoire.
- Le chemin du module spécifié par le fichier d’image mémoire, qui est le chemin du module sur la machine qui a collecté l’image mémoire.
- Les chemins d'accès aux symboles spécifiés dans Outils (ou Débogage) >Options>Débogage>Symboles. Vous pouvez également ouvrir la page Symboles à partir du panneau Actions de la fenêtre Résumé du fichier dump. Dans cette page, vous pouvez ajouter d’autres emplacements à rechercher.
Utiliser les pages No Binary, No Symbols ou No Source Found
Si Visual Studio ne trouve pas les fichiers dont il a besoin pour déboguer un module dans le fichier de vidage, il affiche une page No Binary Found, No Symbols Found ou No Source Found. Ces pages fournissent des informations détaillées sur la cause du problème et fournissent des liens d’action qui peuvent vous aider à localiser les fichiers. Consultez Spécifier les fichiers de symbole (.pdb) et les fichiers sources.