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.
Visual Studio inclut un ensemble intégré puissant d’outils de génération et de débogage de projet. Cet article décrit comment Visual Studio peut vous aider à trouver des problèmes dans votre code à l’aide de la sortie de build, de l’analyse du code, des outils de débogage et des tests unitaires.
Vous avez compris l’éditeur et créé quelques lignes de code. À présent, vous souhaitez vous assurer que le code fonctionne correctement. Dans Visual Studio, comme avec la plupart des IDE, il existe deux phases pour rendre le code opérationnel : la génération du code pour intercepter et résoudre les erreurs de projet et de compilateur, et l’exécution du code pour rechercher des erreurs d’exécution et dynamiques.
Générer votre code
Il existe deux types de configuration de build de base : Déboguer et Libérer. La configuration de débogage produit un exécutable plus lent et plus volumineux qui permet une expérience de débogage interactive plus riche. L’exécutable de débogage ne doit jamais être expédié. La configuration release génère un exécutable plus rapide et optimisé adapté à l’expédition (au moins du point de vue du compilateur). La configuration de build par défaut est Debug.
Le moyen le plus simple de générer votre projet consiste à appuyer sur F7, mais vous pouvez également démarrer la génération en sélectionnant Build>Build Solution dans le menu principal.
Vous pouvez observer le processus de génération dans la fenêtre Sortie en bas de l’interface utilisateur de Visual Studio (interface utilisateur). Les erreurs, les avertissements et les opérations de génération s’affichent ici. Si vous avez des erreurs (ou si vous avez des avertissements au-dessus d’un niveau configuré), votre build échoue. Vous pouvez sélectionner les erreurs et les avertissements pour accéder à la ligne où elles se sont produites. Régénérez votre projet en appuyant de nouveau sur F7 (pour recompiler uniquement les fichiers avec des erreurs) ou Ctrl+Alt+F7 (pour une reconstruction propre et complète).
Il existe deux fenêtres à onglets dans la fenêtre de résultats sous l’éditeur : la fenêtre Sortie , qui contient la sortie du compilateur brut (y compris les messages d’erreur) ; et la fenêtre Liste d’erreurs , qui fournit une liste triable et filtrable de toutes les erreurs et avertissements.
Lorsque la génération réussit, vous voyez des résultats similaires dans la fenêtre Sortie :
Passer en revue la liste d’erreurs
Sauf si vous n’avez apporté aucune modification au code que vous avez compilé précédemment et correctement, vous avez probablement une erreur. Si vous débutez avec le codage, vous en avez probablement beaucoup. Les erreurs sont parfois évidentes, telles qu’une erreur de syntaxe simple ou un nom de variable incorrect, et parfois elles sont difficiles à comprendre, avec uniquement un code cryptique pour vous guider. Pour une vue plus claire des problèmes, accédez au bas de la fenêtre Sortie de build et sélectionnez l’onglet Liste d’erreurs . Cette action vous permet d’accéder à une vue plus organisée des erreurs et des avertissements pour votre projet, et vous offre également des options supplémentaires.
Sélectionnez la ligne d’erreur dans la fenêtre Liste d’erreurs pour accéder à la ligne dans laquelle l’erreur se produit. (Ou activez les numéros de ligne en appuyant sur Ctrl+Q, en tapant des numéros de ligne, puis en choisissant Activer ou désactiver les numéros de ligne à partir des résultats. Cette action est le moyen le plus rapide d’accéder à la boîte de dialogue Options dans laquelle vous pouvez activer les numéros de ligne.)
Appuyez sur Ctrl+G pour accéder rapidement au numéro de ligne où l’erreur s’est produite.
Visual Studio identifie cette erreur par un trait de soulignement rouge en forme de vague. Pointez dessus pour plus de détails. Faites le correctif et il disparaît, même si vous pouvez introduire une nouvelle erreur avec la correction. (Cette action est appelée « régression ».
Parcourez la liste des erreurs et résolvez toutes les erreurs dans votre code.
Examiner les erreurs en détail
De nombreuses erreurs peuvent ne pas vous sembler logiques, car elles se trouvent dans les termes du compilateur. Dans ce cas, vous devrez peut-être obtenir des informations supplémentaires. Dans la fenêtre Liste d’erreurs , vous pouvez effectuer une recherche Bing automatique pour plus d’informations sur l’erreur ou l’avertissement. Cliquez avec le bouton droit sur la ligne d’entrée correspondante, puis sélectionnez Afficher l’aide sur l’erreur dans le menu contextuel, ou sélectionnez la valeur du code d’erreur hypertexte dans la colonne Code de la liste d’erreurs.
Selon vos paramètres, votre navigateur web affiche les résultats de la recherche pour le code d’erreur et le texte, ou un onglet s’ouvre dans Visual Studio et affiche les résultats de la recherche Bing. Les résultats proviennent de nombreuses sources différentes sur Internet, et vous ne trouverez peut-être pas tous utiles.
Utiliser l’analyse du code
Les analyseurs de code recherchent des problèmes de code courants qui peuvent entraîner des erreurs d’exécution ou des problèmes dans la gestion du code.
Analyse du code C# et Visual Basic
Visual Studio inclut un ensemble intégré d’analyseurs de plateforme de compilateur .NET qui examinent le code C# et Visual Basic à mesure que vous tapez. Vous pouvez installer d’autres analyseurs en tant qu’extension Visual Studio ou en tant que package NuGet. Si des violations de règle sont détectées, elles sont signalées à la fois dans la liste d’erreurs et dans l’éditeur de code, avec un soulignement ondulé sous le code en question.
Analyse du code C++
Pour analyser le code C++, exécutez l’analyse statique du code. Prenez l’habitude de l’exécuter une fois que vous avez nettoyé les erreurs évidentes qui empêchent une build réussie et prenez un certain temps pour résoudre les avertissements qu’il peut produire. Vous pouvez vous éviter quelques soucis dans le futur et apprendre quelques techniques de style de code.
Appuyez sur Alt+F11 (ou sélectionnez Analyser>Effectuer l'analyse du code sur la solution dans le menu supérieur) pour démarrer l'analyse statique du code.
Tous les avertissements nouveaux ou mis à jour s’affichent sous l’onglet Liste d’erreurs en bas de l’IDE. Sélectionnez un avertissement pour aller directement dans le code.
Utiliser des actions rapides pour corriger ou refactoriser le code
Actions rapides, disponibles à partir de l’ampoule ou de l’icône de tournevis, vous permettent de refactoriser le code inline. Il s’agit d’un moyen simple de corriger les avertissements courants rapidement et efficacement en C#, C++ et Visual Basic Code. Pour y accéder, cliquez avec le bouton droit sur un avertissement souligné et sélectionnez Actions rapides et réorganisations de code. Lorsque votre curseur se trouve sur la ligne avec le gribouillis coloré, appuyez sur Ctrl+. ou sélectionnez l'ampoule, l'ampoule d'erreur ou l'icône de tournevis dans la marge. Visual Studio affiche ensuite une liste de correctifs ou de refactorisations possibles que vous pouvez appliquer à cette ligne de code.
Les actions rapides peuvent être utilisées partout où les analyseurs de code déterminent qu’il existe une possibilité de corriger, de refactoriser ou d’améliorer votre code. Sélectionnez une ligne de code quelconque, cliquez avec le bouton droit pour ouvrir le menu contextuel, puis sélectionnez Actions rapides et refactorisations. Si des options de refactorisation ou d’amélioration sont disponibles, elles sont affichées. Sinon, le message Aucune action rapide disponible ici s’affiche dans le coin inférieur gauche de l’IDE.
Avec l’expérience, vous pouvez rapidement utiliser les touches de direction et Ctrl+. Pour rechercher des opportunités de refactorisation faciles et nettoyer votre code !
Exécuter le nettoyage du code
Visual Studio fournit une mise en forme à la demande de votre fichier de code C#, y compris les préférences de style de code, via le bouton Nettoyage du code en bas de l’éditeur.
Outre la mise en forme de votre fichier pour les espaces, retraits, et ainsi de suite, le nettoyage du code applique également un ensemble de conventions de style de code que vous définissez. Vos préférences pour chaque style de code sont lues à partir du fichier EditorConfig, si vous en avez un pour le projet ou à partir des paramètres de style de code dans la boîte de dialogue Options .
Déboguer votre code en cours d’exécution
Maintenant que vous avez correctement généré votre code et effectué un peu de nettoyage, exécutez-le en appuyant sur F5 ou en sélectionnant Déboguer>démarrer le débogage. Cette action démarre votre application dans un environnement de débogage afin que vous puissiez observer son comportement en détail. L’IDE Visual Studio change pendant que votre application est en cours d’exécution : la fenêtre Sortie est remplacée par deux nouvelles (dans la configuration de fenêtre par défaut), la fenêtre à onglets Automatiques/Locaux/Observateur et la fenêtre à onglets Pile des appels/Points d’arrêt/Paramètres d’exception/Sortie. Ces fenêtres ont plusieurs onglets qui vous permettent d’inspecter et d’évaluer les variables, threads, piles d’appels et autres comportements de votre application lors de son exécution.
Arrêtez votre application en appuyant sur Maj+F5 ou en cliquant sur le bouton Arrêter . Ou bien, vous pouvez simplement fermer la fenêtre principale de l’application (ou boîte de dialogue de ligne de commande).
Si votre code s’est parfaitement exécuté et exactement comme prévu, félicitations ! Toutefois, parfois, votre code peut cesser de répondre, ou se bloque, ou vous donne des résultats étranges. Si c’est le cas, vous devez essayer de trouver la source de ces problèmes et de résoudre les bogues.
Définir des points d’arrêt simples
Les points d’arrêt sont la fonctionnalité la plus simple et essentielle du débogage fiable. Un point d’arrêt indique où Visual Studio doit suspendre votre code en cours d’exécution afin de pouvoir examiner les valeurs des variables, ou le comportement de la mémoire, ou si une branche de code est en cours d’exécution. Vous n’avez pas besoin de reconstruire un projet après avoir défini et supprimé des points d’arrêt.
Définissez un point d’arrêt en cliquant dans la marge éloignée de la ligne où vous souhaitez que l’arrêt se produise, ou appuyez sur F9 pour définir un point d’arrêt sur la ligne de code actuelle. Lorsque vous exécutez votre code, il suspend (ou arrêt) avant l’exécution des instructions de cette ligne de code.
Les utilisations courantes pour les points d’arrêt sont les suivantes :
Pour réduire la source d’un plantage ou d’un programme qui ne répond pas, répandez des points d’arrêt à travers et autour du code de l’appel de méthode que vous pensez être la cause de l’échec. Lorsque vous exécutez du code dans le débogueur, supprimez et réinitialisez les points d’arrêt plus rapprochés jusqu’à ce que vous trouviez la ligne de code problématique. Consultez la section suivante pour savoir comment exécuter du code dans le débogueur.
Lorsque vous introduisez un nouveau code, définissez un point d’arrêt au début de celui-ci et exécutez le code pour vous assurer qu’il se comporte comme prévu.
Si vous avez implémenté un comportement compliqué, définissez des points d’arrêt pour le code algorithmique afin de pouvoir inspecter les valeurs des variables et des données lorsque le programme s’interrompt.
Si vous écrivez du code C ou C++, utilisez des points d’arrêt pour arrêter le code afin de pouvoir inspecter les valeurs d’adresse (recherchez NULL) et les nombres de références lors du débogage pour les défaillances liées à la mémoire.
Pour plus d’informations sur l’utilisation de points d’arrêt, consultez Utiliser des points d’arrêt dans le débogueur Visual Studio.
Inspecter votre code au moment de l’exécution
Lorsque votre code en cours d’exécution atteint un point d’arrêt et s’interrompt, la ligne de code marquée en jaune (l’instruction actuelle) n’a pas encore été exécutée. À ce stade, vous pouvez exécuter l’instruction actuelle, puis inspecter les valeurs modifiées. Vous pouvez utiliser plusieurs commandes d’étape pour exécuter du code dans le débogueur. Si le code marqué est un appel de méthode, vous pouvez y accéder en appuyant sur F11. Vous pouvez également ignorer la ligne de code en appuyant sur F10. Pour plus de commandes et de détails sur la façon de parcourir le code, lisez Naviguer dans le code en utilisant le débogueur.
Dans l’illustration précédente, vous pouvez avancer l’instruction du débogueur en appuyant sur F10 ou F11 (puisqu’il n’existe aucun appel de méthode ici, les deux commandes ont le même résultat).
Pendant que le débogueur est suspendu, vous pouvez inspecter vos variables et vos piles d’appels pour déterminer ce qui se passe. Les valeurs sont-elles dans les plages que vous vous attendez à voir ? Les appels sont-ils effectués dans l’ordre approprié ?
Pointez sur une variable pour afficher sa valeur et ses références actuelles. Si vous voyez une valeur à laquelle vous ne vous attendiez pas, vous avez probablement un bogue dans le code précédent ou dans le code appelant. Pour plus d’informations, consultez Première vue du débogueur Visual Studio.
En outre, Visual Studio affiche la fenêtre Outils de diagnostic , où vous pouvez observer l’utilisation du processeur et de la mémoire de votre application au fil du temps. À un stade ultérieur du développement de votre application, vous pouvez utiliser ces outils pour dépister une utilisation imprévue et intensive du CPU ou une attribution excessive de mémoire. Utilisez-le avec la fenêtre de surveillance Watch et les points d’arrêt pour déterminer la cause d'une utilisation importante inattendue ou de ressources non libérées. Pour plus d’informations, consultez Première vue des outils de profilage (C#, Visual Basic, C++, F#).
Exécuter des tests unitaires
Les tests unitaires sont votre première ligne de défense contre les bogues de code, car, lorsqu’ils sont effectués correctement, ils testent une seule « unité » de code, généralement une seule fonction et sont plus faciles à déboguer que votre programme complet. Visual Studio installe les frameworks de test unitaire Microsoft pour le code managé et natif. Utilisez une infrastructure de test unitaire pour créer des tests unitaires, les exécuter et signaler les résultats de ces tests. Réexécutez des tests unitaires lorsque vous apportez des modifications pour tester que votre code fonctionne toujours correctement. Avec Visual Studio Enterprise Edition, vous pouvez exécuter automatiquement des tests après chaque build.
Pour commencer, lisez Générer des tests unitaires pour les tests fuzz à l’aide d’IntelliTest.
Pour en savoir plus sur les tests unitaires dans Visual Studio et comment ils peuvent vous aider à créer du code de meilleure qualité, lisez les principes de base des tests unitaires.