Exercice - Exécuter du code dans l’environnement de débogage
L’interface utilisateur de Visual Studio Code permet aux développeurs d’exécuter leur code dans un environnement de débogage. La prise en charge du débogage est fournie par les extensions et pour les développeurs C#, la prise en charge du débogueur est fournie par la même extension que celle qui prend en charge le développement de code et IntelliSense.
Débogueur et interaction d’application
Un débogueur de code peut être utilisé pour suspendre et reprendre l’exécution du code, examiner l’état des variables et même modifier les valeurs affectées aux variables au moment de l’exécution. Vous vous demandez peut-être comment le débogueur peut-il contrôler et modifier une application en cours d’exécution ? La réponse courte est que le débogueur a accès à l’environnement d’exécution de l’application et au code exécutable.
Remarque
L’interaction du débogueur avec l’environnement d’exécution est une rubrique avancée. En outre, comprendre le fonctionnement du débogueur en arrière-plan n’est pas nécessaire pour utiliser le débogueur. Toutefois, la description suivante peut satisfaire votre curiosité.
Le débogueur Visual Studio Code pour C# utilise le runtime .NET pour lancer et interagir avec une application. Lorsque vous démarrez le débogueur, il crée une instance du runtime et exécute l’application au sein de cette instance. Le runtime inclut une interface de programmation d’application (API), que le débogueur utilise pour attacher le processus en cours d’exécution (votre application).
Une fois que votre application est en cours d’exécution et que le débogueur est attaché, le débogueur communique avec le processus en cours d’exécution à l’aide des API de débogage du runtime .NET et d’un protocole de débogage standard. Le débogueur peut interagir avec le processus (l’application s’exécutant dans l’instance du runtime .NET) en définissant des points d’arrêt, en effectuant un pas à pas dans le code et en inspectant des variables. L’interface du débogueur de Visual Studio Code vous permet de naviguer dans le code source, d’afficher les piles d’appels et d’évaluer les expressions.
La façon la plus courante de spécifier une session de débogage est une configuration de lancement dans le fichier launch.json. Cette approche est l’option par défaut activée par les outils du débogueur. Par exemple, si vous créez une application console C# et que vous sélectionnez Démarrer le débogage dans le menu Exécuter , le débogueur utilise cette approche pour lancer, attacher et interagir avec votre application.
Créer un projet de code
La première étape de l’apprentissage des outils de débogueur consiste à créer un projet de code que vous pouvez exécuter dans le débogueur.
Ouvrez une nouvelle instance de Visual Studio Code.
Dans le menu Fichier , sélectionnez Ouvrir le dossier.
Dans la boîte de dialogue Ouvrir le dossier , accédez à votre dossier Windows Desktop .
Dans la boîte de dialogue Ouvrir le dossier , sélectionnez Nouveau dossier.
Nommez le nouveau dossier Debug101, puis sélectionnez Sélectionner un dossier.
Dans le menu Terminal , sélectionnez Nouveau terminal.
Une commande CLI .NET peut être utilisée pour créer une application console.
À l’invite de commandes du panneau TERMINAL, entrez la commande suivante :
dotnet new consoleFermez le panneau TERMINAL.
Examiner les configurations de lancement pour le débogage
Visual Studio Code utilise un fichier de configuration de lancement pour spécifier l’application qui s’exécute dans l’environnement de débogage.
Si le dossier Debug101 n’inclut pas de fichier Debug101.sln, sélectionnez Program.cs, puis vérifiez qu’un fichier .sln est créé.
L’ouverture d’un fichier de code C# invite l’environnement à rechercher les fichiers projet. Le fichier .sln est un fichier solution utilisé par Visual Studio pour gérer les projets et est généralement créé automatiquement lorsque vous créez un projet dans Visual Studio Code. Le fichier .sln est utilisé par le débogueur pour identifier le projet qui doit être exécuté dans l’environnement de débogage.
Dans le menu Affichage, sélectionnez Palette de commandes.
À l’invite de commandes, entrez .net: g, puis sélectionnez .NET : Générer des ressources pour la compilation et le débogage.
Notez le nouveau dossier
.vscodequi a été ajouté à votre dossier de projet.
Le
.vscodedossier contient des fichiers utilisés pour configurer l’environnement de débogage.Développez le
.vscodedossier, puis sélectionnez le fichier launch.json .Prenez une minute pour examiner le fichier launch.json.
Le fichier de configurations de lancement peut inclure plusieurs configurations. Chaque configuration inclut une collection d’attributs utilisés pour définir cette configuration.
Notez que l’attribut prelaunchTask spécifie une tâche de génération .
Dans le
.vscodedossier, sélectionnez tasks.json.Notez que le fichier tasks.json contient la tâche de génération de votre projet de code.
Fermez les fichierslaunch.json et tasks.json .
Vous examinez plus en détails les attributs de configuration de lancement plus loin dans ce module.
Exécuter votre code à partir du menu Exécuter
Le menu Exécuter dans Visual Studio Code offre la possibilité d’exécuter votre code avec ou sans le débogueur.
Ouvrez le fichier Program.cs.
Remplacez le contenu de votre fichier Program.cs par le 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."; }Dans le menu Fichier , sélectionnez Enregistrer.
Ouvrez le menu Exécuter .
Notez que le menu Exécuter fournit des options pour exécuter votre code avec ou sans débogage.
Dans le menu Exécuter , sélectionnez Exécuter sans débogage
Notez que le panneau CONSOLE DEBUG affiche la sortie de la console et que la barre d’outils Debug affiche les contrôles d’exécution.
Le panneau CONSOLE DEBUG doit s’afficher sous l’Éditeur de code. Par défaut, la barre d’outils Debug (la petite barre d’outils affichant les contrôles d’exécution de code) se trouve au-dessus de l’Éditeur de code et centrée horizontalement sur la fenêtre Visual Studio Code.
Dans la barre d’outils de débogage, sélectionnez Arrêter.
Démarrer une session de débogage à partir du menu Exécuter
Le menu Exécuter inclut l’option permettant de démarrer une session de débogage.
Dans le menu Exécuter , sélectionnez Démarrer le débogage
Prenez une minute pour passer en revue les messages affichés dans le panneau CONSOLE DEBUG.
La sortie de votre application est la même que lorsque vous avez exécuté sans débogage, mais d’autres messages liés à la préparation de l’environnement de débogage sont affichés.
Notez les messages relatifs au chargement des ressources .NET et à votre application Debug101.
Les deux premiers messages signalent le chargement de la bibliothèque .NET, puis votre application Debug101.
Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.0\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. Loaded 'C:\Users\someuser\Desktop\Debug101\bin\Debug\net10.0\Debug101.dll'. Symbols loaded.Le débogueur utilise une instance spéciale du runtime .NET pour contrôler l’exécution de votre application et évaluer l’état de l’application.
Dans la barre d’outils de débogage, sélectionnez Arrêter.
Exécuter votre code à partir de la vue Exécuter et Déboguer
La vue RUN AND DEBUG dans Visual Studio Code prend en charge une expérience de débogage enrichie.
Basculez vers la vue RUN AND DEBUG.
Dans la vue RUN AND DEBUG, sélectionnez Démarrer le débogage.
Le bouton Démarrer le débogage est la flèche verte du panneau de configuration en haut de la vue.
Notez que le panneau CONSOLE DEBUG affiche les mêmes messages sur la configuration du débogueur qui ont été affichés lors du démarrage d’un processus de débogage à partir du menu Exécuter .
Dans la barre d’outils de débogage, sélectionnez Arrêter.
Examiner la sortie de votre application
Avant de fermer le panneau CONSOLE DEBUG, prenez une minute pour passer en revue la sortie produite par votre code.
Notez que le message d’accueil d’Andrew est répété de façon inattendue.
Pendant le reste de ce module, vous allez utiliser les outils du débogueur Visual Studio Code pour examiner les problèmes de codage.
Récapitulatif
Voici quelques points importants à retenir de cette unité :
- Le débogueur Visual Studio Code pour C# utilise le runtime .NET pour lancer et interagir avec une application.
- Le menu Exécuter de Visual Studio Code propose des options pour démarrer une application avec et sans le débogueur attaché.
- La barre d’outils Debug inclut un bouton pour arrêter un processus en cours d’exécution.
- La vue RUN AND DEBUG inclut une option permettant de démarrer le débogage d’une application.