Share via


Bekijk eerst het Visual Studio Debugger

In dit onderwerp worden de hulpprogramma's voor foutopsporingsprogramma's van Visual Studio geïntroduceerd. Wanneer u in de context van Visual Studio uw app debugt, betekent dit meestal dat u de toepassing uitvoert met de debugger gekoppeld (dat wil zeggen in de debugmodus). Wanneer u dit doet, 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, et al. Als dit de eerste keer is dat u probeert fouten in code op te sporen, kunt u Foutopsporing lezen voor absolute beginners voordat u dit onderwerp doorloopt. Als u een specifieke taak probeert uit te voeren en wilt weten welke functie moet worden gebruikt, raadpleegt u Zoekfunctie voor foutopsporingsprogramma's. Om AI-ondersteunde foutopsporing uit te proberen, zie Foutopsporing met Copilot.

De hier beschreven functies zijn van toepassing op C#, C++, Visual Basic, JavaScript en andere talen die worden ondersteund door Visual Studio (behalve waar vermeld).

Een onderbrekingspunt instellen en het foutopsporingsprogramma starten

Onderbrekingspunten zijn een handige functie wanneer u de coderegel of de codesectie kent die u tijdens runtime in detail wilt onderzoeken. Zie Onderbrekingspunten gebruikenvoor meer informatie over de diverse soorten onderbrekingspunten, zoals voorwaardelijke onderbrekingspunten en functieonderbrekingspunten.

Als u fouten wilt opsporen, moet u uw app starten met het foutopsporingsprogramma dat is gekoppeld aan het app-proces. U doet dit als volgt:

  • Druk op F5 (Foutopsporing > Start Debugging), de meest voorkomende methode.

Het is echter mogelijk dat u op dit moment geen onderbrekingspunten hebt ingesteld om uw app-code te onderzoeken. Daarom doen we dat eerst en starten we vervolgens de foutopsporing. Onderbrekingspunten zijn de meest elementaire en essentiële functie 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.

Als u een bestand hebt geopend in de code-editor, kunt u een onderbrekingspunt instellen door in de marge links van een coderegel te klikken.

een onderbrekingspunt instellen

een onderbrekingspunt instellen

Druk op F5 (Foutopsporing > Start Debugging) of op de knop Foutopsporing starten knop Foutopsporing starten in de werkbalk Foutopsporing en het foutopsporingsprogramma wordt uitgevoerd naar het eerste onderbrekingspunt dat wordt weergegeven. Als de app nog niet wordt uitgevoerd, start F5 het foutopsporingsprogramma en stopt het bij het eerste onderbrekingspunt.

We bieden de sneltoetsen voor de meeste opdrachten, omdat ze de navigatie van uw app-code sneller maken. (Gelijkwaardige opdrachten, zoals menuopdrachten, worden tussen haakjes weergegeven.) Zie Navigate-code in het foutopsporingsprogrammavoor meer informatie over het gebruik van de stapopdrachten.

Druk op F11 (Foutopsporing > Stap in) om uw app te starten met het bijgevoegde foutopsporingsprogramma. F11 is de opdracht Stap In en laat de app-uitvoering één instructie tegelijk verder gaan. Wanneer u de app start met F11, stopt de debugger bij de eerste instructie die wordt uitgevoerd.

F11 Stap in

F11 Stap in

De gele pijl vertegenwoordigt de instructie waarop het foutopsporingsprogramma is onderbroken, waardoor de uitvoering van apps op hetzelfde punt wordt onderbroken (deze instructie is nog niet uitgevoerd).

F11 is een goede manier om de uitvoeringsstroom in de meeste detail te onderzoeken. (Om sneller door code te gaan, laten we u ook enkele andere opties zien.) Standaard wordt het foutopsporingsprogramma overgeslagen op niet-gebruikerscode (zie Just My Code) voor meer informatie.

Notitie

In beheerde code ziet u een dialoogvenster waarin u wordt gevraagd of u een melding wilt ontvangen wanneer u automatisch over eigenschappen en operators stapt (standaardgedrag). Als u de instelling later wilt wijzigen, schakelt u de optie Stap over eigenschappen en operatoren uit in het menu Extra > Opties onder Foutopsporing.

Stap door de code om functies over te slaan

Wanneer u zich op een regel code bevindt die een functie- of methodeaanroep is, kunt u op F10 drukken (Fouten opsporen > Stap over) in plaats van F11.

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, kunt u de code overslaan waarin u niet bent geïnteresseerd. Op deze manier kunt u snel code krijgen waarin u meer geïnteresseerd bent. Zie Navigate-code in het foutopsporingsprogrammavoor meer informatie over het gebruik van de stapopdrachten.

Snel uitvoeren naar een punt in uw code met behulp van de muis

Het gebruik van de knop Run to Click is vergelijkbaar met het instellen van een tijdelijk onderbrekingspunt. Deze opdracht is ook handig om snel te navigeren in een zichtbaar gebied met app-code. U kunt Run to Click gebruiken in elk geopend bestand. Zie Uitvoeren op een specifieke locatie in uw codevoor meer informatie over deze functie en vergelijkbare navigatiefuncties.

Plaats in de debugger de muisaanwijzer op een regel code totdat de knop Uitvoeren tot hier (Voer de uitvoering hier uit) Schermopname van de knop Uitvoeren tot hier vanuit de Visual Studio Debugger. De knop geeft aan dat de uitvoering moet worden uitgevoerd tot de regel waar de knop is geplaatst. verschijnt aan de linkerkant.

Schermafbeelding van de debugger van Visual Studio die de 'Klik om te Uitvoeren' knop toont, net links van een aanroep naar een functie.

Schermafbeelding van de debugger van Visual Studio die de 'Klik om te Uitvoeren' knop toont, net links van een aanroep naar een functie.

Notitie

De knop Uitvoeren om te klikken op (Uitvoering uitvoeren hier) is beschikbaar vanaf Visual Studio 2017.

Klik op de knop Uitvoeren om te klikken op (Uitvoering hier uitvoeren). Het foutopsporingsprogramma gaat verder met de coderegel waarop u hebt geklikt.

Laat de debugger verdergaan vanuit de huidige functie

Soms wilt u de foutopsporingssessie voortzetten, maar de debugger door de volledige huidige functie laten lopen.

Druk op Shift + F11 (of Fouten opsporen > uitstappen).

Met deze opdracht wordt de uitvoering van de app hervat (en wordt het foutopsporingsprogramma verder uitgevoerd) totdat de huidige functie wordt geretourneerd.

Uitvoeren naar cursor

Wanneer u code bewerkt (in plaats van gepauzeerd in de debugger), klikt u met de rechtermuisknop op een regel code in uw app en kiest u Uitvoeren tot aan de Cursor (of drukt u op Ctrl + F10). Met deze opdracht wordt foutopsporing gestart en wordt een tijdelijk onderbrekingspunt ingesteld op de huidige coderegel. Zie Uitvoeren op een specifieke locatie in uw codevoor meer informatie over deze functie en vergelijkbare navigatiefuncties.

Uitvoeren op Cursor

Uitvoeren op Cursor

Als u onderbrekingspunten hebt ingesteld, wordt het foutopsporingsprogramma onderbroken op het eerste onderbrekingspunt dat het bereikt.

Druk op F5- totdat u de regel met code bereikt waarop u Uitvoeren naar cursorhebt geselecteerd.

Deze opdracht is handig wanneer u code bewerkt en snel een tijdelijk onderbrekingspunt wilt instellen en het foutopsporingsprogramma tegelijkertijd wilt starten.

Notitie

U kunt Uitvoeren naar cursor in het venster Aanroepstack gebruiken terwijl u aan het debuggen bent.

Uw app snel opnieuw opstarten

Klik op de knop HerstartenHerstarten App in de werkbalk Foutopsporing (of druk op Ctrl + Shift + F5).

Wanneer u op opnieuw opstarten drukt, 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.

Als u het foutopsporingsprogramma wilt stoppen en terug wilt gaan naar de code-editor, kunt u op de rode stop drukken Foutopsporing stoppen in plaats van Opnieuw opstarten.

Live code bewerken

Visual Studio 2022 biedt ondersteuning voor live codebewerking tijdens foutopsporing. Zie voor gedetailleerde informatie:

Bewerk uw code en ga verder met foutopsporing (C#, VB, C++, XAML)

In de meeste talen die worden ondersteund door Visual Studio, kunt u uw code in het midden van een foutopsporingssessie bewerken en doorgaan met foutopsporing. Als u deze functie wilt gebruiken, klikt u in de code met de cursor terwijl deze is onderbroken in het foutopsporingsprogramma, bewerkt u wijzigingen aan en drukt u op F5, F10of F11 om door te gaan met foutopsporing. Zie bewerken en doorgaanvoor meer informatie over het gebruik van deze functie en over functiebeperkingen.

Bewerken en doorgaan met foutopsporing

Als u XAML-code tijdens een foutopsporingssessie wilt wijzigen, raadpleegt u XAML-code schrijven en fouten opsporen met XAML Hot Reload.

Variabelen inspecteren met gegevenstips

Nu u een beetje wegwijs bent gemaakt, hebt u een goede mogelijkheid om de status van uw app (variabelen) te inspecteren met de debugger. Functies waarmee u variabelen kunt inspecteren, zijn enkele 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 dat ze een bepaalde app-status hebben. Zie Gegevenswaarden weergeven in gegevenstipsvoor gedetailleerde informatie over het gebruik van gegevenstips.

Pauzeer in het foutopsporingsprogramma, houd de muisaanwijzer boven een object en ziet u de waarde ervan of de standaardeigenschapswaarde.

Een gegevenstip weergeven

Een gegevenstip weergeven

Als de variabele eigenschappen heeft, kunt u het object uitbreiden om alle eigenschappen ervan weer te geven.

Bij foutopsporing wilt u vaak snel de eigenschapswaarden voor objecten controleren en zijn de tips voor gegevens een goede manier om dit te doen.

Variabelen inspecteren met de vensters Auto's en Locals

In het venster Autos ziet u variabelen, samen met hun huidige waarde en hun type. In het venster Autos worden alle variabelen weergegeven die op de huidige regel of de voorgaande regel worden gebruikt (in C++, worden in het venster variabelen in de voorgaande drie regels code weergegeven. Raadpleeg de documentatie voor taalspecifiek gedrag). Zie voor meer informatie over het gebruik van deze vensters Variabelen inspecteren in de vensters Auto's en Locals.

Bekijk tijdens het debuggen het venster Autos onder in de code-editor.

venster Autos

venster Autos

Notitie

In JavaScript wordt het Locals-venster ondersteund, maar niet het venster Autos.

Bekijk vervolgens het Locals venster. In het venster Locals ziet u de variabelen die momenteel binnen het bereik vallen.

Locals Window

Locals Window

In dit voorbeeld vallen het this-object en het object f binnen het bereik. Zie Variabelen inspecteren in de Auto's en Locals Windowsvoor meer informatie.

Retourwaarden van methodeaanroepen weergeven

In .NET- en C++-code kunt u retourwaarden onderzoeken in het venster Autos wanneer u een methodeaanroep uitvoert of uitstapt. Dit kan handig zijn wanneer de retourwaarde niet is opgeslagen in een lokale variabele. Voor meer informatie, zie Retourwaarden van methodeaanroepen weergeven.

Vanaf Visual Studio 2022 versie 17.12 Preview 3 kunt u ook retourwaarden van methodeaanroepen inline bekijken en niet alleen in het venster Autos.

Schermopname met de retourwaarden van methode-aanroepen.

Als Copilot is ingeschakeld, kunt u ook gerichte hulp krijgen met betrekking tot de inline retourwaarde met behulp van de knop Vraag Copilot die wordt weergegeven in de gegevenstip voor de retourwaarde.

Schermopname met de retourwaarden van methode-aanroepen met copilot-pictogram.

Een horloge instellen

U kunt een venster Watch gebruiken om een variabele (of een expressie) op te geven die u in de gaten wilt houden. Zie Een horloge instellen met behulp van de Windows-Watch en QuickWatch voor gedetailleerde informatie.

Klik tijdens foutopsporing met de rechtermuisknop op een object en kies Watch toevoegen.

Venster Controle

Venster Controle

In dit voorbeeld hebt u een horloge ingesteld op het object en kunt u de waarde ervan zien veranderen terwijl u door het foutopsporingsprogramma navigeert. In tegenstelling tot de andere variabelevensters worden in de vensters Watch altijd de variabelen weergegeven die u bekijkt (ze worden grijs weergegeven wanneer ze buiten het bereik vallen).

De aanroepstack onderzoeken

In het venster Aanroepstack ziet u de volgorde waarin methoden en functies worden aangeroepen. Op de bovenste regel ziet u de huidige functie. Op de tweede regel ziet u de functie of eigenschap waaruit deze is aangeroepen, enzovoort. De aanroepstack is een goede manier om de uitvoeringsstroom van een app te onderzoeken en te begrijpen. Zie How to: Examine the Call Stackvoor gedetailleerde informatie.

Notitie

Het venster Call Stack is vergelijkbaar met het perspectief foutopsporing in sommige IDE's, zoals Eclipse.

Klik op het venster Aanroepstack tijdens het debuggen; het is standaard geopend in het deelvenster rechtsonder.

De aanroepstack onderzoeken

De aanroepstack onderzoeken

U kunt dubbelklikken op een coderegel om naar die broncode te gaan en dat wijzigt ook het huidige bereik dat wordt gecontroleerd door het foutopsporingsprogramma. Dit laat de debugger niet verder gaan.

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 specifieke functies, uw app opnieuw starten met Uitvoeren naar Cursoren de broncode onderzoeken.

Een uitzondering controleren

Wanneer uw app een uitzondering genereert, brengt de debugger u naar de coderegel die de uitzondering heeft veroorzaakt. Zie Een uitzondering inspecteren met behulp van de Exception Helpervoor gedetailleerde informatie.

Exception Helper

In dit voorbeeld ziet u in de Uitzonderingshulp een System.NullReferenceException uitzondering en een foutbericht met de mededeling dat de objectverwijzing niet is ingesteld op een exemplaar van het object. En het geeft aan dat de tekenreekswaarde null was toen u de Trim methode probeerde aan te roepen.

Exception Helper

In dit voorbeeld ziet u in de Helper voor uitzonderingen een System.Argument uitzondering en een foutbericht met de mededeling dat het pad geen juridische vorm is. We weten dus dat de fout is opgetreden in een methode of functieargument.

In dit voorbeeld heeft de DirectoryInfo aanroep de fout gegeven over de lege tekenreeks die is opgeslagen in de value variabele.

De Exception Helper is een uitstekende functie waarmee u fouten kunt opsporen. U kunt ook dingen doen zoals foutdetails weergeven en een horloge toevoegen vanuit de Helper voor uitzonderingen. Of, indien nodig, kunt u voorwaarden wijzigen voor het opwerpen van de specifieke uitzondering. Zie Technieken en hulpprogramma's voor foutopsporingvoor meer informatie over het afhandelen van uitzonderingen in uw code.

Vouw het Uitzonderingsinstellingen knooppunt uit om meer opties te zien over het afhandelen van dit uitzonderingstype, maar u hoeft niets te wijzigen voor deze rondleiding.

Fooi

Als u Copilothebt, kunt u AI-hulp krijgen tijdens het opsporen van uitzonderingen. Zoek naar de Ask Copilotscreenshot van de Ask Copilot-knop. knop. Zie Fouten opsporen met Copilotvoor meer informatie.

Hulp bij AI krijgen

Als u Copilot-hebt, kunt u ai-hulp krijgen tijdens het opsporen van fouten. Zie Fouten opsporen met Copilotvoor meer informatie. Tijdens foutopsporing kunt u ook zoeken naar de Ask Copilot-knopScreenshot van de Ask Copilot-knop. knop. In deze scenario's kent Copilot al de context voor uw vragen, dus u hoeft zelf geen context te bieden in Copilot-chat.

Foutopsporing configureren

U kunt uw project configureren om te bouwen als een foutopsporing of releaseconfiguratie, projecteigenschappen configureren voor foutopsporing of algemene instellingen configureren voor foutopsporing. Daarnaast kunt u het foutopsporingsprogramma configureren om aangepaste informatie weer te geven met behulp van functies zoals het kenmerk DebuggerDisplay of, voor C/C++, het NatVis-framework.

Foutopsporingseigenschappen zijn specifiek voor elk projecttype. U kunt bijvoorbeeld een argument opgeven dat moet worden doorgegeven aan de toepassing wanneer u deze start. U kunt de projectspecifieke eigenschappen openen door met de rechtermuisknop op het project in Solution Explorer te klikken en eigenschappen te selecteren. Foutopsporingseigenschappen worden doorgaans weergegeven op het tabblad Build of Foutopsporing, afhankelijk van het specifieke projecttype.

Vanaf Visual Studio 2022 biedt het tabblad Foutopsporing voor .NET-projecten een koppeling naar de gebruikersinterface voor het starten van foutopsporingsprofielen, waar u eigenschappen voor foutopsporing kunt instellen.

projecteigenschappen

projecteigenschappen

Fouten opsporen in live ASP.NET-apps in Azure App Service

Zie Fouten opsporen in Azure-appsals u fouten wilt opsporen in Azure App Service.

Voor Visual Studio Enterprise (alleen) maakt de Snapshot Debugger een momentopname van uw apps die in productie zijn wanneer code waarin u geïnteresseerd bent wordt uitgevoerd. Als u het foutopsporingsprogramma wilt instrueren om een momentopname te maken, stelt u snappoints en logboekpunten in uw code in. Met het foutopsporingsprogramma kunt u precies zien wat er mis is gegaan, zonder dat dit van invloed is op het verkeer van uw productietoepassing. Met het foutopsporingsprogramma voor momentopnamen kunt u de benodigde tijd aanzienlijk verminderen om problemen op te lossen die zich voordoen in productieomgevingen.

Het foutopsporingsprogramma voor momentopnamen starten

Momentopnameverzameling is beschikbaar voor ASP.NET toepassingen die worden uitgevoerd in Azure App Service. ASP.NET toepassingen moeten worden uitgevoerd op .NET Framework 4.6.1 of hoger en ASP.NET Core-toepassingen moeten worden uitgevoerd op .NET Core 2.0 of hoger in Windows.

Zie Debug live ASP.NET apps met behulp van het Snapshot Debuggervoor meer informatie.

Momentopnamen weergeven met IntelliTrace step-back (Visual Studio Enterprise)

IntelliTrace stap-terug maakt automatisch een momentopname van uw toepassing bij elk onderbrekingspunt en debugger-gebeurtenis. Met de opgenomen momentopnamen kunt u teruggaan naar eerdere onderbrekingspunten of stappen en de status van de toepassing bekijken zoals in het verleden. IntelliTrace-stap terug kan u tijd besparen wanneer u de vorige toepassingsstatus wilt zien, maar u de foutopsporing niet opnieuw wilt starten of de gewenste app-status opnieuw wilt maken.

U kunt door momentopnamen navigeren en deze weergeven met behulp van de knoppen Stap achteruit en Stap vooruit op de debugwerkbalk. Deze knoppen navigeren door de gebeurtenissen die worden weergegeven op het tabblad Gebeurtenissen in het Diagnostische hulpprogramma's.

knoppen voor vooruit en achteruit

Zie de pagina Vorige app-statussen controleren met behulp van IntelliTrace voor meer informatie.

Prestatieproblemen opsporen

Als uw app te langzaam wordt uitgevoerd of te veel geheugen gebruikt, moet u uw app mogelijk vroeg testen met de profileringshulpprogramma's. Zie Bekijk eerst de hulpprogramma's voor profileringvoor meer informatie over profileringsprogramma's zoals het hulpprogramma CPU-gebruik en de Memory Analyzer.

In deze zelfstudie hebt u een kort overzicht gehad van veel functies voor foutopsporingsprogramma's. Mogelijk wilt u een uitgebreider overzicht van een van deze functies, zoals onderbrekingspunten.