Partage via


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 exceptions, ainsi que pour tous ceux décrits dans les scénarios améliorés par l'IA pour le débogage. Dans la plupart de ces scénarios, recherchez le bouton Demander à Copilot. Capture d’écran du bouton Demander à Copilot. Bouton. Dans ces scénarios, Copilot connaît déjà le contexte de vos questions.

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 :

Déboguer à l’aide de Copilot

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.

Déboguer une exception avec Copilot

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 des suggestions avec des points d’arrêt conditionnels et des 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.

Scénarios améliorés par l’IA

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 ceux décrits dans le tableau suivant.

Fonctionnalité ou scénario Lien
Exceptions Consultez Déboguer une exception avec Copilot dans cet article. L’aide concernant les exceptions inclut l’aide pour les erreurs de détection de blocage.
Variables Consultez Déboguer à l’aide de Copilot dans cet article.
Points d’arrêt conditionnels et points de trace Consultez Obtenir des suggestions avec des points d’arrêt conditionnels et des points de trace dans cet article.
Actions rapides (ampoule) Consultez Obtenez l’aide de l’IA avec les actions rapides.
Visualiseur tabulaire IEnumerable Consultez Modifier l’expression du visualiseur.
Valeurs de retour inline Consultez Afficher les valeurs de retour des appels de méthode.
Descriptions des threads de synthèse Consultez Vue des threads (Piles parallèles).
Aperçus automatiques pour le profilage Consultez Obtenez une assistance de l'intelligence artificielle avec les insights automatiques.

Dans la plupart de ces scénarios, vous bénéficiez d’une assistance ciblée à l’aide du bouton Demander copilotcapture d’écran du bouton Demander copilot. bouton. 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.