Tutoriel : Déboguer une application console .NET à l’aide de Visual Studio Code

Ce tutoriel présente les outils de débogage disponibles dans Visual Studio Code pour l’utilisation d’applications .NET.

Prérequis

Utiliser la configuration de build Debug

Debug et Release sont des configurations de build intégrées de NET. Vous utilisez la configuration de build Debug pour le débogage et la configuration Release pour la distribution finale de la version.

Dans la configuration Debug, un programme est compilé avec des informations de débogage relatives aux symboles et aucune optimisation. L'optimisation complique le débogage, étant donné que la relation entre le code source et les instructions générées est plus complexe. La configuration Release d’un programme ne contient pas d’informations de débogage relatives aux symboles et est entièrement optimisée.

Par défaut, les paramètres de lancement de Visual Studio Code utilisent la configuration de build Debug. Vous n’avez donc pas besoin d’en changer avant le débogage.

  1. Démarrez Visual Studio Code.

  2. Ouvrez le dossier du projet que vous avez créé dans Créer une application console .NET à l’aide de Visual Studio Code.

Définir un point d'arrêt

Un point d’arrêt interrompt temporairement l’exécution de l’application avant la ligne sur laquelle le point d’arrêt est exécuté.

  1. Ouvrez le fichier Program.cs.

  2. Définissez un point d’arrêt sur la ligne qui affiche le nom, la date et l’heure, en cliquant dans la marge gauche de la fenêtre de code. La marge gauche est à gauche des numéros de ligne. Pour définir un point d’arrêt, vous pouvez également appuyer sur F9 ou choisir Exécuter>Basculer le point d’arrêt dans le menu pendant que la ligne de code est sélectionnée.

    Visual Studio Code indique la ligne sur laquelle le point d’arrêt est défini en affichant un point rouge dans la marge gauche.

    Breakpoint set

Configurer l’entrée de terminal

Le point d’arrêt se trouve après un appel de méthode Console.ReadLine. La console de débogage n’accepte pas d’entrée de terminal pour un programme en cours d’exécution. Pour gérer l’entrée de terminal pendant le débogage, vous pouvez utiliser le terminal intégré (l’une des fenêtres Visual Studio Code) ou un terminal externe. Pour ce tutoriel, vous utilisez le terminal intégré.

  1. Le dossier du projet contient un dossier .vscode. Ouvrez le fichier launch.json qui se trouve dans le dossier .vscode.

  2. Dans launch.json, modifiez le paramètre console de internalConsole à integratedTerminal :

    "console": "integratedTerminal",
    
  3. Enregistrez vos modifications.

Démarrer le débogage

  1. Ouvrez la vue Débogage en sélectionnant l’icône Débogage dans le menu de gauche.

    Open the Debug tab in Visual Studio Code

  2. Sélectionnez la flèche verte en haut du volet, en regard de .NET Core Launch (console). Pour démarrer le programme en mode Debug, vous pouvez également appuyer sur F5 ou choisir Exécuter>Démarrer le débogage dans le menu.

    Start debugging

  3. Sélectionnez l’onglet Terminal pour afficher l’invite « Quel est votre nom ? » que le programme affiche avant d’attendre une réponse.

    Select the Terminal tab

  4. Entrez une chaîne dans la fenêtre Terminal en réponse à l’invite demandant d’indiquer un nom, puis appuyez sur Entrée.

    L’exécution du programme s’arrête lorsqu’il atteint le point d’arrêt et avant l’exécution de la méthode Console.WriteLine. La section Variables locales de la fenêtre Variables affiche les valeurs des variables définies dans la méthode en cours d’exécution.

    Breakpoint hit, showing Locals

Utiliser la console de débogage

La fenêtre Console de débogage vous permet d’interagir avec l’application que vous déboguez. Vous pouvez modifier la valeur des variables pour voir comment elles affectent votre programme.

  1. Sélectionnez l’onglet Console de débogage.

  2. Entrez name = "Gracie" à l’invite en bas de la fenêtre Console de débogage, puis appuyez sur la touche Entrée.

    Change variable values

  3. Entrez currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() en bas de la fenêtre Console de débogage, puis appuyez sur la touche Entrée.

    La fenêtre Variables affiche les nouvelles valeurs des variables currentDate et name.

  4. Poursuivez l’exécution du programme en sélectionnant le bouton Continuer dans la barre d’outils. Une autre façon de continuer consiste à appuyer sur F5.

    Continue debugging

  5. Sélectionnez à nouveau l’onglet Terminal.

    Les valeurs affichées dans la fenêtre de console correspondent aux modifications que vous avez apportées dans la fenêtre de débogage.

    Terminal showing the entered values

  6. Appuyez sur une touche pour quitter l’application et arrêter le débogage.

Définir un point d'arrêt conditionnel

Le programme affiche la chaîne entrée par l’utilisateur. Que se passe-t-il si l’utilisateur n’entre rien ? Vous pouvez tester cela avec une fonctionnalité de débogage utile appelée point d’arrêt conditionnel.

  1. Cliquez avec le bouton droit (Ctrl-clic sur macOS) sur le point rouge qui représente le point d’arrêt. Dans le menu contextuel, sélectionnez Modifier le point d’arrêt pour ouvrir une boîte de dialogue qui vous permet d’entrer une expression conditionnelle.

    Breakpoint context menu

  2. Sélectionnez Expression dans la liste déroulante, entrez l’expression conditionnelle suivante, puis appuyez sur Entrée.

    String.IsNullOrEmpty(name)
    

    Enter a conditional expression

    Chaque fois que le point d’arrêt est atteint, le débogueur appelle la méthode String.IsNullOrEmpty(name) et s’arrête sur cette ligne uniquement si l’appel de méthode retourne true.

    Au lieu d’une expression conditionnelle, vous pouvez spécifier un nombre d’accès, qui interrompt l’exécution du programme avant qu’une instruction ne soit exécutée un nombre spécifié de fois. Une autre option consiste à spécifier une condition de filtre, qui interrompt l’exécution du programme en fonction de tels attributs comme un identificateur de thread, un nom de processus ou un nom de thread.

  3. Démarrez le programme avec débogage en appuyant sur F5.

  4. Dans l’onglet Terminal, appuyez sur la touche Entrée lorsque vous êtes invité à entrer votre nom.

    Comme la condition que vous avez spécifiée (name ayant la valeur null ou String.Empty) a été satisfaite, l’exécution du programme s’arrête quand elle atteint le point d’arrêt et avant que la méthode Console.WriteLine s’exécute.

    La fenêtre Variables indique que la valeur de la name variable est "", ou String.Empty.

  5. Vérifiez que la valeur est une chaîne vide en entrant l’instruction suivante à l’invite de la console de débogage et en appuyant sur Entrée. Le résultat est true.

    name == String.Empty
    
  6. Sélectionnez le bouton Continuer dans la barre d’outils pour continuer l’exécution du programme.

  7. Sélectionnez l’onglet Terminal, puis appuyez sur une touche pour quitter le programme et arrêter le débogage.

  8. Effacez le point d’arrêt en cliquant sur le point dans la marge gauche de la fenêtre de code. Pour effacer un point d’arrêt, vous pouvez également appuyer sur F9 ou choisissez Exécuter> Basculer le point d’arrêt dans le menu pendant que la ligne de code est sélectionnée.

  9. Si vous recevez un avertissement indiquant que la condition de point d’arrêt sera perdue, sélectionnez Supprimer le point d’arrêt.

Pas à pas dans un programme

Visual Studio Code vous permet également de parcourir un programme ligne par ligne et de surveiller son exécution. En règle générale, on définit un point d’arrêt pour suivre le déroulement du programme sur une petite portion de son code. Comme ce programme est petit, vous pouvons exécuter pas à pas la totalité du programme.

  1. Définissez un point d’arrêt sur l’accolade ouvrante de la méthode Main.

  2. Appuyez sur F5 pour démarrer le débogage.

    Visual Studio Code met en surbrillance la ligne de point d’arrêt.

    À ce stade, la fenêtre Variables indique que le tableau args est vide et que name et currentDate ont les valeurs par défaut.

  3. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Step-Into button

    Visual Studio Code met en surbrillance la ligne suivante.

  4. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio Code exécute Console.WriteLine pour l’invite de noms et met en surbrillance la ligne d’exécution suivante. La ligne suivante est la ligne Console.ReadLine pour l’élément name. La fenêtre Variables n’est pas modifiée et l’onglet Terminal affiche l’invite « Quel est votre nom ? ».

  5. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio met en surbrillance l’affectation de variable name. La fenêtre Variables indique que name a toujours la valeur null.

  6. Répondez à l’invite en entrant une chaîne sous l’onglet Terminal et en appuyant sur Entrée.

    Il se peut que l’onglet Terminal n’affiche pas la chaîne que vous entrez pendant votre saisie, mais la méthode Console.ReadLine capture bien votre entrée.

  7. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio Code met en surbrillance l’affectation de variable currentDate. La fenêtre Variables affiche la valeur retournée par l’appel à la méthode Console.ReadLine. L’onglet Terminal affiche la chaîne que vous avez entrée à l’invite.

  8. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    La fenêtre Variables montre la valeur de la variable currentDate après l’attribution de la propriété DateTime.Now.

  9. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio Code appelle la méthode Console.WriteLine(String, Object, Object). La fenêtre de console affiche la chaîne mise en forme.

  10. Sélectionnez Exécuter>Pas à pas sortant ou appuyez sur Maj+F11.

    Step-Out button

  11. Sélectionnez l’onglet Terminal.

    Le terminal affiche « Appuyez sur une touche pour quitter... »

  12. Appuyez sur n’importe quelle touche pour quitter le programme.

Utiliser la configuration de build Release

Une fois que vous avez testé la version Debug de votre application, vous devez également compiler et tester la version Release. La version Release intègre des optimisations de compilateur susceptibles d’affecter le comportement d’une application. Par exemple, les optimisations du compilateur qui sont conçues pour améliorer les performances peuvent créer des conditions de concurrence critique dans les applications multithreads.

Pour générer et tester la version Release de votre application console, ouvrez le terminal et exécutez la commande suivante :

dotnet run --configuration Release

Ressources supplémentaires

Étapes suivantes

Dans ce tutoriel, vous avez utilisé des outils de débogage Visual Studio Code. Dans le tutoriel suivant, vous allez publier une version déployable de l’application.

Ce tutoriel présente les outils de débogage disponibles dans Visual Studio Code pour l’utilisation d’applications .NET.

Prérequis

Utiliser la configuration de build Debug

Debug et Release sont des configurations de build intégrées de NET. Vous utilisez la configuration de build Debug pour le débogage et la configuration Release pour la distribution finale de la version.

Dans la configuration Debug, un programme est compilé avec des informations de débogage relatives aux symboles et aucune optimisation. L'optimisation complique le débogage, étant donné que la relation entre le code source et les instructions générées est plus complexe. La configuration Release d’un programme ne contient pas d’informations de débogage relatives aux symboles et est entièrement optimisée.

Par défaut, les paramètres de lancement de Visual Studio Code utilisent la configuration de build Debug. Vous n’avez donc pas besoin d’en changer avant le débogage.

  1. Démarrez Visual Studio Code.

  2. Ouvrez le dossier du projet que vous avez créé dans Créer une application console .NET à l’aide de Visual Studio Code.

Définir un point d'arrêt

Un point d’arrêt interrompt temporairement l’exécution de l’application avant la ligne sur laquelle le point d’arrêt est exécuté.

  1. Ouvrez le fichier Program.cs.

  2. Définissez un point d’arrêt sur la ligne qui affiche le nom, la date et l’heure, en cliquant dans la marge gauche de la fenêtre de code. La marge gauche est à gauche des numéros de ligne. Pour définir un point d’arrêt, vous pouvez également appuyer sur F9 ou choisir Exécuter>Basculer le point d’arrêt dans le menu pendant que la ligne de code est sélectionnée.

    Visual Studio Code indique la ligne sur laquelle le point d’arrêt est défini en affichant un point rouge dans la marge gauche.

    Breakpoint set

Configurer l’entrée de terminal

Le point d’arrêt se trouve après un appel de méthode Console.ReadLine. La console de débogage n’accepte pas d’entrée de terminal pour un programme en cours d’exécution. Pour gérer l’entrée de terminal pendant le débogage, vous pouvez utiliser le terminal intégré (l’une des fenêtres Visual Studio Code) ou un terminal externe. Pour ce tutoriel, vous utilisez le terminal intégré.

  1. Le dossier du projet contient un dossier .vscode. Ouvrez le fichier launch.json qui se trouve dans le dossier .vscode.

  2. Dans launch.json, modifiez le paramètre console de internalConsole à integratedTerminal :

    "console": "integratedTerminal",
    
  3. Enregistrez vos modifications.

Démarrer le débogage

  1. Ouvrez la vue Débogage en sélectionnant l’icône Débogage dans le menu de gauche.

    Open the Debug tab in Visual Studio Code

  2. Sélectionnez la flèche verte en haut du volet, en regard de .NET Core Launch (console). Pour démarrer le programme en mode Debug, vous pouvez également appuyer sur F5 ou choisir Exécuter>Démarrer le débogage dans le menu.

    Start debugging

  3. Sélectionnez l’onglet Terminal pour afficher l’invite « Quel est votre nom ? » que le programme affiche avant d’attendre une réponse.

    Select the Terminal tab

  4. Entrez une chaîne dans la fenêtre Terminal en réponse à l’invite demandant d’indiquer un nom, puis appuyez sur Entrée.

    L’exécution du programme s’arrête lorsqu’il atteint le point d’arrêt et avant l’exécution de la méthode Console.WriteLine. La section Variables locales de la fenêtre Variables affiche les valeurs des variables définies dans la méthode en cours d’exécution.

    Breakpoint hit, showing Locals

Utiliser la console de débogage

La fenêtre Console de débogage vous permet d’interagir avec l’application que vous déboguez. Vous pouvez modifier la valeur des variables pour voir comment elles affectent votre programme.

  1. Sélectionnez l’onglet Console de débogage.

  2. Entrez name = "Gracie" à l’invite en bas de la fenêtre Console de débogage, puis appuyez sur la touche Entrée.

    Change variable values

  3. Entrez currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() en bas de la fenêtre Console de débogage, puis appuyez sur la touche Entrée.

    La fenêtre Variables affiche les nouvelles valeurs des variables currentDate et name.

  4. Poursuivez l’exécution du programme en sélectionnant le bouton Continuer dans la barre d’outils. Une autre façon de continuer consiste à appuyer sur F5.

    Continue debugging

  5. Sélectionnez à nouveau l’onglet Terminal.

    Les valeurs affichées dans la fenêtre de console correspondent aux modifications que vous avez apportées dans la fenêtre de débogage.

    Terminal showing the entered values

  6. Appuyez sur une touche pour quitter l’application et arrêter le débogage.

Définir un point d'arrêt conditionnel

Le programme affiche la chaîne entrée par l’utilisateur. Que se passe-t-il si l’utilisateur n’entre rien ? Vous pouvez tester cela avec une fonctionnalité de débogage utile appelée point d’arrêt conditionnel.

  1. Cliquez avec le bouton droit (Ctrl-clic sur macOS) sur le point rouge qui représente le point d’arrêt. Dans le menu contextuel, sélectionnez Modifier le point d’arrêt pour ouvrir une boîte de dialogue qui vous permet d’entrer une expression conditionnelle.

    Breakpoint context menu

  2. Sélectionnez Expression dans la liste déroulante, entrez l’expression conditionnelle suivante, puis appuyez sur Entrée.

    String.IsNullOrEmpty(name)
    

    Enter a conditional expression

    Chaque fois que le point d’arrêt est atteint, le débogueur appelle la méthode String.IsNullOrEmpty(name) et s’arrête sur cette ligne uniquement si l’appel de méthode retourne true.

    Au lieu d’une expression conditionnelle, vous pouvez spécifier un nombre d’accès, qui interrompt l’exécution du programme avant qu’une instruction ne soit exécutée un nombre spécifié de fois. Une autre option consiste à spécifier une condition de filtre, qui interrompt l’exécution du programme en fonction de tels attributs comme un identificateur de thread, un nom de processus ou un nom de thread.

  3. Démarrez le programme avec débogage en appuyant sur F5.

  4. Dans l’onglet Terminal, appuyez sur la touche Entrée lorsque vous êtes invité à entrer votre nom.

    Comme la condition que vous avez spécifiée (name ayant la valeur null ou String.Empty) a été satisfaite, l’exécution du programme s’arrête quand elle atteint le point d’arrêt et avant que la méthode Console.WriteLine s’exécute.

    La fenêtre Variables indique que la valeur de la name variable est "", ou String.Empty.

  5. Vérifiez que la valeur est une chaîne vide en entrant l’instruction suivante à l’invite de la console de débogage et en appuyant sur Entrée. Le résultat est true.

    name == String.Empty
    
  6. Sélectionnez le bouton Continuer dans la barre d’outils pour continuer l’exécution du programme.

  7. Sélectionnez l’onglet Terminal, puis appuyez sur une touche pour quitter le programme et arrêter le débogage.

  8. Effacez le point d’arrêt en cliquant sur le point dans la marge gauche de la fenêtre de code. Pour effacer un point d’arrêt, vous pouvez également appuyer sur F9 ou choisissez Exécuter> Basculer le point d’arrêt dans le menu pendant que la ligne de code est sélectionnée.

  9. Si vous recevez un avertissement indiquant que la condition de point d’arrêt sera perdue, sélectionnez Supprimer le point d’arrêt.

Pas à pas dans un programme

Visual Studio Code vous permet également de parcourir un programme ligne par ligne et de surveiller son exécution. En règle générale, on définit un point d’arrêt pour suivre le déroulement du programme sur une petite portion de son code. Comme ce programme est petit, vous pouvons exécuter pas à pas la totalité du programme.

  1. Définissez un point d’arrêt sur l’accolade ouvrante de la méthode Main.

  2. Appuyez sur F5 pour démarrer le débogage.

    Visual Studio Code met en surbrillance la ligne de point d’arrêt.

    À ce stade, la fenêtre Variables indique que le tableau args est vide et que name et currentDate ont les valeurs par défaut.

  3. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Step-Into button

    Visual Studio Code met en surbrillance la ligne suivante.

  4. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio Code exécute Console.WriteLine pour l’invite de noms et met en surbrillance la ligne d’exécution suivante. La ligne suivante est la ligne Console.ReadLine pour l’élément name. La fenêtre Variables n’est pas modifiée et l’onglet Terminal affiche l’invite « Quel est votre nom ? ».

  5. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio met en surbrillance l’affectation de variable name. La fenêtre Variables indique que name a toujours la valeur null.

  6. Répondez à l’invite en entrant une chaîne sous l’onglet Terminal et en appuyant sur Entrée.

    Il se peut que l’onglet Terminal n’affiche pas la chaîne que vous entrez pendant votre saisie, mais la méthode Console.ReadLine capture bien votre entrée.

  7. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio Code met en surbrillance l’affectation de variable currentDate. La fenêtre Variables affiche la valeur retournée par l’appel à la méthode Console.ReadLine. L’onglet Terminal affiche la chaîne que vous avez entrée à l’invite.

  8. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    La fenêtre Variables montre la valeur de la variable currentDate après l’attribution de la propriété DateTime.Now.

  9. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio Code appelle la méthode Console.WriteLine(String, Object, Object). La fenêtre de console affiche la chaîne mise en forme.

  10. Sélectionnez Exécuter>Pas à pas sortant ou appuyez sur Maj+F11.

    Step-Out button

  11. Sélectionnez l’onglet Terminal.

    Le terminal affiche « Appuyez sur une touche pour quitter... »

  12. Appuyez sur n’importe quelle touche pour quitter le programme.

Utiliser la configuration de build Release

Une fois que vous avez testé la version Debug de votre application, vous devez également compiler et tester la version Release. La version Release intègre des optimisations de compilateur susceptibles d’affecter le comportement d’une application. Par exemple, les optimisations du compilateur qui sont conçues pour améliorer les performances peuvent créer des conditions de concurrence critique dans les applications multithreads.

Pour générer et tester la version Release de votre application console, ouvrez le terminal et exécutez la commande suivante :

dotnet run --configuration Release

Ressources supplémentaires

Étapes suivantes

Dans ce tutoriel, vous avez utilisé des outils de débogage Visual Studio Code. Dans le tutoriel suivant, vous allez publier une version déployable de l’application.

Ce tutoriel présente les outils de débogage disponibles dans Visual Studio Code pour l’utilisation d’applications .NET.

Prérequis

Utiliser la configuration de build Debug

Debug et Release sont des configurations de build intégrées de NET. Vous utilisez la configuration de build Debug pour le débogage et la configuration Release pour la distribution finale de la version.

Dans la configuration Debug, un programme est compilé avec des informations de débogage relatives aux symboles et aucune optimisation. L'optimisation complique le débogage, étant donné que la relation entre le code source et les instructions générées est plus complexe. La configuration Release d’un programme ne contient pas d’informations de débogage relatives aux symboles et est entièrement optimisée.

Par défaut, les paramètres de lancement de Visual Studio Code utilisent la configuration de build Debug. Vous n’avez donc pas besoin d’en changer avant le débogage.

  1. Démarrez Visual Studio Code.

  2. Ouvrez le dossier du projet que vous avez créé dans Créer une application console .NET à l’aide de Visual Studio Code.

Définir un point d'arrêt

Un point d’arrêt interrompt temporairement l’exécution de l’application avant la ligne sur laquelle le point d’arrêt est exécuté.

  1. Ouvrez le fichier Program.cs.

  2. Définissez un point d’arrêt sur la ligne qui affiche le nom, la date et l’heure, en cliquant dans la marge gauche de la fenêtre de code. La marge gauche est à gauche des numéros de ligne. Pour définir un point d’arrêt, vous pouvez également appuyer sur F9 ou choisir Exécuter>Basculer le point d’arrêt dans le menu pendant que la ligne de code est sélectionnée.

    Visual Studio Code indique la ligne sur laquelle le point d’arrêt est défini en affichant un point rouge dans la marge gauche.

    Breakpoint set

Configurer l’entrée de terminal

Le point d’arrêt se trouve après un appel de méthode Console.ReadLine. La console de débogage n’accepte pas d’entrée de terminal pour un programme en cours d’exécution. Pour gérer l’entrée de terminal pendant le débogage, vous pouvez utiliser le terminal intégré (l’une des fenêtres Visual Studio Code) ou un terminal externe. Pour ce tutoriel, vous utilisez le terminal intégré.

  1. Ouvrez .vscode/launch.json.

  2. Modifiez le console paramètre en remplaçant integratedTerminal par internalConsole :

    "console": "integratedTerminal",
    
  3. Enregistrez vos modifications.

Démarrer le débogage

  1. Ouvrez la vue Débogage en sélectionnant l’icône Débogage dans le menu de gauche.

    Open the Debug tab in Visual Studio Code

  2. Sélectionnez la flèche verte en haut du volet, en regard de .NET Core Launch (console). Pour démarrer le programme en mode Debug, vous pouvez également appuyer sur F5 ou choisir Exécuter>Démarrer le débogage dans le menu.

    Start debugging

  3. Sélectionnez l’onglet Terminal pour afficher l’invite « Quel est votre nom ? » que le programme affiche avant d’attendre une réponse.

    Select the Terminal tab

  4. Entrez une chaîne dans la fenêtre Terminal en réponse à l’invite demandant d’indiquer un nom, puis appuyez sur Entrée.

    L’exécution du programme s’arrête lorsqu’il atteint le point d’arrêt et avant l’exécution de la méthode Console.WriteLine. La section Variables locales de la fenêtre Variables affiche les valeurs des variables définies dans la méthode en cours d’exécution.

    Breakpoint hit, showing Locals

Utiliser la console de débogage

La fenêtre Console de débogage vous permet d’interagir avec l’application que vous déboguez. Vous pouvez modifier la valeur des variables pour voir comment elles affectent votre programme.

  1. Sélectionnez l’onglet Console de débogage.

  2. Entrez name = "Gracie" à l’invite en bas de la fenêtre Console de débogage, puis appuyez sur la touche Entrée.

    Change variable values

  3. Entrez currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() en bas de la fenêtre Console de débogage, puis appuyez sur la touche Entrée.

    La fenêtre Variables affiche les nouvelles valeurs des variables currentDate et name.

  4. Poursuivez l’exécution du programme en sélectionnant le bouton Continuer dans la barre d’outils. Une autre façon de continuer consiste à appuyer sur F5.

    Continue debugging

  5. Sélectionnez à nouveau l’onglet Terminal.

    Les valeurs affichées dans la fenêtre de console correspondent aux modifications que vous avez apportées dans la fenêtre de débogage.

    Terminal showing the entered values

  6. Appuyez sur une touche pour quitter l’application et arrêter le débogage.

Définir un point d'arrêt conditionnel

Le programme affiche la chaîne entrée par l’utilisateur. Que se passe-t-il si l’utilisateur n’entre rien ? Vous pouvez tester cela avec une fonctionnalité de débogage utile appelée point d’arrêt conditionnel.

  1. Cliquez avec le bouton droit (Ctrl-clic sur macOS) sur le point rouge qui représente le point d’arrêt. Dans le menu contextuel, sélectionnez Modifier le point d’arrêt pour ouvrir une boîte de dialogue qui vous permet d’entrer une expression conditionnelle.

    Breakpoint context menu

  2. Sélectionnez Expression dans la liste déroulante, entrez l’expression conditionnelle suivante, puis appuyez sur Entrée.

    String.IsNullOrEmpty(name)
    

    Enter a conditional expression

    Chaque fois que le point d’arrêt est atteint, le débogueur appelle la méthode String.IsNullOrEmpty(name) et s’arrête sur cette ligne uniquement si l’appel de méthode retourne true.

    Au lieu d’une expression conditionnelle, vous pouvez spécifier un nombre d’accès, qui interrompt l’exécution du programme avant qu’une instruction ne soit exécutée un nombre spécifié de fois. Une autre option consiste à spécifier une condition de filtre, qui interrompt l’exécution du programme en fonction de tels attributs comme un identificateur de thread, un nom de processus ou un nom de thread.

  3. Démarrez le programme avec débogage en appuyant sur F5.

  4. Dans l’onglet Terminal, appuyez sur la touche Entrée lorsque vous êtes invité à entrer votre nom.

    Comme la condition que vous avez spécifiée (name ayant la valeur null ou String.Empty) a été satisfaite, l’exécution du programme s’arrête quand elle atteint le point d’arrêt et avant que la méthode Console.WriteLine s’exécute.

    La fenêtre Variables indique que la valeur de la name variable est "", ou String.Empty.

  5. Vérifiez que la valeur est une chaîne vide en entrant l’instruction suivante à l’invite de la console de débogage et en appuyant sur Entrée. Le résultat est true.

    name == String.Empty
    
  6. Sélectionnez le bouton Continuer dans la barre d’outils pour continuer l’exécution du programme.

  7. Sélectionnez l’onglet Terminal, puis appuyez sur une touche pour quitter le programme et arrêter le débogage.

  8. Effacez le point d’arrêt en cliquant sur le point dans la marge gauche de la fenêtre de code. Pour effacer un point d’arrêt, vous pouvez également appuyer sur F9 ou choisissez Exécuter> Basculer le point d’arrêt dans le menu pendant que la ligne de code est sélectionnée.

  9. Si vous recevez un avertissement indiquant que la condition de point d’arrêt sera perdue, sélectionnez Supprimer le point d’arrêt.

Pas à pas dans un programme

Visual Studio Code vous permet également de parcourir un programme ligne par ligne et de surveiller son exécution. En règle générale, on définit un point d’arrêt pour suivre le déroulement du programme sur une petite portion de son code. Comme ce programme est petit, vous pouvons exécuter pas à pas la totalité du programme.

  1. Définissez un point d’arrêt sur l’accolade ouvrante de la méthode Main.

  2. Appuyez sur F5 pour démarrer le débogage.

    Visual Studio Code met en surbrillance la ligne de point d’arrêt.

    À ce stade, la fenêtre Variables indique que le tableau args est vide et que name et currentDate ont les valeurs par défaut.

  3. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Step-Into button

    Visual Studio Code met en surbrillance la ligne suivante.

  4. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio Code exécute Console.WriteLine pour l’invite de noms et met en surbrillance la ligne d’exécution suivante. La ligne suivante est la ligne Console.ReadLine pour l’élément name. La fenêtre Variables n’est pas modifiée et l’onglet Terminal affiche l’invite « Quel est votre nom ? ».

  5. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio met en surbrillance l’affectation de variable name. La fenêtre Variables est effacée.

  6. Répondez à l’invite en entrant une chaîne sous l’onglet Terminal et en appuyant sur Entrée.

    Il se peut que l’onglet Terminal n’affiche pas la chaîne que vous entrez pendant votre saisie, mais la méthode Console.ReadLine capture bien votre entrée.

    La fenêtre Variables affiche la valeur retournée par l’appel à la méthode Console.ReadLine.

  7. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio Code met en surbrillance l’affectation de variable currentDate. L’onglet Terminal affiche la chaîne que vous avez entrée à l’invite.

  8. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    La fenêtre Variables montre la valeur de la variable currentDate après l’attribution de la propriété DateTime.Now.

  9. Sélectionnez Exécuter>Effectuer un pas à pas détaillé ou appuyez sur F11.

    Visual Studio Code appelle la méthode Console.WriteLine(String, Object, Object). La fenêtre de console affiche la chaîne mise en forme.

  10. Sélectionnez Exécuter>Pas à pas sortant ou appuyez sur Maj+F11.

    Step-Out button

  11. Sélectionnez l’onglet Terminal.

    Le terminal affiche « Appuyez sur une touche pour quitter... »

  12. Appuyez sur n’importe quelle touche pour quitter le programme.

Utiliser la configuration de build Release

Une fois que vous avez testé la version Debug de votre application, vous devez également compiler et tester la version Release. La version Release intègre des optimisations de compilateur susceptibles d’affecter le comportement d’une application. Par exemple, les optimisations du compilateur qui sont conçues pour améliorer les performances peuvent créer des conditions de concurrence critique dans les applications multithreads.

Pour générer et tester la version Release de votre application console, ouvrez le terminal et exécutez la commande suivante :

dotnet run --configuration Release

Ressources supplémentaires

Étapes suivantes

Dans ce tutoriel, vous avez utilisé des outils de débogage Visual Studio Code. Dans le tutoriel suivant, vous allez publier une version déployable de l’application.