Partager via


Fichiers de vidage en mode utilisateur

Dans cet article, obtenez une vue d’ensemble des fichiers de vidage en mode utilisateur et comment les utiliser pour aider à résoudre les bogues et les plantages.

Pour plus d’informations sur l’analyse d’un fichier de vidage, consultez Analyser un fichier de vidage en mode utilisateur.

Types de fichiers de vidage en mode utilisateur

Plusieurs types de fichiers de vidage sur incident en mode utilisateur sont disponibles. Les différents types de fichiers de vidage sont classés en deux catégories :

Vous pouvez obtenir une quantité importante d’informations en analysant un fichier dump. Toutefois, aucun fichier de vidage ne peut fournir la quantité d’informations que vous obtenez à partir du débogage du plantage à l’aide d’un débogueur.

Vidages en mode utilisateur complets

Un vidage en mode utilisateur complet est le fichier de vidage en mode utilisateur de base. Un fichier de vidage en mode utilisateur complet comprend les éléments suivants :

  • Espace mémoire entier d’un processus.
  • Image exécutable du programme.
  • Table de handles.
  • D’autres informations qui aident le débogueur à reconstruire la mémoire qui était en cours d’utilisation lorsque le vidage s’est produit.

Vous pouvez réduire un fichier de vidage mode utilisateur entier en minidump. Pour réduire un fichier de vidage en mode utilisateur complet, commencez par charger le fichier de vidage dans le débogueur. Ensuite, utilisez la commande .dump (Créer un fichier de vidage) pour enregistrer un nouveau fichier de vidage au format minidump.

Malgré leurs noms, le plus grand fichier minidump contient plus d’informations que le fichier de vidage en mode utilisateur complet. Par exemple, les .dump /mf.dump /ma commandes créent des fichiers plus volumineux et plus complets que la .dump /f commande.

En mode utilisateur, .dump /m[MiniOptions] est souvent le meilleur choix. Les fichiers de vidage que vous créez à l’aide de ce commutateur peuvent varier en taille de très petite à très grande taille. En spécifiant le commutateur MiniOptions approprié, vous pouvez contrôler exactement quelles informations sont incluses.

Minidumps

La taille et le contenu d’un fichier minidump varient selon le programme en cours de vidage, l’application effectuant le dumping et les options sélectionnées. Parfois, un fichier minidump est modérément volumineux et inclut la mémoire complète et la table de handle. D’autres fois, le fichier minidump est beaucoup plus petit. Par exemple, un fichier minidump peut contenir uniquement des informations sur un thread unique, ou il peut contenir uniquement des informations sur les modules référencés dans la pile.

Le terme minidump est trompeur, car les fichiers minidump les plus volumineux contiennent plus d’informations qu’un fichier de vidage en mode utilisateur complet. Par exemple, .dump /mf ou .dump /ma crée un fichier plus volumineux et plus complet que .dump /f. Pour cette raison, nous vous recommandons d’utiliser .dump /m[MiniOptions] au lieu de .dump /f, pour créer tous les fichiers de vidage en mode utilisateur.

Lorsque vous créez un fichier minidump à l’aide du débogueur, vous pouvez choisir les informations à inclure. La .dump /m commande inclut des informations de base sur les modules chargés qui composent le processus cible, les informations de thread et les informations de pile. Vous pouvez modifier la commande de base à l’aide de l’une des options de commutateur suivantes :

.dump option Effet sur le fichier de vidage
/ma Crée un minidump avec tous les ajouts facultatifs. L’option /ma est équivalente à /mfFhut. Il ajoute des données complètes sur la mémoire, des données de gestion, des informations sur les modules déchargés, des informations de base sur la mémoire et des informations sur le temps de fil d'exécution au minidump.
/mf Ajoute des données de mémoire complète au minidump. Toutes les pages validées accessibles appartenant à l’application cible sont incluses.
/mF Ajoute toutes les informations de mémoire de base au minidump. Ce commutateur ajoute un flux au minidump qui contient toutes les informations de mémoire de base, pas seulement les informations sur la mémoire valide. Le débogueur utilise les informations pour reconstruire la disposition complète de la mémoire virtuelle du processus lorsque le minidump est débogué.
/mh Ajoute des données sur les handles associés à l’application cible au minidump.
/mu Ajoute des informations concernant les modules déchargés au minidump. Cette option est disponible uniquement dans Windows Server 2003 et versions ultérieures de Windows.
/mt Ajoute des informations de thread supplémentaires au minidump. Les informations de thread incluent les temps d'exécution des threads, que vous pouvez afficher à l’aide de .ttime (Affichage des temps de thread) lorsque vous déboguez le minidump.
/mi Ajoute de la mémoire secondaire au minidump. La mémoire secondaire est toute mémoire référencée par un pointeur sur la pile ou le stock de sauvegarde, ainsi qu’une petite région entourant cette adresse.
/mp Ajoute des données de bloc d’environnement de processus et de bloc d’environnement de thread au minidump. Ces informations peuvent être utiles si vous avez besoin d’accéder aux informations système Windows concernant les processus et les threads de l’application.
/mw Ajoute toutes les pages privées en lecture-écriture validées au minidump.
/md Ajoute tous les segments de données en lecture-écriture dans l’image exécutable au minidump.
/mc Ajoute des sections de code dans des images.
/mr Supprime les portions du minidump concernant la pile et la mémoire de stockage qui ne sont pas nécessaires à la recréation de la trace de la pile. Les variables locales et d’autres valeurs de type de données sont également supprimées. Cette option ne réduit pas le minidump (les sections mémoire inutilisées sont zéro), mais il est utile si vous souhaitez protéger la confidentialité d’autres applications.
/mR Supprime les chemins complets des modules du minidump. Seuls les noms de modules sont inclus. Cette option est utile si vous souhaitez protéger la confidentialité de la structure d’annuaire de l’utilisateur.

Vous pouvez combiner ces options de commutateur. Par exemple, utilisez la commande .dump /mfiu pour créer un minidump modérément volumineux qui contient la mémoire déchargée et secondaire. Utilisez la commande .dump /mrR pour créer un minidump qui supprime certaines informations de l’utilisateur. Pour plus d’informations sur la syntaxe complète, consultez .dump (Créer un fichier de vidage).

Outils à utiliser pour créer un fichier de vidage

Vous pouvez utiliser plusieurs outils différents pour créer un fichier de vidage en mode utilisateur :

ProcDump

ProcDump est un utilitaire de ligne de commande que vous pouvez utiliser afin de surveiller une application lors de pics de CPU et générer des vidages sur incident pendant un pic. Un administrateur ou un développeur peut utiliser les fichiers de vidage de mémoire pour déterminer la cause du pic. ProcDump inclut également la surveillance des fenêtres bloquées (en utilisant la même définition d’un blocage de fenêtre que Windows et le Gestionnaire des tâches) et des exceptions non gérées. Vous pouvez utiliser ProcDump pour générer des vidages en fonction des valeurs des compteurs de performances système. ProcDump peut également servir d’utilitaire de vidage de processus général que vous pouvez incorporer dans d’autres scripts.

Pour plus d’informations sur la création d’un fichier de vidage en mode utilisateur à l’aide de l’utilitaire Sysinternals ProcDump, consultez ProcDump.

WinDbg et CDB

Le débogueur de console (CDB) et le débogueur Windows (WinDbg) sont des outils de débogage inclus dans le Kit de développement logiciel Windows et le Kit de pilotes Windows. Pour plus d’informations sur les options d’installation, consultez Télécharger et installer le débogueur Windows WinDbg.

Vous pouvez utiliser CDB ou WinDbg pour créer des fichiers de vidage en mode utilisateur de plusieurs façons :

  • Créez automatiquement un fichier de vidage.
  • Créez des fichiers de vidage lorsque vous déboguez.
  • Réduisez un fichier de vidage existant.

Pour plus d’informations sur les outils, consultez Prise en main du débogage Windows et Déboguer à l’aide de CDB.

Créer un fichier de vidage automatiquement

Lorsqu’une erreur d’application se produit, Windows peut répondre de plusieurs façons, en fonction des paramètres de débogage postmortem. Si ces paramètres indiquent à un outil de débogage de créer un fichier de vidage, un fichier de vidage mémoire en mode utilisateur est créé. Pour plus d’informations, consultez Activer le débogage postmortem.

Créer des fichiers dump lorsque vous déboguez

Lorsque CDB ou WinDbg débogue une application en mode utilisateur, vous pouvez également utiliser la commande .dump (Créer un fichier de vidage) pour créer un fichier de vidage.

Cette commande n’entraîne pas l’arrêt de l’application cible. En sélectionnant des options de commande spécifiques, vous pouvez créer un fichier minidump qui contient exactement la quantité d’informations souhaitées.

Réduire un fichier de vidage existant

Vous pouvez utiliser CDB ou WinDbg pour réduire la taille d’un fichier de vidage. Pour réduire un fichier de vidage, démarrez le débogage d’un fichier de vidage existant. Ensuite, utilisez la .dump commande pour créer un fichier de vidage d’une taille plus petite.

Débogage de voyage dans le temps

Une autre option permettant de déboguer des applications en mode utilisateur est le débogage de voyage dans le temps (TTD). TTD est un outil que vous pouvez utiliser pour enregistrer votre processus pendant son exécution. Vous pouvez relire l’enregistrement de la session du débogueur pour trouver le bogue. Vous pouvez facilement accéder à différentes parties de l’enregistrement pour comprendre les conditions qui ont conduit au bogue et comment résoudre le problème.

TTD présente des avantages significatifs par rapport aux fichiers d'incidents, qui souvent ne parviennent pas à capturer l’exécution du code ayant conduit à l’échec. La possibilité de se déplacer vers l’arrière dans l’exécution du code peut être utile pour déterminer la cause racine.

Pour plus d’informations, consultez la vue d’ensemble du débogage de voyage temporel.

Voir aussi