Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden de functies van het Visual Studio-foutopsporingsprogramma in een stapsgewijze procedure geïntroduceerd. Als u een weergave op een hoger niveau van de functies van het foutopsporingsprogramma wilt, raadpleegt u Eerst het foutopsporingsprogramma. Wanneer u fouten in uw app opssport, betekent dit meestal dat u uw toepassing uitvoert met het bijgevoegde foutopsporingsprogramma. Wanneer u deze taak uitvoert, biedt het foutopsporingsprogramma veel manieren om te zien wat uw code doet terwijl deze wordt uitgevoerd. U kunt uw code doorlopen en de waarden bekijken die zijn opgeslagen in variabelen, u kunt horloges instellen op variabelen om te zien wanneer waarden veranderen, u kunt het uitvoeringspad van uw code bekijken, zien of er een vertakking van code wordt uitgevoerd, enzovoort. Als deze oefening de eerste keer is dat u code probeert op te sporen, kunt u de foutopsporing voor absolute beginners lezen voordat u dit artikel doorloopt.
Hoewel de demo-app Visual Basic is, zijn de meeste functies van toepassing op C#, C++, F#, Python, JavaScript en andere talen die worden ondersteund door Visual Studio (F# biedt geen ondersteuning voor Edit-and-continue. F# en JavaScript bieden geen ondersteuning voor het venster Autos ). De schermopnamen bevinden zich in Visual Basic.
In deze tutorial, zul je:
- Start het foutopsporingsprogramma en druk op onderbrekingspunten.
- Leer opdrachten om code in de debugger door te lopen
- Variabelen inspecteren in gegevenstips en debugvensters
- De aanroepstack onderzoeken
Vereiste voorwaarden
Visual Studio 2019 moet zijn geïnstalleerd en de platformoverschrijdende ontwikkelworkload van .NET Core .
Als u Visual Studio nog niet hebt geïnstalleerd, gaat u naar de Visual Studio-downloadpagina pagina om deze gratis te installeren.
Als u de workload wilt installeren maar visual Studio al hebt, gaat u naar Tools>Get Tools and Features..., waarmee het installatieprogramma van Visual Studio wordt geopend. Het installatieprogramma van Visual Studio wordt gestart. Kies de .NET-desktopontwikkelingswerklast en selecteer vervolgens Wijzigen.
Een project maken
Eerst maakt u een .NET Core-consoletoepassingsproject. Het projecttype wordt geleverd met alle sjabloonbestanden die u nodig hebt, voordat u iets hebt toegevoegd.
Open Visual Studio. Als het startvenster niet is geopend, selecteert u Bestand>Startvenster.
Selecteer een nieuw project maken in het startvenster.
Voer console in het zoekvak in het venster Een nieuw project maken in. Kies vervolgens Visual Basic in de lijst Taal en kies Vervolgens Windows in de lijst Platform.
Nadat u de taal- en platformfilters hebt toegepast, kiest u de console-app-sjabloon voor .NET Core en selecteert u vervolgens Volgende.
Opmerking
Als u de sjabloon Console-app niet ziet, kunt u deze installeren vanuit het Een nieuw project venster maken. Kies in het bericht Niet vinden wat u zoekt? de koppeling Meer hulpprogramma's en onderdelen installeren . Kies vervolgens in het installatieprogramma van Visual Studio de workload voor .NET-desktopontwikkeling .
In het Uw nieuwe project configureren-venster voert u get-started-debugging in het Projectnaam-vak in. Klik vervolgens op Volgende.
Controleer in het venster Aanvullende informatie of .NET 8.0 is geselecteerd in de vervolgkeuzelijst Framework en selecteer vervolgens Maken.
Visual Studio opent uw nieuwe project.
De toepassing maken
Vervang in Program.vb alle standaardcode door de volgende code:
Imports System
Class ArrayExample
Public Shared Sub Main()
Dim letters As Char() = {"f"c, "r"c, "e"c, "d"c, " "c, "s"c, "m"c, "i"c, "t"c, "h"c}
Dim name As String = ""
Dim a As Integer() = New Integer(9) {}
For i As Integer = 0 To letters.Length - 1
name += letters(i)
a(i) = i + 1
SendMessage(name, a(i))
Next
Console.ReadKey()
End Sub
Private Shared Sub SendMessage(ByVal name As String, ByVal msg As Integer)
Console.WriteLine("Hello, " & name & "! Count to " & msg)
End Sub
End Class
Start het foutopsporingsprogramma.
nl-NL: Druk op F5 (Debug > Debuggen starten) of selecteer de groene Debuggen starten knop op de werkbalk Foutopsporing.
F5 start de app met het foutopsporingsprogramma dat is gekoppeld aan het app-proces, maar op dit moment hebben we niets speciaals gedaan om de code te onderzoeken. De app wordt dus gewoon geladen en u ziet de console-uitvoer.
Hello, f! Count to 1 Hello, fr! Count to 2 Hello, fre! Count to 3 Hello, fred! Count to 4 Hello, fred ! Count to 5 Hello, fred s! Count to 6 Hello, fred sm! Count to 7 Hello, fred smi! Count to 8 Hello, fred smit! Count to 9 Hello, fred smith! Count to 10In deze zelfstudie bekijkt u deze app met behulp van het foutopsporingsprogramma en bekijkt u de functies van het foutopsporingsprogramma.
Stop het foutopsporingsprogramma door op (Shift + F5) te drukken of selecteer de rode knop Foutopsporing stoppen in de werkbalk Foutopsporing.
Druk in het consolevenster op een toets om het consolevenster te sluiten.
Een onderbrekingspunt instellen en het foutopsporingsprogramma starten
Stel in de
Forlus van deMainfunctie een onderbrekingspunt in door in de linkermarge op de volgende coderegel te klikken:name += letters(i)Er wordt een rode cirkel weergegeven waar u het onderbrekingspunt instelt.
Onderbrekingspunten zijn een van de meest elementaire en essentiële functies van betrouwbare foutopsporing. Een onderbrekingspunt geeft aan waar Visual Studio uw actieve code moet onderbreken, zodat u de waarden van variabelen of het gedrag van het geheugen kunt bekijken, of of een vertakking van code wordt uitgevoerd.
Druk op F5 (Debug > Start Debugging) of op de knop Start Debugging in de Debugwerkbalk, de app wordt gestart en de debugger loopt naar de coderegel waar u het onderbrekingspunt hebt ingesteld.
De gele pijl vertegenwoordigt de instructie waarop het foutopsporingsprogramma is onderbroken, waardoor de uitvoering van apps op hetzelfde punt wordt onderbroken (deze instructie wordt nog niet uitgevoerd).
Als de app nog niet wordt uitgevoerd, start F5 het foutopsporingsprogramma en stopt het bij het eerste onderbrekingspunt. Anders gaat F5 door met het uitvoeren van de app naar het volgende onderbrekingspunt.
Onderbrekingspunten zijn een handige functie wanneer u de coderegel of de codesectie kent die u in detail wilt onderzoeken. Zie Onderbrekingspunten gebruiken voor informatie over de verschillende typen onderbrekingspunten die u kunt instellen, zoals voorwaardelijke onderbrekingspunten.
Navigeren in code in het foutopsporingsprogramma met behulp van stapopdrachten
In dit artikel gebruiken we de sneltoetsen, omdat het een goede manier is om snel uw app uit te voeren in het foutopsporingsprogramma (equivalente opdrachten zoals menuopdrachten worden tussen haakjes weergegeven).
Terwijl de uitvoering van code in de
Forlus in deMainmethode is onderbroken, drukt u tweemaal op F11 (of kiest u Stap in de foutopsporing>) om naar deSendMessagemethodeaanroep te gaan.Nadat u tweemaal op F11 hebt gedrukt, moet u bij deze regel code zijn:
SendMessage(name, a(i))Druk nogmaals op F11 om de
SendMessagemethode te openen.De gele aanwijzer gaat naar de
SendMessagemethode.
F11 is het Stap in commando en voert de app één instructie tegelijk uit. F11 is een goede manier om de uitvoeringsstroom in de meeste detail te onderzoeken. (Als u sneller door code wilt gaan, laten we u ook enkele andere opties zien.) Standaard wordt het foutopsporingsprogramma overgeslagen op niet-gebruikerscode (zie Alleen mijn code als u meer informatie wilt).
Stel dat u klaar bent met het onderzoeken van de
SendMessagemethode en u de methode wilt verwijderen, maar in het foutopsporingsprogramma wilt blijven. U kunt dit doen met behulp van de opdracht Uitstappen .Druk op Shift + F11 (of Debug > Stap Uit).
Met deze opdracht wordt de uitvoering van de app hervat (en wordt het foutopsporingsprogramma verder uitgevoerd) totdat de huidige methode of functie wordt geretourneerd.
U moet weer in de
Forlus in deMainmethode staan, onderbroken bij deSendMessagemethode-aanroep.Druk meerdere keren op F11 totdat u weer bij de
SendMessagemethode-aanroep bent.Terwijl de uitvoering van de code is gepauzeerd bij de methodeaanroep, drukt u eenmaal op F10 (of kiest u Debug > Stap Over).
U ziet dit keer dat het foutopsporingsprogramma niet in de
SendMessage-methode stapt. F10 gaat verder met het foutopsporingsprogramma zonder dat u functies of methoden in uw app-code hoeft in te voeren (de code wordt nog steeds uitgevoerd). Door op F10 te drukken op deSendMessagemethodeaanroep (in plaats van F11), hebben we de implementatiecodeSendMessageovergeslagen (waarvoor we misschien momenteel niet geïnteresseerd zijn). Zie Navigate-code in het foutopsporingsprogrammavoor meer informatie over verschillende manieren om door uw code te navigeren.
Navigeren in code met Uitvoeren tot Klik
Druk op F5 om opnieuw naar het onderbrekingspunt te gaan.
Schuif in de code-editor omlaag en beweeg de muisaanwijzer over de
Console.WriteLinemethode in deSendMessagemethode totdat de groene knop Uitvoeren om te klikken wordt weergegeven. In de knopinfo voor de knop wordt 'Uitvoering hier uitvoeren' weergegeven.
Selecteer de knop Uitvoeren tot Klikken .
De debugger gaat verder naar de
Console.WriteLinemethode.Het gebruik van deze knop is vergelijkbaar met het instellen van een tijdelijk onderbrekingspunt. Run to Click is handig om snel te navigeren binnen een zichtbaar gebied van applicatiecode (u kunt in elk geopend bestand een selectie maken).
Uw app snel opnieuw opstarten
Als u de app opnieuw wilt starten, drukt u op de toetsencombinatie Ctrl + Shift + F5 , bespaart u tijd in plaats van de app te stoppen en het foutopsporingsprogramma opnieuw op te starten. Het foutopsporingsprogramma onderbreekt bij het eerste onderbrekingspunt dat wordt bereikt door code uit te voeren.
Het foutopsporingsprogramma stopt opnieuw op het onderbrekingspunt dat u eerder in de lus For hebt ingesteld.
Variabelen inspecteren met gegevenstips
Functies waarmee u variabelen kunt inspecteren, zijn een van de handigste functies van het foutopsporingsprogramma en er zijn verschillende manieren om dit te doen. Wanneer u een probleem probeert op te sporen, probeert u vaak te achterhalen of variabelen de waarden opslaan die u verwacht op een bepaald moment.
Terwijl de uitvoering van code is onderbroken op de instructie, beweegt u de
name += letters[i]muisaanwijzer over delettersvariabele en ziet u de standaardwaarde, de waarde van het eerste element in de matrix,"f"c.Beweeg vervolgens de muisaanwijzer over de
namevariabele en u ziet de huidige waarde, een lege tekenreeks.Druk een paar keer op F5 (of Debug>Continue) om meerdere keren door de
Forlus te herhalen, opnieuw te onderbreken op het onderbrekingspunt en de variabele elke keer aan te bewegen om denamewaarde ervan te controleren.
De waarde van de variabele verandert met elke iteratie van de
Forlus, met waarden vanf,fr,freenzovoort.Bij foutopsporing wilt u vaak een snelle manier om eigenschapswaarden op variabelen te controleren, om te zien of ze de waarden opslaan die u verwacht op te slaan en de gegevenstips zijn een goede manier om dit te doen.
Variabelen inspecteren met de vensters Auto's en Locals
Bekijk het venster Autos onderaan de code-editor.
Als het venster is gesloten, opent u het terwijl de uitvoering van de code is gepauzeerd in de debugger door Debuggen> in Windows>Autos te kiezen.
In het venster Automatisch ziet u variabelen en hun huidige waarde. In het venster Autos worden alle variabelen weergegeven die op de huidige regel of de voorgaande regel worden gebruikt (raadpleeg de documentatie voor taalspecifiek gedrag).
Kijk vervolgens naar het venster Locals , op een tabblad naast het venster Autos .
Vouw de
lettersvariabele uit om de elementen weer te geven die deze bevat.
In het venster Locals ziet u de variabelen die zich in het huidige bereikbevinden, dat wil gezegd de huidige uitvoeringscontext.
Een horloge instellen
U kunt een variabele of een expressie opgeven die u in de gaten wilt houden terwijl u code doorloopt door deze toe te voegen aan het venster Watch .
Terwijl het foutopsporingsprogramma is onderbroken, klikt u met de rechtermuisknop op de
namevariabele en kiest u Controle toevoegen.Het Watch-venster wordt standaard onderaan de code-editor geopend.
Nu u een controle hebt ingesteld voor de
namevariabele, doorloopt u de code om de waarde van denamevariabele te bekijken bij elkeforlusiteratie.In tegenstelling tot de andere variabelevensters worden in het venster Watch altijd de variabelen weergegeven die u bekijkt. Variabelen die buiten het bereik vallen, worden weergegeven als niet beschikbaar.
Zie Watch-variabelen met Watch-vensters voor meer informatie over het venster Watch.
De aanroepstack onderzoeken
Terwijl de uitvoering van code in de
Forlus is onderbroken, selecteert u het venster Aanroepstack . Dit venster is standaard geopend in het deelvenster rechtsonder.Als deze is gesloten, opent u deze terwijl de uitvoering van code is onderbroken in het foutopsporingsprogramma door Fouten opsporen>in Windows>Call Stack te kiezen.
Selecteer F11 herhaaldelijk totdat de debugger pauzeert in de
SendMessage-methode. Bekijk het venster Oproepstack .
In het venster Aanroepstack ziet u de volgorde waarin methoden en functies worden aangeroepen. De bovenste regel toont de huidige functie (de
SendMessagemethode in deze app). Op de tweede regel ziet u dat dezeSendMessageis aangeroepen vanuit deMainmethode, enzovoort.Opmerking
Het venster Call Stack is vergelijkbaar met het perspectief foutopsporing in sommige IDE's, zoals Eclipse.
De aanroepstack is een goede manier om de uitvoeringsstroom van een app te onderzoeken en te begrijpen.
U kunt dubbelklikken op een coderegel om die broncode te bekijken, en dit verandert ook het huidige bereik dat door de debugger wordt geïnspecteerd. Met deze actie gaat de debugger niet verder.
U kunt ook met de rechtermuisknop op menu's klikken in het venster Oproepstack om andere dingen te doen. U kunt bijvoorbeeld onderbrekingspunten invoegen in opgegeven functies, het foutopsporingsprogramma doorschakelen met Run to Cursor en de broncode onderzoeken. Zie Hoe de aanroepstack te onderzoeken voor meer informatie.
De uitvoeringsstroom wijzigen
Druk tweemaal op F11 om de
Console.WriteLinemethode uit te voeren.Terwijl het foutopsporingsprogramma in de
SendMessagemethodeaanroep is onderbroken, gebruikt u de muis om de gele pijl of uitvoeringsaanwijzer (in de linkermarge) te pakken en sleept u de aanwijzer één regel omhoog naar deConsole.WriteLineinstructie.Druk op F11.
Het foutopsporingsprogramma voert de
Console.WriteLinemethode opnieuw uit (u ziet deze actie in de uitvoer van het consolevenster).Door de uitvoeringsstroom te wijzigen, kunt u bijvoorbeeld verschillende codeuitvoeringspaden testen of code opnieuw uitvoeren zonder het foutopsporingsprogramma opnieuw te starten.
Waarschuwing
Vaak moet u voorzichtig zijn met deze functie en ziet u een waarschuwing in de tooltip. Mogelijk ziet u ook andere waarschuwingen. Als u de aanwijzer verplaatst, kan de toepassing niet worden teruggezet naar een eerdere app-status.
Druk op F5 om door te gaan met het uitvoeren van de app.
Gefeliciteerd met het voltooien van deze zelfstudie.
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u het foutopsporingsprogramma start, code doorloopt en variabelen inspecteert. Mogelijk wilt u de functies van het foutopsporingsprogramma op hoog niveau bekijken, samen met koppelingen naar meer informatie.