Cette documentation répond aux questions fréquentes sur les fonctionnalités de débogage dans Visual Studio. Elle associe également les tâches ou les problèmes de débogage à la fonctionnalité appropriée du débogueur Visual Studio. Ces liens abordent des tâches ou des problèmes comme le débogage d’une application multithread, la navigation dans le code, la fuite de mémoire, l’inspection des variables, l’utilisation des points d’arrêt, le débogage de code externe, etc. Pour obtenir un aperçu des fonctionnalités du débogueur, consultez Présentation du débogueur à la place.
Points d’arrêt
Comment mettre en pause l’exécution du code pour inspecter une ligne de code susceptible de contenir un bogue ?
Définir un point d'arrêt. Pour plus d’informations, consultez Utilisation des points d’arrêt.
Ma variable a-t-elle une valeur inattendue ? Ou dois-je inspecter mon application quand elle atteint un état spécifique ?
Essayez un point d’arrêt conditionnel pour déterminer où et quand un point d’arrêt est activé à l’aide d’une logique conditionnelle. Cliquez avec le bouton droit sur un point d’arrêt pour ajouter des conditions. Définissez la condition sur true quand la variable est égale à la valeur inattendue.
Pour plus d’informations, consultez Conditions de point d’arrêt.
Comment journaliser des informations dans la fenêtre Sortie sous des conditions configurables, sans modifier ni arrêter mon code ?
Les points de trace vous permettent de consigner des informations dans la fenêtre Sortie sous des conditions configurables, sans modifier ni arrêter le code.
Comment savoir quand la valeur de ma variable change ?
Pour C++, définissez un point d’arrêt des données.
Pour les applications qui utilisent .NET Core 3, vous pouvez également définir un point d’arrêt des données.
Pour C# et F# uniquement, vous pouvez également suivre un ID d’objet avec un point d’arrêt conditionnel.
Comment arrêter l’exécution uniquement si un autre point d’arrêt est atteint ?
Définissez un point d’arrêt dépendant qui arrête l’exécution uniquement si un autre point d’arrêt est atteint en premier. Pour plus d’informations, consultez Point d’arrêt dépendant.
Puis-je atteindre un point d’arrêt une seule fois ?
Définissez un point d’arrêt temporaire qui permet d’interrompre le code une seule fois. Pour plus d’informations, consultez Point d’arrêt temporaire.
Puis-je mettre en pause le code à l’intérieur d’une boucle à une itération donnée ?
Définissez un point d’arrêt dépendant qui arrête l’exécution uniquement si un autre point d’arrêt est atteint en premier. Pour plus d’informations, consultez Nombre d’accès.
Comment mettre en pause le code au début d’une fonction quand je connais le nom de la fonction, mais pas son emplacement ?
Vous pouvez effectuer cette opération avec un point d’arrêt de fonction. Pour plus d’informations, consultez Définir des points d’arrêt de fonction.
Comment mettre en pause le code au début de plusieurs fonctions du même nom ?
Quand plusieurs fonctions portent le même nom (fonctions surchargées ou fonctions se trouvant dans différents projets), vous pouvez utiliser un point d’arrêt de fonction.
Gérer et suivre mes points d’arrêt
Utilisez la fenêtre Points d’arrêt. Pour plus d’informations, consultez Gérer les points d’arrêt.
Suspendre le code et déboguer quand une exception prise en charge ou non prise en charge spécifique est levée
L’Assistance sur les exceptions indique où une erreur s’est produite. Cependant, si vous souhaitez suspendre et déboguer l’erreur spécifique, vous pouvez indiquer au débogueur de s’arrêter quand une exception est levée.
Définir un point d’arrêt à partir de la pile des appels
Si vous souhaitez suspendre et déboguer du code lors de l’examen du flux d’exécution ou des fonctions dans les fenêtres Pile des appels, consultez Définir un point d’arrêt dans la fenêtre Pile des appels.
Interrompre le code à une instruction d’assembly spécifique
Pour ce faire, définissez un point d’arrêt à partir de la fenêtre Désassemblage.
Naviguer dans le code
Où apprendre les commandes pour exécuter pas à pas mon code pendant le débogage ?
Pour plus d’informations, consultez Naviguer dans le code avec le débogueur.
Puis-je exécuter le code sur une ligne particulière en ignorant les points d’arrêt sans les supprimer ni les désactiver ?
Vous pouvez utiliser « Forcer l’exécution au curseur » pour ces scénarios. Vous pouvez conserver vos points d’arrêt et le débogueur les ignore jusqu’à ce qu’il atteigne la ligne de code avec le curseur. Il ignore également les conditions d’arrêt des exceptions de première chance susceptibles de se produire. Pour plus d’informations, consultez Naviguer dans le code avec le débogueur.
Si ma ligne de code a des appels à différentes méthodes, puis-je effectuer un pas à pas détaillé dans une méthode spécifique ?
Cliquez avec le bouton droit sur la ligne de code pour afficher un menu contextuel permettant de sélectionner « Effectuer un pas à pas détaillé spécifique ». La liste s’affiche de toutes les méthodes où vous pouvez effectuer un pas à pas détaillé. Vous pouvez désormais sélectionner la méthode de votre choix.
Inspecter et visualiser les données
Comment vérifier la valeur des variables pendant l’exécution de mon application ?
Placez le curseur sur les variables à l’aide de conseils de données ou inspectez les variables dans les fenêtres Variables locales et Automatique.
Comment observer le changement de valeur d’une variable spécifique ?
Définissez un espion sur la variable. Pour plus d’informations, consultez Définir un espion dans des variables.
Comment voir les chaînes qui sont trop longues pour la fenêtre du débogueur ?
Le visualiseur de chaînes affiche les chaînes trop longues pour une fenêtre de bulle d’informations ou de débogueur. Il peut également vous aider à identifier les chaînes malformées.
Le visualiseur de chaînes intégré dans Visual Studio inclut les options Texte, XML, HTML et JSON.Comment voir les grands objets de collection ?
Le visualiseur DataSet permet d’afficher le contenu d’un DataSet, DataTable, DataView ou DataViewManager. Le visualiseur IEnumerable permet d’afficher des objets comme des Tableaux, Listes, etc. Pour plus d’informations, consultez Visualiseurs tabulaires.
Déboguer une application qui est déjà en cours d’exécution
Comment déboguer les applications en cours d’exécution sur des ordinateurs locaux ou distants, déboguer plusieurs processus simultanément, déboguer des applications qui n’ont pas été créées dans Visual Studio ou déboguer une application que je n’ai pas démarrée à partir de Visual Studio ?
Consultez Attacher à un processus en cours d’exécution.
Comment attacher le débogueur à la même application à plusieurs reprises ?
Vous pouvez utiliser Rattacher au processus (Maj+Alt+P) pour commencer facilement à déboguer votre application d’un seul clic, sans avoir à parcourir la boîte de dialogue Attacher au processus à chaque fois. Consultez Rattacher à un processus
Déboguer les applications multithread
Comment déboguer une application multithread ? Ou mon application est-elle dans un état suspendu ?
Pour plus d’informations sur la résolution des problèmes, consultez la Fenêtre Piles parallèles
Comment voir l’ordre dans lequel les fonctions sont appelées ?
Analyser la mémoire
Mon application a-t-elle une fuite de mémoire ?
Prenez une capture instantanée et ouvrez-la avec l’outil mémoire pour résoudre les problèmes plus en détails. Consultez Mesurer l’utilisation de la mémoire.
Comment analyser l’utilisation de la mémoire pour les applications natives ou managées ?
Utilisez l’outil de mémoire Visual Studio via le débogage dynamique, les images mémoire avec tas ou le profileur de performances.
Consultez Choisir un outil d’analyse de la mémoire.Comment analyser l’utilisation de la mémoire pour les applications natives ou managées sans attacher de débogueur ? Utilisez le profileur de performances Visual Studio avec l’outil d’utilisation de la mémoire activé.
Consultez Analyser l’utilisation de la mémoire.Comment comparer l’utilisation de mémoire entre deux points dans le temps ?
Comparez les captures instantanées dans l’outil mémoire ou comparez deux images mémoire avec tas à l’aide de la fonctionnalité diff. Consultez Analyser l’utilisation de la mémoire.
Débogage de code externe
Comment voir uniquement le code utilisateur pendant le débogage ?
Uniquement mon code est une fonctionnalité de débogage de Visual Studio qui exécute automatiquement un pas à pas principal sur les appels au système, au framework et au reste du code non-utilisateur. Dans la fenêtre Pile des appels, Uniquement mon code réduit ces appels dans des frames [External Code]. Consultez Déboguer uniquement le code utilisateur avec Uniquement mon code
Comment voir ou déboguer les instructions d’assembly brutes que mon programme exécute ?
Utilisez la fenêtre Désassemblage à partir de Déboguer > Fenêtres > Désassemblage. Vous pouvez passer une instruction à la fois et même définir des points d’arrêt sur des instructions d’assembly individuelles.
Comment voir le code source des bibliothèques .NET ?
Activez les serveurs de symboles Microsoft à partir de Déboguer > Options > Symboles afin de télécharger les symboles et la source pour les bibliothèques .NET. Consultez Spécifier un symbole
Comment charger des fichiers PDB à partir d’un emplacement ou d’un serveur spécifique ou partagé ?
Configurez vos serveurs de symboles à partir de Déboguer > Options > Symboles. Consultez Spécifier un symbole
Comment ne jamais charger un fichier PDB spécifique ? Ou comment toujours en charger un ?
Configurez vos listes Inclure et Exclure à partir de Déboguer > Options > Symboles.
Consultez Spécifier un symbole
Configurer le débogage
Comment configurer les paramètres du débogueur ?
Pour configurer les options du débogueur et les paramètres du projet du débogueur, consultez Paramètres et préparation du débogueur.
Comment personnaliser les informations affichées dans le débogueur ?
Vous pouvez afficher des informations autres que le type d’objet en tant que valeur dans différentes fenêtres de débogueur. Pour le code C#, Visual Basic, F# et C++/CLI, utilisez l’attribut DebuggerDisplay. Pour des options plus avancées, vous pouvez également personnaliser l’interface utilisateur en créant un visualiseur personnalisé. Pour C++ natif, utilisez l’infrastructure NatVis.
Tâches supplémentaires
Comment enregistrer une image mémoire ?
Quand le débogueur s’arrête sur une erreur ou un point d’arrêt pendant le débogage, sélectionnez Déboguer > Enregistrer l’image mémoire sous. Consultez Fichiers d’image mémoire
Comment analyser un fichier d’image mémoire ?
Ouvrez l’image mémoire en choisissant Fichier > Ouvrir dans Visual Studio. Pour démarrer le débogage, sélectionnez Déboguer avec Managé uniquement, Déboguer avec Natif uniquement, Déboguer avec Mixte ou Déboguer avec Mémoire managée. Consultez Fichiers d’image mémoire
Comment modifier le code pendant une session de débogage ?
Utilisez Modifier et continuer. Pour XAML, utilisez Rechargement à chaud XAML.
Comment déboguer sur des machines distantes ?
Consultez Débogage à distance.
Comment résoudre les problèmes de performances ?
Consulter Présentation des outils de profilage
Comment corriger une exception ?
Consultez Corriger une exception.