Déboguer votre application avec GitHub Copilot dans Visual Studio

Dans cet article, vous apprendrez à déboguer plus efficacement en utilisant GitHub Copilot. Copilot peut fournir des corrections de code ainsi qu'une analyse et des explications approfondies sur le fonctionnement du code. Il vous aide à proposer des corrections de bogues et explique des éléments tels que les exceptions. Copilot comprend les piles d’appels, les cadres, les noms de variables et les valeurs. Ainsi, vous pouvez interagir avec l'IA sensibilisée au débogage pour poser des questions détaillées sur votre code et sur les problèmes de débogage en général.

En outre, Copilot fournit une aide plus précise pour certains scénarios ciblés, tels que les suivants :

  • Exceptions
  • Variables
  • Interblocages
  • Actions rapides (ampoule)

Pour obtenir l'assistance de l'IA pendant que vous déboguez dans ces scénarios, recherchez le bouton Demander à Copilot Capture d’écran du bouton Demander à Copilot.. Dans ces scénarios, Copilot connaît déjà le contexte de vos questions. Par exemple, il connaît la pile des appels actuelle, la ligne de code sur laquelle vous posez une question et le nom de l'exception (s'il y en a une), de sorte que vous n'avez pas besoin de fournir le contexte vous-même dans la discussion. Copilot fournit également des suggestions pour l’utilisation de points d’arrêt conditionnels et de points de trace.

Pour plus d’informations sur l’extension GitHub Copilot dans Visual Studio, consultez À propos de l’extension GitHub Copilot dans Visual Studio.

Prérequis

Pour commencer, vous avez besoin des éléments suivants :

Obtenir l'assistance de l'IA pour déboguer votre application.

L'exemple suivant montre comment obtenir l'aide de l'IA à l'aide de la vue Chat en ligne.

Remarque

Vous pouvez également obtenir de l'aide en utilisant la fenêtre de chat séparée en sélectionnantAffichage > GitHub Copilot Chat. Pour plus d'informations, consultez Qu'est-ce que l'extension GitHub Copilot Chat pour Visual Studio ?.

Démarrer une session de débogage

  1. Dans Visual Studio, créez une nouvelle application en ligne de commande C#.

    Dans la fenêtre de démarrage, choisissez Créer un projet. Saisissez console dans la zone de recherche, sélectionnez C# comme langage, puis choisissez Application en ligne de commande pour .NET. Choisissez Suivant. Saisissez un nom de projet comme ConsoleApp_Copilot, puis sélectionnez Suivant.

    Choisissez l’infrastructure cible recommandée ou .NET 8, puis sélectionnez Créer.

    Si vous ne voyez pas le modèle de projet Application console pour .NET, accédez à Outils>Obtenir les outils et fonctionnalités, qui ouvre Visual Studio Installer. Choisissez la charge de travail Développement .NET Desktop, puis choisissez Modifier.

    Visual Studio crée le projet de console, qui apparaît dans l’Explorateur de solutions dans le volet droit.

  2. Remplacez le code dans Program.cs par le code suivant :

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
        public static void Main(string[] args)
        {
            int value = Int32.Parse(args[0]);
            List<String> names = null;
            if (value > 0)
                names = new List<String>();
    
            names.Add("Major Major Major");
        }
    }
    
  3. Cliquez avec le bouton droit de la souris sur l'instruction suivante et choisissez Point d’arrêt>Insérer un point d’arrêt.

    int value = Int32.Parse(args[0]);
    
  4. Appuyez sur F5 ou sélectionnez Démarrer le débogage dans le menu Déboguer.

    L’application s’interrompt au point d’arrêt. La fenêtre Autos montre que la variable args a une valeur de string[0].

    Capture d’écran de la fenêtre Auto.

  5. Cliquez avec le bouton droit de la souris dans le code et choisissez Demander au copilote pour ouvrir la vue Chat en ligne.

    Conseil

    Vous pouvez également cliquer avec le bouton droit de la souris sur une variable dans la fenêtre Autos ou Locals, ou dans une astuce de données, et choisir Ask Copilot. Copilot reçoit ainsi le nom de la variable et le contexte, de sorte que vous n'avez pas besoin de fournir le contexte vous-même dans le chat.

  6. Tapez la question suivante dans la vue Chat en ligne :

    Why does the args variable have a value of string[0]?
    

    Capture d’écran de Copilot Chat en ligne.

    Lorsque vous appuyez sur Entrée, Copilot fournit une réponse basée sur sa compréhension de votre code. (Il se peut que vous obteniez une réponse différente de celle présentée ici).

    Capture d’écran de la question Copilot.

    Si Copilot a suggéré une correction pour votre code, il vous l'indique. Si ce n'est pas le cas, vous pouvez demander à Copilot de vous suggérer un code.

    Conseil

    Dans le chat intégré, utilisez le symbole # et sélectionnez dans la liste déroulante pour transmettre des informations spécifiques à Copilot tout en y faisant référence dans votre question. Par exemple, si vous sélectionnez une partie du code, puis tapez #, vous pouvez choisir cette sélection dans la liste déroulante #. Vous pouvez également utiliser le symbole # pour faire référence aux fonctions de l’IDE qui apparaissent dans la liste déroulante, telles que la fenêtre Locals.

  7. Dans cet exemple, faites défiler jusqu'à la fin de la réponse de Copilot et sélectionnez la question de suivi à la fin de la fenêtre de discussion en ligne, « Comment puis-je gérer l'incident lorsqu'aucun argument n'est transmis au programme ? »

    Capture d’écran de la question de suivi de Copilot.

    Copilot propose une correction de votre code.

    Capture d’écran de la correction proposée par Copilot.

    Si vous souhaitez appliquer la correction du code, sélectionnez Accepter.

  8. Choisissez Annuler pour continuer à apprendre d'autres fonctions de Copilot dans la section suivante.

Obtenir une l’aide de l’IA pour une exception

L’exemple simple suivant montre comment obtenir de l’aide de l’IA quand vous rencontrez une exception et comment mettre à jour rapidement votre code en fonction des correctifs suggérés par l’IA.

Démarrer une session de débogage

  • Lorsque vous êtes en pause dans le débogueur et que vous utilisez la même application, appuyez sur F11 ou sur Debug>Step Into pour exécuter l'instruction en cours.

    Une exception IndexOutOfRangeException se produit et l’application s’interrompt, montrant l’exception.

    Pour obtenir de l’aide de l’IA pour l’exception, passez à la section suivante.

Demander de l’aide à l’IA

  1. Une fois l’application mise en pause sur l’exception, sélectionnez le bouton Demander à Copilot.

    Capture d’écran du bouton Demander à Copilot dans une exception.

    Si elle n’est pas déjà ouverte, la fenêtre Conversation Copilot apparaît, et donne une évaluation de l’erreur et de la raison pour laquelle elle s’est produite. Dans cet exemple, Copilot identifie un correctif suggéré du code, un bouton pour copier le code et un bouton Aperçu pour le correctif du code.

    Si vous avez des questions sur l’exception, posez-les dans la zone de texte Demander à Copilot.

  2. Sélectionnez le bouton Aperçu.

    Capture d’écran du bouton Aperçu dans la fenêtre de conversation Copilot.

    Visual Studio montre un aperçu du code avec le correctif suggéré.

  3. Passez en revue la correctif suggérée et choisissez Accepter pour appliquer la suggestion de code.

    Capture d’écran du de l’aperçu de code dans Visual Studio.

  4. Redémarrez le débogueur.

    Cette fois, aucune exception ne se produit. Elle a été corrigée.

Obtenir de l’aide de l’IA pour les points d’arrêt conditionnels et les points de trace

Copilot vous propose des suggestions pour les points d’arrêt conditionnels et les points de trace spécifiques à votre code.

Dans cet exemple, nous affichons les suggestions de l’IA pour un point d’arrêt conditionnel. Pour les points de trace, l’assistance IA fonctionne de la même façon.

  1. Supprimez le point d’arrêt actuel en cliquant dessus ou en cliquant avec le bouton droit, puis choisissez Supprimer le point d’arrêt.

  2. Remplacez la ligne de code suivante :

    names.Add("Major Major Major");
    

    par le code :

    // names.Add("Major Major Major");
    foreach (var item in args)
    {
       names.Add("Name: " + item);
    }
    
  3. À gauche de l’instruction names.Add("Name: " + item), cliquez avec le bouton droit dans la ligne de séparation et choisissez Insérer un point d’arrêt conditionnel.

  4. Sélectionnez le champ d’expression et Copilot commence à travailler sur des suggestions.

    Capture d’écran de Copilot travaillant sur des suggestions de point d’arrêt conditionnel.

  5. Lorsque les suggestions apparaissent, choisissez l’une d’entre elles, comme celle-ci item == "John". Modifiez la suggestion pour que le nom soit Fred.

    Capture d’écran de la suggestion Copilot pour le point d’arrêt conditionnel.

  6. Pour tester l’expression conditionnelle :

    1. Cliquez avec le bouton droit de la souris sur le projet ConsoleApp_Copilot dans l’explorateur de solutions et choisissez Propriétés.

    2. Sélectionnez Débogage>Général>Ouvrir l’IU de profils de lancement de débogage.

    3. Dans le champ Arguments de ligne de commande, saisissez 5 Fred Joe, sur trois lignes distinctes.

      Capture d’écran de la saisie d’arguments de ligne de commande pour le projet.

    4. Redémarrez le débogueur.

    Lorsque le débogueur s’interrompt au point d’arrêt, vérifiez la valeur de item et vérifiez que la valeur actuelle soit bien Fred.

Obtenir de l’aide sur l’IA dans le visualiseur tabulaire IEnumerable

Pour obtenir de l’aide sur l’IA pour le visualiseur tabulaire IEnumerable, consultez Modifier l’expression du visualiseur.

Obtenir de l’aide de l’IA pour des insights automatiques

En plus de l’assistance au débogage interactive, Copilot fournit des informations détaillées dans les insights automatiques sur l’utilisation du processeur. Il fournit des informations et des aperçus liés à un ensemble d'aperçus spécifiques sur les performances. Avec Copilot, posez des questions sur les fonctions sur les chemins chauds identifiés dans votre code, ce qui peut vous aider à produire du code plus efficace ou économique.

Le bouton Ask Copilot apparaît même si aucun aperçu spécifique de la performance n'est identifié. Sélectionnez Ask Copilot pour apprendre de Copilot et commencer à poser des questions.

Animation de l’utilisation de Copilot avec utilisation du processeur.