Bien démarrer avec le débogage dans Visual StudioGet started with debugging in Visual Studio

Visual Studio intègre un ensemble puissant d’outils de génération et de débogage de projets.Visual Studio provides a powerful integrated set of project build and debugging tools. Dans cette rubrique, vous allez apprendre à utiliser l’ensemble des fonctionnalités de base de l’interface utilisateur de débogage.In this topic, find out how to start using the most basic set of debugging UI features.

Si vous n’avez pas encore installé Visual Studio, accédez à la page Téléchargements Visual Studio pour l’installer gratuitement.If you haven't already installed Visual Studio, go to the Visual Studio Downloads page to install it for free.

Mon code ne fonctionne pas.My code doesn't work. Comment obtenir de l’aide dans Visual Studio ?Help me, Visual Studio!

Vous avez compris comment fonctionne l’éditeur et vous venez de créer du code.So you've figured out the editor and you've created some code. Vous devez à présent déboguer ce code.Now, you want to start debugging that code. Dans Visual Studio, comme dans la plupart des environnements de développement intégrés (IDE), le débogage comprend deux phases : la génération du code pour intercepter et résoudre les erreurs liées au projet et au compilateur, puis l’exécution du code dans l’environnement pour intercepter et résoudre les erreurs dynamiques et d’exécution.In Visual Studio, as with most IDEs, there are two phases to debugging: building the code to catch and resolve project and compiler errors; and running that code in the environment to catch and resolve run-time and dynamic errors.

Générer votre codeBuild your code

Il existe deux types de base de configurations de build : Debug et Release.There are two basic types of build configuration: Debug and Release. La première configuration produit un fichier exécutable plus volumineux et moins rapide. S'il ne doit jamais être publié, il rend l'expérience de débogage à l'exécution plus riche et interactive.The first configuration produces a slower, larger executable that allows for a richer interactive run-time debugging experience, but should never be shipped. La seconde configuration génère un fichier exécutable plus rapide et optimisé qu’il est possible de publier (tout du moins du point de vue du compilateur).The second builds a faster, more optimized executable that's appropriate to ship (at least from the perspective of the compiler). La configuration de build par défaut est Debug.The default build configuration is Debug.

Le moyen le plus simple de générer votre projet consiste à appuyer sur F7, mais vous pouvez aussi démarrer la build en sélectionnant Générer > Générer la solution dans le menu principal.The easiest way to build your project is to press F7, but you can also start the build by selecting Build > Build Solution from the main menu.

Sélection du menu de génération du projet Visual StudioVisual Studio build project menu selection

Vous pouvez observer le processus de génération dans la fenêtre d’état Sortie située dans la partie inférieure de l’interface utilisateur de Visual Studio.You can observe the build process in the Output status window at the bottom of the Visual Studio UI. Les erreurs, avertissements et opérations de génération sont affichés ici.Errors, warnings, and build operations are displayed here. En cas d'erreurs (ou si vous recevez des avertissements au-delà d'un niveau configuré), votre build échoue.If you have errors (or if you have a warnings above a configured level), your build will fail. Vous pouvez cliquer sur une erreur ou sur un avertissement pour accéder à la ligne à l'origine du problème.You can click on the errors and warnings to go to the line where they occurred. Régénérez votre projet. Pour cela, appuyez sur F7 (pour recompiler uniquement les fichiers avec des erreurs) ou sur Ctrl+Alt+F7 (pour une nouvelle régénération complète).Rebuild your project by pressing either F7 again (to recompile only the files with errors) or Ctrl+Alt+F7 (for a clean and complete rebuild).

Deux fenêtres à onglets apparaissent dans la fenêtre de résultats sous l’éditeur : la fenêtre Sortie, qui contient la sortie brute du compilateur (y compris les messages d’erreur), et la fenêtre Liste d’erreurs, qui fournit une liste pouvant être triée et filtrée de l’ensemble des erreurs et des avertissements.There are two build tabbed windows in the results window below the editor: the Output window, which contains the raw compiler output (including error messages); and the Error List window, which provides a sortable and filterable list of all errors and warnings.

En cas de réussite, des résultats semblable à ceux-ci apparaissent dans la fenêtre Sortie.When successful, you will see results like this in the Output window.

Sortie de génération réussie Visual StudioVisual Studio successful build output

Examiner la Liste d’erreursReview the Error List

À moins que vous n’ayez apporté aucune modification au code précédemment compilé avec succès, une erreur s’est probablement produite.Unless you've made no modifications to code you've previously and successfully compiled, you probably have an error. Si vous codez depuis peu, il y en a peut-être beaucoup.If you're new to coding, you probably have lots of them. Si certaines erreurs sont évidentes, comme une simple erreur de syntaxe ou un nom de variable incorrect, d’autres sont parfois plus ardues à comprendre. Et ce n’est pas le code obscur associé à celles-ci qui va davantage vous aider.Errors are sometimes obvious, such as a simple syntax error or incorrect variable name, and sometimes they are difficult to understand, with only a cryptic code to guide you. Pour obtenir une vue plus conviviale des problèmes, accédez à la partie inférieure de la fenêtre Sortie de la build, puis cliquez sur l’onglet Liste d’erreurs. Vous disposez non seulement d'une vue mieux organisée des erreurs et des avertissements liés à votre projet, mais aussi d'options supplémentaires.For a cleaner view of the issues, navigate to the bottom of the build Output window, and click the Error List tab. This takes you to a more organized view of the errors and warnings for your project, and gives you some extra options as well.

Liste d’erreurs et sortie de Visual StudioVisual Studio Output and Error List

Cliquez sur la ligne d’erreur dans la fenêtre Liste d’erreurs pour accéder directement à la ligne à l’origine de l’erreur.Click on the error line in the Error List window and jump to the line the error occurs in. (Vous pouvez aussi activer les numéros de ligne en cliquant dans la barre Lancement rapide située dans l’angle supérieur droit, en tapant « numéros de ligne » dans celle-ci, puis en appuyant sur Entrée.(Or turn on line numbers by clicking in the Quick Launch bar in the upper-right, typing "line numbers" into it, and pressing Enter. C’est le moyen le plus rapide d’arriver à l’entrée de la fenêtre Options qui vous permet d’activer les numéros de ligne.This is the fastest way to get to Options window entry where you can turn on line numbers. En vous familiarisant avec la barre Lancement rapide, vous économiserez un grand nombre de clics dans l’interface utilisateur !)Learn to use the Quick Launch bar and save yourself a lot of UI clicks!)

Éditeur Visual Studio avec des numéros de ligneVisual Studio editor with line numbers

Option des numéros de ligne Visual StudioVisual Studio line numbers option

Utilisez Ctrl+G pour accéder rapidement au numéro de ligne où l’erreur s’est produite.Use Ctrl+G to quickly jump to the line number where the error occurred.

L’erreur est identifiée par un trait de soulignement rouge ondulé.The error is identified by a red "squiggle" underscore. Pointez dessus pour obtenir plus d'informations.Hover over it for additional details. Apportez la correction nécessaire pour faire disparaître ce trait. Notez toutefois que vous risquez d'introduire une nouvelle erreur.Make the fix and it will go away, although you may introduce a new error with the correction. (Cela s’appelle une « régression ».)(This is called a "regression".)

Pointage d’erreur Visual StudioVisual Studio error hover

Passez en revue la liste d'erreurs et corrigez toutes les erreurs dans votre code.Walk through the error list and address all the errors in your code.

Fenêtre d’erreurs de débogage Visual StudioVisual Studio Debug errors window

Examiner les erreurs en détailReview errors in detail

De nombreuses erreurs, exprimées selon les termes du compilateur, peuvent vous paraître incompréhensibles.Many errors may make no sense to you, phrased as they are in the terms of the compiler. Dans ces cas-là, vous avez besoin d'informations supplémentaires.In those cases, you will need additional information. La fenêtre Liste d’erreurs vous permet de lancer une recherche automatique dans Bing pour obtenir plus d’informations sur l’erreur (ou l’avertissement). Pour cela, 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.From the Error List window, you can do an automatic Bing search for more information on the error (or warning) by right-clicking on the corresponding entry line and selecting Show Error Help from the context menu.

Recherche Bing de liste d’erreurs Visual StudioVisual Studio error list Bing search

Cette opération lance un onglet dans Visual Studio qui présente les résultats d’une recherche Bing portant sur le code et le texte de l’erreur.This launches a tab inside Visual Studio that hosts the results of a Bing search for the error code and text. Les résultats provenant de sources diverses sur Internet, certains peuvent s'avérer inutiles.The results are from many different sources on the Internet, and not all may be helpful.

Vous pouvez également cliquer sur la valeur du code d’erreur, qui se présente sous la forme d’un lien hypertexte, dans la colonne Code de la Liste d’erreurs.Alternatively, you can click on the hyperlinked error code value in the Code column of the Error List. Cette action lance une recherche dans Bing portant uniquement sur le code d'erreur.This will launch a Bing search for just the error code.

Utiliser des ampoules pour corriger ou refactoriser du codeUse Light Bulbs to fix or refactor code

Les ampoules sont une nouvelle fonctionnalité de Visual Studio qui vous permettent de refactoriser le code en mode inline.Light Bulbs are a new feature for Visual Studio that let you refactor code inline. Grâce aux ampoules, vous pouvez facilement et rapidement résoudre les avertissements courants.They are an easy way to fix common warnings quickly and effectively. Pour y accéder, cliquez sur le trait de soulignement ondulé d’un avertissement (ou appuyez sur Ctrl+.To access them, right-click on a warning squiggle (or press Ctrl+. tout en pointant sur le trait de soulignement ondulé), puis sélectionnez Actions rapide.while hovering over the squiggle), and then select Quick Actions.

Options rapides d’ampoule dans Visual StudioVisual Studio Light Bulb quick options

La liste des corrections ou des refactorisations que vous pouvez appliquer à cette ligne de code s'affiche.You will see a list of possible fixes or refactors you can apply to that line of code.

Aperçu d’ampoule dans Visual StudioVisual Studio Light Bulb preview

Vous pouvez utiliser les ampoules chaque fois que les analyseurs de code déterminent que votre code peut être corrigé, refactorisé ou amélioré.Light Bulbs can be used wherever the code analyzers determine there is an opportunity to fix, refactor, or improve your code. Cliquez sur n’importe quelle ligne de code, cliquez avec le bouton droit pour ouvrir le menu contextuel , puis sélectionnez Options rapide (ou, pour aller plus vite, appuyez sur Ctrl+.).Click on any line of code, right-click to open the context menu, and select Quick Actions (or, again, if you prefer efficiency, press Ctrl+.). Si des options de refactorisation ou d’amélioration sont disponibles, elles sont affichées ; dans le cas contraire, le message No quick options available here apparaît dans le cadre de l’angle inférieur gauche de l’IDE.If there are refactoring or improvement options available, they will be displayed; otherwise, the message No quick options available here will be displayed in the lower-left corner bezel of the IDE.

Texte « aucune option » d’ampoule Visual StudioVisual Studio Light Bulb 'no option' text

Si vous êtes plus expérimenté, vous pouvez utiliser les touches de direction et Ctrl+.With experience, you can quickly use the arrow keys and Ctrl+. pour vérifier rapidement les opportunités de refactorisation des options rapides et nettoyer votre code.to check for Quick Option refactoring opportunities and clean up your code!

Pour plus d’informations sur les ampoules, consultez Effectuer des actions rapides avec des ampoules.For more information on Light Bulbs, read Perform quick actions with light bulbs.

Déboguer votre code en cours d’exécutionDebug Your running code

Après avoir généré votre code et procédé à quelques tâches de nettoyage, exécutez-le en appuyant sur F5 ou en sélectionnant Déboguer > Démarrer le débogage.Now that you've successfully built your code and performed a little clean up, run it by pressing F5 or selecting Debug > Start Debugging. Votre application démarre dans un environnement de débogage dans lequel vous pouvez observer son comportement en détail.This will start your app in a debug environment so you can observe its behavior in detail. Pendant l’exécution de votre application, l’IDE de Visual Studio subit des modifications. Ainsi, la fenêtre Sortie est remplacée par deux nouvelles fenêtres (dans la configuration des fenêtres par défaut) : une fenêtre avec les onglets Automatique/Variables locales/Espion et une autre avec les onglets Pile des appels/Points d’arrêt/Paramètres d’exception/Sortie.The Visual Studio IDE changes while your app is running: the Output window is replaced by two new ones (in the default window configuration), the Autos/Locals/Watch tabbed window and the Call Stack/Breakpoints/Exception Settings/Output tabbed window. Ces fenêtres à onglets vous permettent d’inspecter et d’évaluer les variables, threads, piles d’appels et autres comportements de votre application à mesure qu’elle s’exécute.These windows have multiple tabs which allow you to inspect and evaluate your app's variables, threads, call stacks, and various other behaviors as it runs.

Fenêtres Automatique et Pile des appels de Visual StudioVisual Studio Autos and Call Stack Windows

Vous pouvez arrêter votre application en appuyant sur Maj+F5 ou en cliquant sur le bouton Arrêter.You can stop your app by pressing Shift+F5 or by clicking the Stop button. Vous pouvez aussi simplement fermer la fenêtre principale de l’application (ou la boîte de dialogue de la ligne de commande).Or, you can simply close the app's main window (or command line dialog).

Si votre code s'exécute parfaitement et exactement comme prévu, félicitations !If your code ran perfectly and exactly as expected, congratulations! Toutefois, si votre code se bloque, qu’il s’arrête ou qu’il produit des résultats inattendus, vous devez rechercher la source de ces problèmes et résoudre les bogues.However, if it hung, or crashed, or gave you some strange results, you'll need to find the source of those problems and fix the bugs.

Définir des points d’arrêt simplesSet simple breakpoints

Les points d'arrêt constituent une fonctionnalité élémentaire et essentielle de toute procédure de débogage fiable.Breakpoints are the most basic and essential feature of reliable debugging. Quand vous définissez un point d'arrêt, Visual Studio interrompt l'exécution du code à l'emplacement du point d'arrêt pour vous permettre d'examiner les valeurs des variables, le comportement de la mémoire ou encore la bonne exécution ou non d'une branche de code.A breakpoint indicates where Visual Studio should suspend your running code so you can take a look at the values of variables, or the behavior of memory, or whether or not a branch of code is getting run. Il est INUTILE de régénérer un projet après la définition et la suppression de points d'arrêt.You do NOT need to rebuild a project after setting and removing breakpoints.

Définissez un point d’arrêt en cliquant à l’extrémité de la marge de la ligne où vous souhaitez arrêter le code, ou appuyez sur F9 pour définir un point d’arrêt sur la ligne de code actuelle.Set a breakpoint by clicking in the far margin of the line where you want the break to occur, or press F9 to set a breakpoint on the current line of code. Quand vous exécutez votre code, celui-ci s’interrompt (ou s’arrête) avant d’exécuter les instructions contenues dans cette ligne de code.When you run your code, it will pause (or break) before the instructions for this line of code are executed.

Point d’arrêt Visual StudioVisual Studio breakpoint

Parmi les utilisations courantes des points d'arrêt, citons les suivantes :Common uses for breakpoints include:

  1. Pour cibler la source d'un incident ou d'un blocage, disséminez des points d'arrêt à l'intérieur et tout autour du code de l'appel de méthode qui semble être à l'origine de l'échec.To narrow down the source of a crash or hang, scatter them throughout and around the code of the method call you think is causing the failure. À mesure que vous exécutez le code dans le débogueur, supprimez les points d’arrêt, puis rapprochez-les les uns des autres jusqu’à identifier la ligne de code incriminée.As you run code in the debugger, remove and then reset the breakpoints closer together until you find the offending line of code. Pour découvrir comment exécuter du code dans le débogueur, consultez la section suivante.See the next section to learn how to run code in the debugger.

  2. Quand vous introduisez une nouvelle section de code, définissez un point d’arrêt au début de celle-ci, puis exécutez le code pour vous assurer qu’il se comporte comme prévu.When you introduce new code, set a breakpoint at the beginning of it and run the code to make sure it is behaving as expected.

  3. Si vous avez implémenté un comportement complexe, définissez un ou plusieurs points d'arrêt dans le code algorithmique de manière à inspecter les valeurs des variables et des données quand le programme s'arrête.If you have implemented a complicated behavior, set breakpoint(s) for the algorithmic code so you can inspect the values of the variables and data when the program breaks.

  4. Si vous écrivez du code en C ou C++, utilisez des points d'arrêt pour arrêter le code de manière à inspecter les valeurs d'adresse (recherchez NULL) et les compteurs de références lors du débogage d'échecs liés à la mémoire.If you are writing C or C++ code, use breakpoints to stop the code so you can inspect address values (look for NULL) and reference counts when debugging for memory-related failures.

    Pour plus d’informations sur l’utilisation des points d’arrêt, consultez Utilisation des points d’arrêt.For more information on using breakpoints, read Using Breakpoints.

Inspecter le code au moment de l’exécutionInspect your code at run-time

Quand votre code atteint un point d’arrêt et s’interrompt, la ligne de code marquée en jaune (l’instruction en cours) n’a pas encore été exécutée.When your running code hits a breakpoint and pauses, the line of code marked in yellow (the current statement) has not executed yet. À ce stade, vous souhaiterez peut-être exécuter l’instruction en cours, puis inspecter les valeurs modifiées.At this point, you may want to execute the current statement and then inspect the changed values. Vous pouvez utiliser plusieurs commandes d’analyse pas à pas pour exécuter le code dans le débogueur.You can use several step commands to execute code in the debugger. Si le code marqué est un appel de méthode, vous pouvez effectuer un pas à pas détaillé en appuyant sur F11.If the marked code is a method call, you can step into it by pressing F11. Vous pouvez également exécuter pas à pas la ligne de code en appuyant sur F10.You can also step over the line of code by pressing F10. Pour plus d’informations sur les commandes supplémentaires et sur la façon de parcourir le code, consultez Naviguer dans le code avec le débogueur.For additional commands and details on how to step through code, read Navigate code with the debugger.

Inspection de valeur d’exécution dans Visual StudioVisual Studio run-time value inspection

Dans l’illustration précédente, vous pouvez avancer d’une instruction dans le débogueur en appuyant sur F10 ou F11 (comme il n’y a ici aucun appel de méthode, les deux commandes ont le même résultat).In the preceding illustration, you can advance the debugger one statement by pressing either F10 or F11 (since there is no method call here, both commands have the same result).

Quand le débogueur est suspendu, vous pouvez inspecter les variables et les piles des appels pour déterminer ce qui se passe.While the debugger is paused, you can inspect your variables and call stacks to determine what is going on. Les valeurs sont-elles comprises dans les plages attendues ?Are the values in the ranges you expect to see? Les appels sont-ils effectués dans le bon ordre ?Are calls being made in the right order?

Inspection de valeur d’exécution dans Visual StudioVisual Studio run-time value inspection

Pointez sur une variable pour afficher la ou les valeurs et références qu'elle contient actuellement.Hover over a variable to see the value(s) and reference(s) it currently contains. Si vous remarquez une valeur à laquelle vous ne vous attendiez pas, vous avez probablement un bogue dans les lignes de code précédentes ou d’appel.If you see a value you didn't expect, you probably have a bug in the preceding or calling lines of code. Pour en savoir plus sur l’utilisation du débogueur, consultez cet article.For more in-depth information, learn more about using the debugger.

Par ailleurs, Visual Studio affiche la fenêtre Outils de diagnostic. Celle-ci vous permet d’observer l’utilisation de l’UC et de la mémoire de votre application au fil du temps.Additionally, Visual Studio displays the Diagnostic Tools window, where you can observe your app's CPU and memory usage over time. Ultérieurement lors du développement de vos applications, vous pourrez utiliser ces outils pour rechercher les utilisations du processeur ou les allocations de mémoire importantes et imprévues.Later in your app development, you can use these tools to look for unanticipated heavy CPU usage or memory allocation. Utilisez-les conjointement avec la fenêtre Espion et les points d’arrêt pour déterminer le problème à l’origine d’une utilisation élevée inattendue ou de la non-libération de ressources.Use it in conjunction with the Watch window and breakpoints to determine what's causing unexpected heavy usage or unreleased resources. Pour plus d’informations, consultez Visite guidée des fonctionnalités de profilage.For more information, see Profiling feature tour.

Exécuter des tests unitairesRun unit tests

Les tests unitaires sont votre première ligne de défense contre les bogues de code car, exécutés correctement, ils testent une seule « unité » de code, généralement une seule fonction, et leur débogage est généralement beaucoup plus simple que le débogage du programme complet.Unit tests are your first line of defense against code bugs because, when done correctly, they test a single "unit" of code, typically a single function, and are usually much easier to debug than debugging your full program. Visual Studio installe les infrastructures de tests unitaires Microsoft pour le code managé et le code natif.Visual Studio installs the Microsoft unit testing frameworks for both managed and native code. Utilisez une infrastructure de test unitaire pour créer des tests unitaires, les exécuter et signaler les résultats de ces tests.Use a unit testing framework to create unit tests, run them, and report the results of these tests. Réexécutez des tests unitaires quand vous apportez des modifications pour vérifier que votre code fonctionne toujours correctement.Rerun unit tests when you make changes to test that your code is still working correctly. Quand vous utilisez Visual Studio Enterprise Edition, vous pouvez exécuter automatiquement des tests après chaque génération.When you use Visual Studio Enterprise edition, you can run tests automatically after every build.

Pour commencer, consultez Générer des tests unitaires pour votre code avec IntelliTest.To get started, read Generate unit tests for your code with IntelliTest.

Pour en savoir plus sur les tests unitaires dans Visual Studio et sur la façon dont ils peuvent vous aider à créer du code de meilleure qualité, consultez Concepts de base des tests unitaires.To learn more about unit tests in Visual Studio and how they can help you create better quality code, read Unit Test Basics.

Effectuer une analyse statique du codePerform static code analysis

L’analyse statique du code désigne simplement la procédure de vérification automatique du code en vue d’identifier des problèmes courants susceptibles d’entraîner des erreurs d’exécution ou des problèmes de gestion du code."Static code analysis" is a fancy way of saying "automatically check my code for common problems that can lead to run-time errors or problems in code management". Après avoir résolu les erreurs évidentes qui font obstacle à la génération, prenez la bonne habitude d’exécuter cette analyse et consacrez du temps au traitement des avertissements qu’elle peut produire.Get in the habit of running it once you've cleaned up the obvious errors preventing build, and take some time to address the warnings it may produce. Cela vous épargnera quelques maux de tête à l’avenir, et vous apprendrez par la même occasion quelques techniques en matière de style de code.You'll save yourself some headaches down the road, as well as learn a few code style techniques.

Appuyez sur Alt+F11 (ou sélectionnez Analyser > Exécuter l’analyse du code sur la solution dans le menu supérieur) pour démarrer l’analyse statique du code.Press Alt+F11 (or select Analyze > Run Code Analysis on Solution from the top menu) to start static code analysis. Si vous avez beaucoup de code, cette opération peut prendre du temps.This may take some time if you have a lot of code.

Élément de menu Analyse du code dans Visual StudioVisual Studio Code Analysis menu item

Les nouveaux avertissements et ceux mis à jour sont recensés sous l’onglet Liste d’erreurs dans la partie inférieure de l’IDE.Any new or updated warnings will appear in the Error List tab at the bottom of the IDE. Cliquez sur les avertissements pour y accéder.Click on the warnings to jump to them.

Liste d’erreurs Visual Studio avec des avertissementsVisual Studio Error List with Warnings

Les avertissements sont identifiés par un trait de soulignement jaune-vert ondulé (s'il est de couleur rouge, il désigne une erreur).The warnings will be identified with a bright yellow-green squiggle instead of a red one. Vous pouvez pointer sur ce trait pour afficher plus de détails ou cliquer dessus avec le bouton droit pour accéder à un menu contextuel proposant de l'aide sur les corrections ou les options de refactorisation.Hover over them for more detail, and right-click on them to get a context menu to assist in fixes or refactoring options.

Pointage de l’avertissement dans Analyse du code de Visual StudioVisual Studio Code Analysis Warning hover

Voir aussiSee Also

Visite guidée des fonctionnalités du débogueurDebugger Feature Tour
En savoir plus sur l’utilisation du débogueurLearn more about using the debugger