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

Important

Microsoft a annoncé la mise hors service de Visual Studio pour Mac. Visual Studio pour Mac ne sera plus pris en charge à compter du 31 août 2024. Il existe des alternatives :

Pour plus d’informations, consultez l’annonce de mise hors service de Visual Studio pour Mac.

Ce tutoriel présente les outils de débogage disponibles dans Visual Studio pour Mac.

Prérequis

Utiliser la configuration de build Debug

Debug et Release sont les configurations de build intégrées de Visual Studio. 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, Visual Studio pour Mac utilise la configuration de build Debug. Vous n’avez donc pas besoin de la modifier avant le débogage.

  1. Démarrez Visual Studio pour Mac.

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

    La configuration de build actuelle s’affiche sur la barre d’outils. L’image de barre d’outils suivante montre que Visual Studio est configuré pour compiler la version Debug de l’application :

    Visual Studio toolbar with debug highlighted

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. Définissez un point d’arrêt sur la ligne qui affiche le nom, la date et l’heure. Pour ce faire, placez le curseur dans la ligne de code et appuyez sur \ (commande+\). Vous pouvez également définir un point d’arrêt en sélectionnant Debug>Basculer le point d’arrêt dans le menu.

    Visual Studio affiche la ligne sur laquelle le point d’arrêt est défini en la mettant en surbrillance et en affichant un point rouge dans la marge de gauche.

    Visual Studio Program window with breakpoint set

  2. Appuyez sur (commande+entrée) pour démarrer le programme en mode de débogage. Pour démarrer le débogage, vous pouvez également choisir Déboguer>Démarrer le débogage à partir du menu.

  3. Entrez une chaîne dans la fenêtre de terminal lorsque le programme vous invite à entrer un nom, puis appuyez sur Entrée.

  4. L’exécution du programme s’arrête lorsqu’il atteint le point d’arrêt, avant l’exécution de la méthode Console.WriteLine.

    Screenshot of a breakpoint in Visual Studio

Utiliser la fenêtre Exécution

La fenêtre Exécution vous permet d’interagir avec l’application que vous déboguez. Vous pouvez modifier de manière interactive la valeur des variables pour voir comment elle affecte votre programme.

  1. Si la fenêtre Exécution n’est pas visible, affichez-la en choisissant Débogage>Fenêtres Windows>Exécution.

  2. Entrez name = "Gracie" dans la fenêtre Exécution et appuyez sur Entrée.

  3. Entrez currentDate = currentDate.AddDays(1) dans la fenêtre Exécution et appuyez sur Entrée.

    La fenêtre Exécution affiche la nouvelle valeur de la variable de chaîne et les propriétés de la valeur DateTime.

    Immediate Window in Visual Studio

    La fenêtre Variables locales affiche les valeurs des variables définies dans la méthode en cours d’exécution. Les valeurs des variables que vous venez de modifier sont mises à jour dans la fenêtre Variables locales.

    Locals Window in Visual Studio

  4. Appuyez sur (commande+entrée) pour continuer le débogage.

    Les valeurs affichées dans le terminal correspondent aux modifications que vous avez apportées dans la fenêtre Exécution.

    Si le terminal n’est pas visible, sélectionnez Terminal - HelloWorld dans la barre de navigation inférieure.

    Terminal - Hello World in bottom navigation bar

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

  6. Fermez la fenêtre de terminal.

Définir un point d'arrêt conditionnel

Le programme affiche une 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. Appuyez sur ctrl et cliquez sur le point rouge qui représente le point d’arrêt. Dans le menu contextuel, sélectionnez Modifier le point d’arrêt.

  2. Dans la boîte de dialogue Modifier le point d’arrêt, entrez le code suivant dans le champ qui suit Et la condition suivante est vraie, puis sélectionnez Appliquer.

    String.IsNullOrEmpty(name)
    

    Editor showing breakpoint settings panel

    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.

  3. Appuyez sur (commande+entrée) pour démarrer le débogage.

  4. Dans la fenêtre de terminal, appuyez sur Entrée lorsque vous êtes invité à entrer votre nom.

    Comme 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.

  5. Sélectionnez la fenêtre Variables locales, qui montre les valeurs des variables locales pour la méthode en cours d’exécution. Dans ce cas, Main est la méthode en cours d’exécution. Notez que la valeur de la variable name est "", à savoir String.Empty.

  6. Vous pouvez également voir que la valeur est une chaîne vide en entrant le nom de la variable name dans la fenêtre Exécution et en appuyant sur Entrée.

    Immediate window showing name is an empty string

  7. Appuyez sur (commande+entrée) pour continuer le débogage.

  8. Dans la fenêtre de terminal, appuyez sur n’importe quelle touche pour quitter le programme.

  9. Fermez la fenêtre de terminal.

  10. Effacez le point d’arrêt en cliquant sur le point rouge dans la marge gauche de la fenêtre de code. Pour effacer un point d’arrêt, vous pouvez également choisir Déboguer > Basculer le point d’arrêt lorsque la ligne de code est sélectionnée.

Pas à pas dans un programme

Visual Studio 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. Ce programme étant petit, vous pouvons exécuter pas à pas la totalité du programme.

  1. Définissez un point d’arrêt sur l’accolade qui marque le début de la méthode Main (appuyez sur commande+\).

  2. Appuyez sur (commande+entrée) pour démarrer le débogage.

    Visual Studio s’arrête sur la ligne avec le point d’arrêt.

  3. Appuyez sur I (maj+commande+I) ou sélectionnez Déboguer>Pas à pas détaillé pour avancer d’une ligne.

    Visual Studio met en surbrillance et affiche une flèche en regard de la ligne suivante de l’exécution.

    Visual Studio step into method

    À ce stade, la fenêtre Variables locales indique que le tableau args est vide et que name et currentDate ont des valeurs par défaut. En outre, Visual Studio a ouvert une fenêtre de terminal vide.

  4. Appuyez sur I (maj+commande+I).

    Visual Studio met en surbrillance l’instruction qui inclut l’attribution de la variable name. La fenêtre Variables locales montre que name est null, et la fenêtre de terminal affiche la chaîne « Quel est votre nom ? ».

  5. Répondez à l’invite en entrant une chaîne dans la fenêtre de console et en appuyant sur Entrée.

  6. Appuyez sur I (maj+commande+I).

    Visual Studio met en surbrillance l’instruction qui inclut l’attribution de la variable currentDate. La fenêtre Variables locales affiche la valeur retournée par l’appel à la méthode Console.ReadLine. Le terminal affiche la chaîne que vous avez entrée à l’invite.

  7. Appuyez sur I (maj+commande+I).

    La fenêtre Variables locales affiche la valeur de la variable currentDate après l’attribution de la propriété DateTime.Now. Le terminal n’est pas modifié.

  8. Appuyez sur I (maj+commande+I).

    Visual Studio appelle la méthode Console.WriteLine(String, Object, Object). Le terminal affiche la chaîne mise en forme.

  9. Appuyez sur U (maj+commande+U) ou sélectionnez Exécuter>Pas à pas sortant.

    Le terminal affiche un message et attend que vous appuyiez sur une touche.

  10. 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 du compilateur qui peuvent affecter négativement 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 l’application console, procédez comme suit :

  1. Modifiez la configuration de build dans la barre d’outils de Debug à Release.

    default Visual Studio toolbar with release highlighted

  2. Appuyez sur (option+commande+entrée) pour une exécution sans débogage.

Étapes suivantes

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