Exercise - Rulare cod în mediul de depanare
Interfața de utilizator Visual Studio Code le permite dezvoltatorilor să-și ruleze codul într-un mediu de depanare. Suportul pentru depanare este furnizat de extensii, iar pentru dezvoltatoriI C# suportul pentru depanare este furnizat de aceeași extensie care oferă suport pentru dezvoltarea codului și IntelliSense.
Depanarea și interacțiunea aplicațiilor
Un depanator de cod poate fi utilizat pentru a pune în pauză și a relua executarea codului, a examina starea variabilelor și chiar pentru a modifica valorile atribuite variabilelor la momentul rulării. Poate vă întrebați, cum poate controlul de depanare și modifica o aplicație care rulează? Răspunsul scurt este că depanatorul are acces la mediul runtime al aplicației și la codul executabil al aplicației.
Notă
Interacțiunea de depanare cu mediul runtime este un subiect avansat. În plus, înțelegerea modului în care funcționează depanatorul în culise nu este o cerință pentru utilizarea depanatorului. Cu toate acestea, descrierea următoare vă poate satisface curiozitatea.
Depanatorul Visual Studio Code pentru C# folosește runtime-ul .NET pentru a lansa și interacționa cu o aplicație. Atunci când porniți depanatorul, acesta creează o instanță nouă a timpului de rulare și rulează aplicația în acea instanță. Modulul runtime include o interfață de programare a aplicațiilor (API), pe care depanatorul o utilizează pentru a atașa la procesul de rulare (aplicația dvs.).
Odată ce aplicația ta rulează și depanerul este atașat, acesta comunică cu procesul care rulează folosind API-urile de depanare ale runtime-ului .NET și un protocol standard de depanare. Depanatorul poate interacționa cu procesul (aplicația care rulează în instanța runtime .NET) prin setarea punctelor de întrerupere, parcurgerea codului și inspectarea variabilelor. Interfața de depanare a codului Visual Studio vă permite să navigați prin codul sursă, să vizualizați stivele de apeluri și să evaluați expresii.
Cea mai comună modalitate de a specifica o sesiune de depanare este o configurație de lansare în fișierul launch.json. Această abordare este opțiunea implicită activată de instrumentele de depanare. De exemplu, dacă creați o aplicație consolă C# și selectați Start Depanare din meniul Executare , depanatorul utilizează această abordare pentru lansare, atașare la, apoi interacționați cu aplicația.
Creați un proiect de cod nou
Primul pas în învățarea instrumentelor de depanare este crearea unui proiect de cod pe care îl puteți rula în depanator.
Deschideți o nouă instanță a Visual Studio Code.
În meniul Fișier , selectați Deschidere folder.
În caseta de dialog Deschidere folder , navigați la folderul Desktop Windows.
În caseta de dialog Deschidere folder , selectați Folder nou.
Depanați folderul nou101, apoi selectați Selectare folder.
În meniul terminal, selectați Terminal nou .
O comandă .NET CLI poate fi utilizată pentru a crea o nouă aplicație consolă.
În linia de comandă din panoul TERMINAL, introduceți următoarea comandă:
dotnet new consoleÎnchideți panoul TERMINAL.
Examinați configurațiile de lansare pentru depanare
Visual Studio Code utilizează un fișier de configurare de lansare pentru a specifica aplicația care rulează în mediul de depanare.
Dacă folderul Depanare101 nu include un fișier Debug101.sln, selectați Program.cs, apoi verificați dacă se creează un fișier .sln.
Deschiderea unui fișier de cod C# solicită mediului să caute fișiere de proiect. Fișierul .sln este un fișier soluție care este utilizat de Visual Studio pentru a gestiona proiecte și este creat de obicei automat atunci când creați un proiect nou în Visual Studio Code. Fișierul .sln este utilizat de depanator pentru a identifica proiectul care ar trebui rulat în mediul de depanare.
În meniul Vizualizare, selectați Paletă de comenzi.
În linia de comandă, introduceți .net: g , apoi selectați .NET: Generare active pentru compilare și depanare.
Observați noul
.vscodefolder care a fost adăugat la folderul de proiect.
Folderul
.vscodeconține fișiere care sunt utilizate pentru a configura mediul de depanare..vscodeExtindeți folderul, apoi selectați fișierullaunch.json.Examinați fișierul launch.json.
Fișierul cu configurațiile de lansare poate include mai multe configurații. Fiecare configurație include o colecție de atribute care sunt utilizate pentru a defini acea configurație.
Observați că atributul PrelaunchTask specifică o activitate de compilare .
.vscodeÎn folder, selectați tasks.json.Observați că fișierul tasks.json conține activitatea de compilare pentru proiectul de cod.
Închideți fișierelelaunch.json și tasks.json .
Aruncați o privire mai atentă asupra atributelor de configurare lansate mai târziu în acest modul.
Rulați codul din meniul Rulare
Meniul Executare din Visual Studio Code oferă opțiunea de a rula codul cu sau fără depanator.
Deschideți fișierul Program.cs.
Înlocuiți conținutul fișierului Program.cs cu următorul cod:
/* 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."; }În meniul fișier, selectați Salvare.
Deschideți meniul Executare .
Observați că meniul Rulare oferă opțiuni pentru rularea codului cu sau fără depanare.
În meniul Executare , selectați Rulare fără depanare
Observați că panoul CONSOLĂ DEBUG afișează ieșirea consolei și că bara de instrumente Depanare afișează controale de executare.
Panoul CONSOLĂ DEBUG ar trebui să fie afișat sub Editorul de cod. În mod implicit, bara de instrumente Depanare (bara de instrumente mică care afișează controale de executare a codului) se află deasupra Editorului de cod și centrată pe orizontală, în fereastra Visual Studio Code.
Pe bara de instrumente Depanare, selectați Oprire.
Pornirea unei sesiuni de depanare din meniul Executare
Meniul Rulare include opțiunea de a începe o sesiune de depanare.
În meniul Executare , selectați Pornire depanare
Citiți un minut pentru a revizui mesajele afișate în panoul CONSOLĂ DEBUG.
Ieșirea din aplicație este la fel ca atunci când ați rulat fără depanare, dar se afișează alte mesaje legate de pregătirea mediului de depanare.
Observați mesajele despre încărcarea resurselor .NET și a aplicației Debug101.
Primele două mesaje raportează încărcarea bibliotecii .NET și apoi aplicația ta 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.Depanatorul utilizează o instanță specială a runtime-ului .NET pentru a controla executarea aplicației și a evalua starea aplicației.
Pe bara de instrumente Depanare, selectați Oprire.
Rulați codul din vizualizarea Executare și depanare
Vizualizarea RULARE ȘI DEPANARE din Visual Studio Code acceptă o experiență de depanare îmbogățită.
Comutați la vizualizarea RULARE ȘI DEPANARE.
În vizualizarea RULARE ȘI DEPANARE, selectați Pornire depanare.
Butonul Pornire depanare este săgeata verde din panoul de control din partea de sus a vizualizării.
Observați că panoul CONSOLĂ DEBUG afișează aceleași mesaje despre configurarea depanatorul care a fost afișat atunci când porniți un proces de depanare din meniul Rulare .
Pe bara de instrumente Depanare, selectați Oprire.
Examinați ieșirea din aplicație
Înainte de a închide panoul CONSOLĂ DEBUG, examinați ieșirea produsă de cod.
Observați că mesajul de salut al lui Andrew se repetă în mod neașteptat.
În restul acestui modul, veți utiliza instrumentele de depanare Visual Studio Code pentru a investiga problemele de codare.
Recapitula
Iată câteva lucruri importante de reținut din această unitate:
- Depanatorul Visual Studio Code pentru C# folosește runtime-ul .NET pentru a lansa și interacționa cu o aplicație.
- Meniul Rulare cod Visual Studio are opțiuni pentru a porni o aplicație cu și fără depanatorul atașat.
- Bara de instrumente Depanare include un buton pentru Oprirea unui proces de rulare.
- Vizualizarea RULARE ȘI DEPANARE include o opțiune pentru a începe depanarea unei aplicații.