Options générales de débogage
Pour définir les options du débogueur Visual Studio, sélectionnez Outils>Options et, sous Débogage, cochez ou décochez les cases en regard des options générales. Vous pouvez restaurer tous les paramètres par défaut avec Outils>Importation et exportation de paramètres>Réinitialiser tous les paramètres. Pour réinitialiser un sous-ensemble de paramètres, enregistrez vos paramètres avec l’Assistant Importation et exportation de paramètres avant d’apporter les modifications que vous souhaitez tester, puis importez ultérieurement vos paramètres enregistrés.
Vous pouvez définir les options générales suivantes :
Demander avant de supprimer tous les points d’arrêt : nécessite une confirmation avant d’effectuer la commande Supprimer tous les points d’arrêt.
Arrêter tous les processus lorsqu’un processus s’arrête : arrête simultanément tous les processus auxquels le débogueur est attaché, lorsqu’un arrêt se produit.
Arrêter lorsque des exceptions dépassent les limites AppDomain ou managées/natives : lors du débogage managé ou en mode mixte, le common language runtime peut intercepter les exceptions qui transgressent les limites entre domaines d’application ou les limites managées/natives quand les conditions suivantes sont remplies :
Lorsque le code natif appelle le code managé à l'aide de COM Interop et que le code managé lève une exception. Consultez Introduction à COM Interop.
Quand le code managé s’exécutant dans le domaine d’application 1 appelle du code managé dans le domaine d’application 2 et que le code dans le domaine d’application 2 lève une exception. Consultez Programmation avec des domaines d’application.
Lorsque le code appelle une fonction à l’aide de la réflexion et que la fonction lève une exception. Consultez Réflexion.
Dans les conditions 2 et 3, l’exception est parfois interceptée par le code managé dans mscorlib
plutôt que par le common language runtime. Cette option n'a aucune incidence sur l'arrêt sur les exceptions interceptées par mscorlib
.
Activer le débogage au niveau de l’adresse : active les fonctionnalités avancées pour le débogage au niveau de l’adresse (la fenêtre Code machine, la fenêtre Registres et les points d’arrêt sur adresse mémoire).
- Afficher le code machine si la source n’est pas disponible : affiche automatiquement la fenêtre Code Machine lorsque vous déboguez du code pour lequel la source n’est pas disponible.
Activer les filtres de point d’arrêt : vous permet de définir des filtres sur les points d’arrêt afin qu’ils affectent uniquement des processus, threads ou ordinateurs spécifiques.
Utiliser le nouveau programme d’assistance pour les exceptions : active l’assistant d’exception qui remplace l’assistant d’exception. (L’assistance sur l’exception est prise en charge à partir de Visual Studio 2017)
Notes
Pour le code managé, cette option était précédemment appelée Activer l’Assistant Exception.
Activer Uniquement mon code : le débogueur affiche et exécute pas à pas le code utilisateur (« Mon code ») uniquement et il ignore le code système et tout autre code optimisé ou ne possédant pas de symboles de débogage.
- Avertir s’il n’y a pas de code utilisateur au lancement (managé uniquement) : lorsque le débogage commence et que l’option Uniquement mon code est activée, cette option vous avertit en cas d’absence de code utilisateur (« Mon code »).
Activer l’exécution pas à pas du code source du .NET Framework : permet au débogueur d’effectuer un pas à pas détaillé dans la source .NET Framework. L’activation de cette option désactive automatiquement Uniquement mon code. Les symboles .NET Framework seront téléchargés vers un emplacement de cache. Modifiez cet emplacement de cache avec la boîte de dialogue Options, la catégorie Débogage et la page Symboles.
Pas à pas principal dans les propriétés et les opérateurs (Managé uniquement) : empêche le débogueur d’effectuer un pas à pas détaillé dans les propriétés et les opérateurs dans le code managé.
Activer l’évaluation de la propriété et d’autres appels de fonction implicite : active l’évaluation automatique des propriétés et des appels de fonction implicites dans les fenêtres de variables et la boîte de dialogue QuickWatch.
- Appeler la fonction de conversion de chaînes pour les objets dans des fenêtres de variables (C# et JavaScript uniquement) : exécute un appel de conversion de chaîne implicite lors de l’évaluation d’objets dans des fenêtres de variables. Le résultat est affiché sous forme de chaîne à la place du nom de type. S'applique uniquement lors du débogage en code C#. Ce paramètre peut être remplacé par l’attribut DebuggerDisplay (consultez Utilisation de l’attribut DebuggerDisplay).
Activer le support du serveur source : indique au débogueur Visual Studio qu’il faut obtenir les fichiers sources à partir des serveurs sources qui implémentent le protocole SrcSrv (srcsrv.dll
). Team Foundation Server et les outils de débogage pour Windows sont deux serveurs sources qui implémentent le protocole. Pour plus d’informations sur l’installation de SrcSrv, consultez la documentation SrcSrv. En outre, consultez Spécifier les fichiers de symbole (.pdb) et les fichiers sources.
Important
La lecture des fichiers .pdb pouvant exécuter du code arbitraire dans les fichiers, vérifiez que le serveur possède un niveau de confiance suffisant.
Afficher les messages de diagnostic du serveur source dans la fenêtre Sortie : quand la prise en charge du serveur source est activée, ce paramètre active l’affichage des messages de diagnostic.
Autoriser le serveur source pour les assemblys de confiance partielle (Managé uniquement) : lorsque la prise en charge du serveur source est activée, ce paramètre remplace le comportement par défaut qui consiste à ne pas récupérer les sources des assemblys de confiance partielle.
Toujours exécuter les commandes de serveur source non fiables sans demander de confirmation : lorsque la prise en charge du serveur source est activée, ce paramètre remplace le comportement par défaut de l’invite lors de l’exécution d’une commande non approuvée.
Activer la prise en charge du lien source : indique au débogueur Visual Studio de télécharger les fichiers sources pour les fichiers .pdb qui contiennent des informations de lien source. Pour plus d’informations sur Source Link, consultez la spécification du lien source.
Important
Étant donné que Source Link téléchargera les fichiers avec http ou https, veillez à approuver le fichier .pdb.
- Revenir à l’authentification par Git Credential Manager pour toutes les requêtes de lien source : quand la prise en charge de Source Link est activée et qu’une demande de lien source échoue à s’authentifier, Visual Studio appelle Git Credential Manager.
Surligner l’intégralité de la ligne source pour les points d’arrêt et l’instruction actuelle (C++ uniquement) : lorsque le débogueur met en surbrillance un point d’arrêt ou une instruction en cours, il met en surbrillance la ligne entière.
Les fichiers sources doivent correspondre exactement à la version d’origine : indique au débogueur de vérifier qu’un fichier source correspond à la version du code source utilisée pour générer le fichier exécutable que vous déboguez. Quand la version ne correspond pas, vous êtes invité à rechercher une source correspondante. Si aucune source correspondante n'est trouvée, le code source n'est pas affiché pendant le débogage.
Rediriger tout le texte de la fenêtre Sortie vers la fenêtre Exécution : envoie tous les messages du débogueur qui s’affichent normalement dans la fenêtre Sortie vers la fenêtre Exécution.
Afficher la structure brute des objets dans des fenêtres de variables : désactive toutes les personnalisations d’affichage de structure d’objet. Pour plus d’informations sur les personnalisations d’affichage, consultez Créer des vues personnalisées d’objets gérés.
Supprimer l’optimisation JIT lors du chargement du module (Managé uniquement) : désactive l’optimisation JIT du code managé lorsqu’un module est chargé et que JIT est compilé pendant que le débogueur est attaché. La désactivation de l'optimisation peut simplifier le débogage de certains problèmes, mais elle se fait au détriment des performances. Si vous utilisez Uniquement mon code, la suppression de l'optimisation JIT peut entraîner l'affichage du code non-utilisateur comme du code utilisateur (« Mon code »). Pour plus d’informations, consultez Optimisation et débogage JIT.
Activer le débogage JavaScript pour ASP.NET (Chrome, Microsoft Edge et Internet Explorer) : active le débogueur de script pour les applications ASP.NET. Lors de la première utilisation dans Chrome, vous devrez peut-être vous connecter au navigateur pour activer les extensions Chrome que vous avez installées. Désactivez cette option pour revenir au comportement hérité.
Activer l’utilisation du débogueur JavaScript multicible pour le débogage JavaScript dans les cibles applicables (nécessite un redémarrage du débogage) : active la connexion au navigateur et au back-end simultanément, ce qui vous permet de déboguer votre code s’exécutant dans le client et le serveur directement à partir de l’éditeur.
Charger les exportations de dll (Natif uniquement) : charge les tables d’exportation dll. Les informations symboliques de tables d’exportation de dll peuvent être utiles si vous utilisez des messages Windows, des procédures Windows (WindowProcs), des objets COM, le marshaling ou toute dll pour laquelle vous n’avez pas de symbole. La lecture des informations d’exportation des dll implique une certaine charge mémoire. Par conséquent, cette fonctionnalité est désactivée par défaut.
Pour savoir quels symboles sont disponibles dans la table d’exportation d’une dll, utilisez dumpbin /exports
. Il existe des symboles pour toutes les dll système 32 bits. En lisant le résultat de dumpbin /exports
, vous apprenez le nom exact de la fonction, y compris les caractères non alphanumériques. Cette information peut être utile pour définir un point d'arrêt sur une fonction. Les noms de fonctions provenant de tables d’exportation de dll peuvent s’afficher sous une forme tronquée dans les autres parties du débogueur. Les appels sont répertoriés dans l'ordre chronologique inverse, la fonction en cours (la plus profondément imbriquée) apparaissant en tête de liste. Pour plus d'informations, consultez dumpbin /exports.
Afficher le diagramme ascendant des piles parallèles : contrôle la direction dans laquelle les piles sont affichées dans la fenêtre Piles parallèles.
Ignorer les exceptions d’accès à la mémoire GPU si les données écrites n’ont pas modifié la valeur : ignore les conditions de concurrence détectées lors du débogage si les données n’ont pas changé. Pour plus d’informations, consultez Débogage du code GPU.
Utiliser le mode de compatibilité managé : remplace le moteur de débogage par défaut par une version héritée pour activer les scénarios suivants :
Vous utilisez un langage .NET autre que C#, Visual Basic et F# qui fournit son propre évaluateur d’expression (y compris C++/CLI).
Vous souhaitez activer Modifier et Continuer pour les projets C++ pendant le débogage en mode mixte.
Notes
Le fait de choisir le mode de compatibilité managé désactive certaines fonctionnalités qui sont implémentées uniquement dans le moteur de débogage par défaut. Le moteur de débogage hérité a été remplacé dans Visual Studio 2012.
Avertir en cas d’utilisation de visualiseurs de débogueur personnalisés avec des processus potentiellement unsafe (managé uniquement) : Visual Studio vous avertit quand vous utilisez un visualiseur de débogueur personnalisé qui exécute le code dans le processus de l’élément débogué, car il pourrait exécuter du code unsafe.
Activer le débogage de l’allocateur de tas Windows (Natif uniquement) : permet au tas de débogage Windows d’améliorer les diagnostics du tas. L’activation de cette option affecte les performances de débogage.
Activer les outils de débogage d’interface utilisateur pour XAML : les fenêtres Arborescence d’éléments visuels en direct et Explorateur de propriétés en direct s’affichent quand vous démarrez le débogage (F5) d’un type de projet pris en charge. Pour plus d’informations, consultez Inspecter les propriétés XAML en phase de débogage.
Afficher l’aperçu des éléments sélectionnés dans l’arborescence d’éléments visuels en direct : l’élément XAML dont le contexte est sélectionné est également sélectionné dans la fenêtre Arborescence d’éléments visuels en direct.
Afficher les outils de runtime dans l’application : affiche les commandes d’Arborescence d’éléments visuels en direct dans une barre d’outils de la fenêtre principale de l’application XAML en cours de débogage.
Activer le rechargement à chaud XAML : vous permet d’utiliser la fonctionnalité de rechargement à chaud XAML avec du code XAML lorsque votre application est en cours d’exécution. (Cette fonctionnalité était précédemment appelée « Modifier et continuer XAML »)
Activer Uniquement mon XAML : depuis Visual Studio 2019 version 16.4, l’Arborescence d’éléments visuels en direct affiche par défaut uniquement le code XAML classé en tant que code utilisateur. Si vous désactivez cette option, tout le code XAML généré est affiché dans l’outil.
Désactiver le mode de sélection quand un élément est sélectionné : depuis Visual Studio 2019 version 16.4, le bouton sélecteur d’éléments de barre d’outils dans l’application (Activer la sélection) est désactivé lorsqu’un élément est sélectionné. Si vous désactivez cette option, la sélection d’éléments reste activée jusqu’à ce que vous cliquiez à nouveau sur le bouton de la barre d’outils dans l’application.
Appliquer le rechargement à chaud XAML lors de l’enregistrement du document : depuis Visual Studio 2019 version 16.6, applique le rechargement à chaud XAML lorsque vous enregistrez votre document.
Activer les outils de diagnostic durant le débogage : la fenêtre Outils de diagnostic s’affiche pendant le débogage.
Afficher le PerfTip du temps écoulé durant le débogage : la fenêtre de code affiche le temps écoulé d’un appel de méthode donné lors du débogage.
Activer Modifier et Continuer : active la fonctionnalité Modifier et Continuer pendant le débogage.
Activer Modifier et Continuer natif : vous pouvez utiliser la fonctionnalité Modifier et Continuer pendant le débogage du code C++ natif. Pour plus d’informations, consultez Modifier et continuer (C++).
Appliquer les changements en continuant (natif uniquement) : Visual Studio compile et applique automatiquement les modifications de code en attente apportées lors de la poursuite du processus après un arrêt. Si cette option n’est pas sélectionnée, vous pouvez choisir d’appliquer les modifications à l’aide de l’élément Appliquer les modifications du code dans le menu Déboguer.
Signaler le code périmé (natif uniquement) : recevez des avertissements sur le code périmé.
Afficher le bouton permettant l’exécution du code jusqu’à la ligne où l’utilisateur a cliqué dans l’éditeur durant le débogage : quand cette option est sélectionnée, le bouton Exécuter jusqu’au clic s’affiche lors du débogage.
Fermer automatiquement la console à l’arrêt du débogage : indique à Visual Studio de fermer la console à la fin d’une session de débogage.
Activer l’évaluation d’expression rapide (managée uniquement) : permet au débogueur de tenter une évaluation plus rapide en simulant l’exécution de propriétés et de méthodes simples.
Charger les symboles de débogage dans un processus externe (natif uniquement) : active cette optimisation de la mémoire lors du débogage.
Placer Visual Studio au premier plan en cas d’arrêt dans le débogueur : bascule Visual Studio au premier plan lorsque vous mettez en pause dans le débogueur.
Conserver les conseils de données développés ouverts jusqu’à ce qu’ils soient cliqués : quand cette option est sélectionnée, un conseil de données développé reste développé jusqu’à ce que vous cliquiez ailleurs.
Options disponibles dans les versions antérieures de Visual Studio
Si vous utilisez une version antérieure de Visual Studio, des options supplémentaires peuvent être présentes.
Activer les outils de développement Edge pour les applications JavaScript UWP (expérimental) : active les outils de développement pour les applications JavaScript UWP dans Microsoft Edge.
Activer le débogueur JavaScript hérité de Chrome pour ASP.NET : active le débogueur de script JavaScript Chrome hérité pour les applications ASP.NET. Lors de la première utilisation dans Chrome, vous devrez peut-être vous connecter au navigateur pour activer les extensions Chrome que vous avez installées.
Activer l’Assistant Exception : pour le code managé, active l’Assistant Exception. Depuis Visual Studio 2017, l’Assistance sur l’exception remplace l’Assistant Exception.
Dérouler la pile des appels sur les exceptions non gérées : la fenêtre Pile des appels restaure la pile des appels au point qui précède l’exception non gérée.
Lors de l’exécution de Visual Studio comme administrateur, lancer de manière expérimentale le débogage de JavaScript dans Chrome : indique à Visual Studio d’essayer une nouvelle façon de lancer Chrome pendant le débogage JavaScript.
Avertir s’il n’y a aucun symbole au lancement (Natif uniquement) : affiche une boîte de dialogue d’avertissement lorsque vous déboguez un programme pour lequel le débogueur ne dispose d’aucune information de symbole.
Avertir si le débogage des scripts est désactivé au lancement : affiche une boîte de dialogue d’avertissement lorsque le débogueur est lancé avec le débogage de script désactivé.
Utiliser le mode de compatibilité managé : quand cette option est sélectionnée, le débogueur utilise le débogueur managé Visual Studio 2010, requis lorsque vous déboguez du code C++/CLI.
Utiliser le mode de compatibilité natif : quand cette option est sélectionnée, le débogueur utilise le débogueur natif Visual Studio 2010 au lieu du nouveau débogueur natif.
- Utilisez cette option quand vous déboguez du code .NET C++, car le nouveau moteur de débogage ne prend pas en charge l’évaluation des expressions .NET C++. Toutefois, l’activation du mode de compatibilité natif désactive de nombreuses fonctionnalités qui dépendent de l’implémentation du débogueur actuel pour fonctionner. Par exemple, le moteur hérité ne dispose pas de nombreux visualiseurs pour les types intégrés tels que
std::string
dans les projets Visual Studio 2015. Utilisez les projets Visual Studio 2013 pour une expérience de débogage optimale dans ces cas.