Exercice - Définir des points d’arrêt

Terminé

Les points d’arrêt sont utilisés pendant l’exécution de l’interruption du processus de débogage. Cela vous permet de suivre les variables et d’examiner la séquence dans laquelle votre code est exécuté. Les points d’arrêt sont un excellent moyen de démarrer votre processus de débogage.

Définir un point d’arrêt

Plus haut dans ce module, vous avez effectué un exercice dans lequel vous avez exécuté une application dans le débogueur. L’application a affiché les « messages de salutation » dans le panneau CONSOLE DEBUG. À la fin de l’exercice, vous avez remarqué que le code répète le message d’accueil d’Andrew de manière inattendue.

Dans cet exercice, vous allez utiliser un point d’arrêt pour vous aider à identifier le problème.

  1. Vérifiez que votre fichier Program.cs contient l’exemple de code suivant :

    /* 
    This code uses a names array and corresponding methods to display
    greeting messages
    */
    
    string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" };
    
    string messageText = "";
    
    foreach (string name in names)
    {
        if (name == "Sophia")
            messageText = SophiaMessage();
        else if (name == "Andrew")
            messageText = AndrewMessage();
        else if (name == "AllGreetings")
            messageText = SophiaMessage();
            messageText = messageText + "\n\r" + AndrewMessage();
    
        Console.WriteLine(messageText + "\n\r");
    }
    
    bool pauseCode = true;
    while (pauseCode == true);
    
    static string SophiaMessage()
    {
        return "Hello, my name is Sophia.";
    }
    
    static string AndrewMessage()
    {
        return "Hi, my name is Andrew. Good to meet you.";
    }
    
  2. Utilisez les outils du débogueur Visual Studio Code pour définir un point d’arrêt sur la première ligne de code à l’intérieur de la foreach boucle.

    Capture d’écran montrant un point d’arrêt dans le code.

    Conseil / Astuce

    Une option simple pour activer/désactiver un point d’arrêt consiste à sélectionner (clic gauche) la zone à gauche du numéro de ligne. Les points d’arrêt peuvent également être définis à l’aide du Run menu et à l’aide de raccourcis clavier.

  3. Dans le menu Exécuter, sélectionnez Démarrer le débogage.

  4. Notez que l’exécution du code s’interrompt au point d’arrêt et que la ligne de code actuelle est mise en surbrillance dans l’éditeur.

    Capture d’écran montrant l’exécution du code arrêtée à un point d’arrêt.

  5. Dans la barre d’outils Contrôles de débogage, sélectionnez Effectuer un pas à pas détaillé.

    Vous pouvez pointer le pointeur de la souris sur les boutons de la barre d’outils des contrôles de débogage pour afficher les étiquettes des boutons.

  6. Notez que l’exécution du code avance vers la ligne de code suivante et s’interrompt :

    messageText = SophiaMessage();
    

    Cette ligne de code affecte la valeur de retour de la SophiaMessage méthode à la variable messageTextde chaîne.

  7. Prenez un moment pour réfléchir à pourquoi la sélection de Step Into a produit ce résultat.

    • Le bouton Entrer est utilisé pour passer à l’instruction exécutable suivante.
    • Étant donné que le premier élément du tableau names est Sophia et que l’instruction if vérifie pour le nom Sophia, l’expression évalue à true et l’exécution du code se déplace dans le bloc de code de l’instruction if.
  8. Dans la barre d’outils Contrôles de débogage, sélectionnez Effectuer un pas à pas détaillé.

  9. Notez que l'exécution du code progresse jusqu'à la méthode SophiaMessage et s'interrompt.

    Le bouton Effectuer un pas à pas détaillé a avancé jusqu’à la ligne de code exécutable suivante. La ligne de code exécutable suivante n’est pas le numéro de ligne suivant dans le fichier, il s’agit de l’instruction suivante dans le chemin d’exécution. Dans ce cas, l’instruction exécutable suivante est le point d’entrée de la SophiaMessage méthode.

  10. Dans la barre d’outils Contrôles de débogage, sélectionnez Sortir.

  11. Notez que l’exécution du code retourne à la ligne de code qui a appelé la SophiaMessage méthode et s’interrompt.

  12. Prenez un moment pour prendre en compte la raison pour laquelle la sélection de Step Out a produit ce résultat.

    Dans une méthode, le bouton Step Out termine les lignes restantes de la méthode actuelle, puis retourne au contexte d’exécution qui a appelé la méthode.

  13. Dans la barre d’outils Contrôles de débogage, sélectionnez Effectuer un pas à pas détaillé.

  14. Notez que l’exécution du code avance vers la ligne de code suivante et s’interrompt :

    messageText = messageText + "\n\r" + AndrewMessage();
    
  15. Prenez un moment pour prendre en compte la raison pour laquelle l’exécution est avancée vers cette ligne de code.

    Bien que la mise en retrait du code implique que cette ligne de code fait partie du bloc de code de l’instruction else if , ce n’est pas le cas. L’utilisation d’accolades {} pour définir les blocs de code pour cette structure if - else if aurait permis d’éviter ce bogue. À mesure que le code est écrit, le message d’Andrew sera ajouté à messageText chaque fois que la boucle itère.

Vérifier vos mises à jour de code

Une fois que vous avez isolé un problème dans votre code, vous devez mettre à jour votre code, puis vérifier que le problème a été résolu.

  1. Dans la barre d’outils Contrôles de débogage, sélectionnez Arrêter.

  2. Prenez une minute pour corriger votre logique de code.

    Vous avez quelques options pour résoudre le problème identifié dans votre code. Par exemple:

    • Vous pouvez conserver les lignes de code existantes et ajouter des accolades {} à la structure if pour chaque bloc de code.

    • Vous pouvez fusionner les deux lignes de code qui suivent l’instruction finale else if , formant une instruction unique comme suit :

      else if (name == "AllGreetings")
          messageText = SophiaMessage() + "\n\r" + AndrewMessage();
      

    Dans les deux cas, votre code mis à jour doit inclure l’appel à AndrewMessage dans le bloc de code lors de name == "AllGreetings".

  3. Dans le menu Fichier , sélectionnez Enregistrer.

  4. Utilisez les outils de l’interface utilisateur du débogueur pour effacer le point d’arrêt que vous avez défini précédemment.

  5. Dans le menu Exécuter, sélectionnez Démarrer le débogage.

  6. Vérifiez que votre code produit désormais les résultats attendus.

    Hello, my name is Sophia.
    
    Hi, my name is Andrew. Good to meet you.
    
    Hello, my name is Sophia.
    Hi, my name is Andrew. Good to meet you.
    
  7. Dans la barre d’outils Contrôles de débogage, sélectionnez Arrêter.

Félicitations! Vous avez correctement utilisé le débogueur Visual Studio Code pour vous aider à isoler et corriger un problème logique.

Récapitulatif

Voici quelques points importants à retenir de cette unité :

  • Utilisez des points d’arrêt pour suspendre l’exécution du code pendant une session de débogage.
  • Utilisez Pas à pas détaillé à partir de la barre d’outils Contrôles de débogage pour observer la ligne de code exécutable suivante.
  • Utilisez Pas à pas sortant de la barre d’outils Contrôles de débogage pour passer à travers la méthode actuelle et revenir à la ligne de code qui a appelé la méthode.