Titta först på Visual Studio-felsökningsprogrammet
Det här avsnittet beskriver de felsökningsverktyg som tillhandahålls av Visual Studio. I Visual Studio-kontxten, när du felsöker din app, innebär det vanligtvis att du kör programmet med felsökaren aktiv (det vill säga i felsökningsläge). När du gör det finns det många sätt för felsökningsprogrammet att se vad koden gör när den körs. Du kan gå igenom koden och titta på värdena som lagras i variabler. Du kan ställa in övervakning på variabler för att se när värdena ändras. Du kan undersöka exekveringsvägen för koden, med mera. Om det är första gången du försöker felsöka kod kanske du vill läsa Felsökning för helt nybörjare innan du går igenom det här ämnet. Om du försöker utföra en viss uppgift och behöver veta vilken funktion som ska användas, se Debugger feature finder. Information om hur du provar AI-assisterad felsökning finns i Felsökning med Copilot.
De funktioner som beskrivs här gäller för C#, C++, Visual Basic, JavaScript och andra språk som stöds av Visual Studio (förutom där det anges).
Ange en brytpunkt och starta felsökningsprogrammet
Brytpunkter är en användbar funktion när du känner till kodraden eller det kodavsnitt som du vill undersöka i detalj vid körningstid. Mer information om olika typer av brytpunkter, till exempel villkorliga brytpunkter och funktionsbrytningspunkter, finns i Använda brytpunkter.
För att felsöka måste du starta appen med felsökningsprogrammet som är kopplat till appprocessen. Så här gör du:
- Tryck på F5 (Debug > Start Debugging), som är den vanligaste metoden.
Men just nu kanske du inte har angett några brytpunkter för att undersöka din appkod, så vi gör det först och börjar sedan felsöka. Brytpunkter är den mest grundläggande och viktiga funktionen för tillförlitlig felsökning. En brytpunkt anger var Visual Studio ska pausa den kod som körs så att du kan ta en titt på värdena för variabler eller minnesbeteendet, eller om en kodgren körs eller inte.
Om du har en fil öppen i kodredigeraren kan du ange en brytpunkt genom att klicka på marginalen till vänster om en kodrad.
Tryck på F5 (Felsök > Starta felsökning) eller knappen Starta felsökning i verktygsfältet för felsökning och felsökningsprogrammet körs till den första brytpunkten som den stöter på. Om appen inte körs ännu startar F5 felsökningsprogrammet och stoppar vid den första brytpunkten.
Navigera kod i felsökningsprogrammet med hjälp av stegkommandon
Vi tillhandahåller kortkommandon för de flesta kommandon eftersom de gör navigeringen av din appkod snabbare. (Motsvarande kommandon, till exempel menykommandon, visas inom parenteser.) Mer information om hur du använder stegkommandona finns i Navigera kod i felsökningsprogrammet.
Starta appen med felsökningsprogrammet kopplat genom att trycka på F11 (Felsöka > Steg in i). F11 är kommandot Step Into och avancerar appkörningen en instruktion i taget. När du startar appen med F11 bryts felsökningsprogrammet på den första instruktionen som körs.
Den gula pilen representerar instruktionen där felsökningsprogrammet pausade, vilket också pausar appkörningen vid samma tidpunkt (den här instruktionen har ännu inte körts).
F11 är ett bra sätt att undersöka körningsflödet så detaljerat som möjligt. (Om du vill gå snabbare genom kod visar vi även några andra alternativ.) Som standard hoppar felsökningsprogrammet över icke-användarkod (om du vill ha mer information kan du läsa Just My Code).
Not
I hanterad kod visas en dialogruta som frågar om du vill få ett meddelande när du automatiskt går över egenskaper och operatorer (standardbeteende). Om du vill ändra inställningen senare kan du inaktivera inställningen Steg över egenskaper och operatorer i menyn Verktyg > Alternativ under Felsökning.
Stega över kod för att hoppa över funktioner
När du är på en kodrad som är ett funktions- eller metodanrop kan du trycka på F10 (Felsöka > Steg över) i stället för F11.
F10 avancerar felsökningsprogrammet utan att gå in på funktioner eller metoder i appkoden (koden körs fortfarande). Genom att trycka på F10 kan du hoppa över kod som du inte är intresserad av. På så sätt kan du snabbt komma åt kod som du är mer intresserad av. Mer information om hur du använder stegkommandona finns i Navigera kod i felsökningsprogrammet.
Kör till en punkt i koden snabbt med musen
Att använda knappen Kör för att klicka på liknar att ange en tillfällig brytpunkt. Det här kommandot är också praktiskt för att snabbt komma runt i en synlig region med appkod. Du kan använda Run to Click i valfri öppen fil. Mer information om den här funktionen och liknande navigeringsfunktioner finns i Kör till en specifik plats i koden.
När du är i felsökningsprogrammet, hovra över en kodrad tills knappen Kör till klick (Utför till här) visas till vänster.
Not
Knappen Kör till Klick (Kör till här) är tillgänglig från Visual Studio 2017 och framåt.
Klicka på knappen Kör till (Kör programmet hit). Felsökningsprogrammet går vidare till den kodrad där du klickade.
Flytta ut felsökningsprogrammet från den aktuella funktionen
Ibland kanske du vill fortsätta felsökningssessionen men gå vidare med felsökningsprogrammet hela vägen genom den aktuella funktionen.
Tryck på Skift + F11 (eller Felsök > Steg ut).
Det här kommandot återupptar appkörningen (och avancerar felsökningsprogrammet) tills den aktuella funktionen returneras.
Kör till markören
När du redigerar kod (i stället för att pausa i felsökningsprogrammet) högerklickar du på en kodrad i appen och väljer Kör till markör (eller trycker på Ctrl + F10). Det här kommandot börjar felsöka och anger en tillfällig brytpunkt på den aktuella kodraden. Mer information om den här funktionen och liknande navigeringsfunktioner finns i Kör till en specifik plats i koden.
Om du har angett brytpunkter pausar felsökningsprogrammet den första brytpunkten som den träffar.
Tryck på F5 tills du når kodraden där du valde Kör till markör.
Det här kommandot är användbart när du redigerar kod och snabbt vill ange en tillfällig brytpunkt och starta felsökningsprogrammet samtidigt.
Not
Du kan använda Kör till markör i fönstret Anropsstack när du felsöker.
Starta om appen snabbt
Klicka på knappen Starta om i verktygsfältet Felsökning (eller tryck på Ctrl + Skift + F5).
När du trycker på Starta omsparar den tid jämfört med att stoppa appen och starta om felsökningsprogrammet. Felsökningsprogrammet pausar vid den första brytpunkten som träffas genom att köra kod.
Om du vill stoppa felsökningsprogrammet och gå tillbaka till kodredigeraren kan du trycka på det röda stoppet i stället för Starta om.
Redigering av livekod
Visual Studio 2022 stöder direktkodredigering vid felsökning. Detaljerad information finns i:
Redigera koden och fortsätt felsökningen (C#, VB, C++, XAML)
På de flesta språk som stöds av Visual Studio kan du redigera koden mitt i en felsökningssession och fortsätta felsökningen. Om du vill använda den här funktionen klickar du i koden med markören medan du pausar i felsökningsprogrammet, redigerar och trycker på F5, F10eller F11 för att fortsätta felsökningen. Mer information om hur du använder den här funktionen och om funktionsbegränsningar finns i Redigera och fortsätt.
Information om hur du ändrar XAML-kod under en felsökningssession finns i Skriva och felsöka XAML-kod med XAML Hot Reload.
Inspektera variabler med datatips
Nu när du vet hur du tar dig runt lite har du en bra möjlighet att börja inspektera apptillståndet (variabler) med felsökningsprogrammet. Funktioner som gör att du kan inspektera variabler är några av de mest användbara funktionerna i felsökningsprogrammet, och det finns olika sätt att göra det på. När du försöker felsöka ett problem försöker du ofta ta reda på om variabler lagrar de värden som du förväntar dig att de ska ha i ett visst apptillstånd. Detaljerad information om hur du använder datatips finns i Visa datavärden i datatips.
När du har pausat felsökningsprogrammet hovra över ett objekt med musen och du ser dess värde eller dess standardegenskapsvärde.
Om variabeln har egenskaper kan du expandera objektet för att se alla dess egenskaper.
När du felsöker vill du ofta ha ett snabbt sätt att kontrollera egenskapsvärden för objekt, och datatipsen är ett bra sätt att göra det på.
Granska variabler med fönstren Auto och Lokal.
I fönstret Autos ser du variabler tillsammans med deras aktuella värde och deras typ. Fönstret Autos visar alla variabler som används på den aktuella raden eller föregående rad (I C++visar fönstret variabler i de föregående tre kodraderna. Kontrollera dokumentationen för språkspecifikt beteende). Mer information om hur du använder dessa fönster finns i Granska variabler i fönstren Autos och Locals.
När du felsöker kan du titta på fönstret Autos längst ned i kodredigeraren.
Not
I JavaScript stöds Locals-fönstret, men inte fönstret Autos.
Titta sedan i fönstret Locals. Fönstret Locals visar de variabler som för närvarande finns inom räckhåll.
I det här exemplet finns this
-objektet och objektet f
i omfånget. Mer information finns i Granska variabler i Windows-för automatiska och lokala objekt.
Visa returvärden för metodanrop
I .NET- och C++-kod kan du undersöka returvärdena i fönstret Autos när du kliver över eller ut ur ett metodanrop, vilket kan vara användbart när returvärdet inte lagras i en lokal variabel. Mer information finns i Visa returvärden för metodanrop.
Från och med Visual Studio 2022 version 17.12 Preview 3 kan du också visa returvärden för metodanrop infogade och inte bara i fönstret Autos.
Med Copilot aktiverat kan du också få riktad hjälp relaterad till det infogade returvärdet med hjälp av knappen Fråga Copilot som visas i datatipset för returvärdet.
Ställ in en klocka eller håll utkik
Du kan använda ett Watch-fönster för att ange en variabel (eller ett uttryck) som du vill hålla ett öga på. Detaljerad information finns i Ange en klocka med hjälp av Watch och QuickWatch Windows.
När du felsöker högerklickar du på ett objekt och väljer Lägg till klocka.
I det här exemplet har du en klocka inställd på objektet och du kan se dess värde ändras när du går igenom felsökningsprogrammet. Till skillnad från de andra variabelfönstren visar Watch-fönstren alltid de variabler som du tittar på (de är nedtonade när de ligger utanför omfånget).
Granska anropsstacken
Fönstret Call Stack visar i vilken ordning metoder och funktioner anropas. Den översta raden visar den aktuella funktionen. Den andra raden visar funktionen eller egenskapen som den anropades från och så vidare. Anropsstacken är ett bra sätt att undersöka och förstå körningsflödet för en app. Detaljerad information finns i How to: Examine the Call Stack.
Not
Fönstret Call Stack liknar felsökningsperspektivet i vissa IDE:er som Eclipse.
Klicka på fönstret Anropsstapeln medan du felsöker, som som standard är öppet i det nedre högra fönstret.
Du kan dubbelklicka på en kodrad för att gå och titta på källkoden och som även ändrar det aktuella omfång som kontrolleras av felsökningsprogrammet. Detta för inte fram felsökningsprogrammet.
Du kan också använda högerklicksmenyer från fönstret Anropsstack för att göra andra saker. Du kan till exempel infoga brytpunkter i specifika funktioner, starta om appen med Kör till marköroch gå igenom källkoden.
Inspektera ett undantag
När appen utlöser ett undantag tar felsökningsprogrammet dig till den kodrad som utlöste undantaget. Detaljerad information finns i Inspektera ett undantag med hjälp av undantagshjälpen.
I det här exemplet visar undantagshjälpverktyget ett System.NullReferenceException
undantag och ett felmeddelande som säger att objektreferensen inte är inställd på en instans av objektet. Och det visar oss att strängvärdet var null när du försökte anropa metoden Trim
.
I det här exemplet visar undantagshjälparen ett System.Argument
undantag och ett felmeddelande som säger att sökvägen inte har ett giltigt format. Så vi vet att felet inträffade på ett metod- eller funktionsargument.
I det här exemplet orsakade DirectoryInfo
-anropet ett fel på den tomma strängen som lagras i variabeln value
.
Undantagshjälpen är en bra funktion som kan hjälpa dig att felsöka fel. Du kan också, till exempel, visa felinformation och lägga till en övervakning från undantagshjälpen. Eller, om det behövs, kan du ändra villkoren för att utlösa det specifika undantaget. Mer information om hur du hanterar undantag i koden finns i felsökningstekniker och verktyg.
Expandera undantagsinställningar nod för att se fler alternativ för hur du hanterar den här undantagstypen, men du behöver inte ändra något för den här rundturen!
Tips
Om du har Copilotkan du få AI-hjälp när du felsöker undantag. Leta bara efter Fråga Copilot knapp. Mer information finns i Felsöka med Copilot.
Få AI-hjälp
Om du har Copilotkan du få AI-hjälp när du felsöker. Mer information finns i Felsöka med Copilot. När du felsöker kan du också leta efter knappen Fråga Copilot knapp. I dessa scenarier känner Copilot redan till kontexten för dina frågor, så du behöver inte ange kontext själv i Copilot-chatten.
Konfigurera felsökning
Du kan konfigurera projektet så att det skapas som en Felsökning eller Versionskonfiguration, konfigurera projektegenskaper för felsökning eller konfigurera allmänna inställningar för felsökning. Dessutom kan du konfigurera felsökaren så att den visar anpassad information med hjälp av funktioner som DebuggerDisplay attribut eller, för C/C++, NatVis-ramverket.
Felsökningsegenskaper är specifika för varje projekttyp. Du kan till exempel ange ett argument som ska skickas till programmet när du startar det. Du kan komma åt de projektspecifika egenskaperna genom att högerklicka på projektet i Solution Explorer och välja Egenskaper. Felsökningsegenskaper visas vanligtvis på fliken Build eller Debug, beroende på vilken projekttyp det gäller.
Från och med Visual Studio 2022 innehåller fliken Felsökning för .NET-projekt en länk till användargränssnittet för felsökningsstartprofiler, där du kan ange felsökningsrelaterade egenskaper.
Felsöka live-ASP.NET-appar i Azure App Service
Information om hur du felsöker i Azure App Service finns i Felsöka Azure-appar.
För Visual Studio Enterprise (endast) tar Snapshot Debugger en ögonblicksbild av dina produktionsappar när kod som du är intresserad av körs. Om du vill instruera felsökaren att ta en ögonblicksbild anger du snappunkter och loggpunkter i koden. Med felsökningsprogrammet kan du se exakt vad som gick fel, utan att påverka trafiken i ditt produktionsprogram. Felsökningsprogrammet för ögonblicksbilder kan hjälpa dig att avsevärt minska den tid det tar att lösa problem som uppstår i produktionsmiljöer.
Ögonblicksbildsamling är tillgänglig för ASP.NET program som körs i Azure App Service. ASP.NET program måste köras på .NET Framework 4.6.1 eller senare och ASP.NET Core-program måste köras på .NET Core 2.0 eller senare i Windows.
Mer information finns i Felsöka live-ASP.NET-appar med hjälp av felsökningsprogrammet för ögonblicksbilder.
Visa ögonblicksbilder med IntelliTrace step-back (Visual Studio Enterprise)
IntelliTrace steg tillbaka tar automatiskt en ögonblicksbild av ditt program vid varje brytpunkt och felsökningssteghändelse. Med de inspelade ögonblicksbilderna kan du gå tillbaka till tidigare brytpunkter eller steg och visa programmets tillstånd som det var tidigare. IntelliTrace step-back kan spara tid när du vill se det tidigare programtillståndet men inte vill starta om felsökningen eller återskapa det önskade apptillståndet.
Du kan navigera och visa ögonblicksbilder med hjälp av knapparna Steg bakåt och Steg framåt i verktygsfältet Felsökning. De här knapparna navigerar i händelserna som visas på fliken Händelser i fönstret Diagnostikverktyg.
Mer information finns på sidan Inspektera tidigare apptillstånd med intelliTrace-.
Felsöka prestandaproblem
Om appen körs för långsamt eller använder för mycket minne kan du behöva testa appen med profileringsverktygen tidigt. Mer information om profileringsverktyg som cpu-användningsverktyget och Minnesanalys finns i Titta först på profileringsverktygen.
Relaterat innehåll
I den här självstudien har du snabbt tittat på många felsökningsfunktioner. Du kanske vill ha en mer djupgående titt på någon av dessa funktioner, till exempel brytpunkter.