Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Läs det här avsnittet om du vill lära dig några produktivitetstips för Visual Studio-felsökningsprogrammet. En titt på de grundläggande funktionerna i felsökningsprogrammet finns i Första titt på felsökningsprogrammet. I det här avsnittet går vi igenom några områden som inte ingår i funktionsturnén.
Kortkommandon för tangentbord
En lista över de vanligaste kortkommandona som rör felsökning finns i felsökningsavsnittet i Kortkommandon.
Fastnåla datatips
Om du ofta hovra över datatips vid felsökning kanske du vill fästa datatipset för variabeln för att ge dig själv snabb åtkomst. Variabeln förblir fäst även efter omstart. Fäst datatipset genom att klicka på fästikonen när du håller muspekaren över det. Du kan fästa flera variabler.
               
              
            
Du kan också anpassa datatips på flera andra sätt, till exempel att hålla ett datatips expanderat (ett klibbigt datatips) eller göra ett datatips transparent. Mer information finns i Visa datavärden i Datatips i kodredigeraren.
Redigera koden och fortsätt felsökningen (C#, VB, C++)
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 funktionen och om funktionsbegränsningar finns i Redigera och Fortsätt.
Redigera XAML-kod och fortsätt felsökningen
Information om hur du ändrar XAML-kod under en felsökningssession finns i Skriva och felsöka XAML-kod med XAML Hot Reload.
Felsöka problem som är svåra att återskapa
Om det är svårt eller tidskrävande att återskapa ett visst tillstånd i din app bör du överväga om användningen av en villkorlig brytpunkt kan vara till hjälp. Du kan använda villkorliga brytpunkter och filter brytpunkter för att undvika att bryta sig in i din appkod tills appen har ett önskat tillstånd (till exempel ett tillstånd där en variabel lagrar felaktiga data). Du kan ange villkor med hjälp av uttryck, filter, antal träffar och så vidare.
Så här skapar du en villkorsstyrd brytpunkt
- Högerklicka på en brytpunktsikon (den röda sfären) och välj Villkor. 
- I fönstret Brytpunktsinställningar skriver du ett uttryck.   
- Om du är intresserad av en annan typ av villkor väljer du Filtrera i stället för Villkorsuttryck i dialogrutan Brytpunktsinställningar och följer sedan filtertipsen. 
Konfigurera data som ska visas i felsökningsprogrammet
För C#, Visual Basic och C++ (endast C++/CLI-kod) kan du tala om för felsökaren vilken information som ska visas med hjälp av attributet DebuggerDisplay . För C++-kod kan du göra samma sak med hjälp av Natvis-visualiseringar.
Koppla till samma program upprepade gånger
När du använder funktionen koppla till process kan du snabbt ansluta till en process som du tidigare var ansluten till genom att välja Felsöka>återanslutning till process (Skift+Alt+P). När du väljer det här kommandot försöker felsökaren omedelbart ansluta till den sista processen som du kopplade till genom att först försöka matcha föregående process-ID och om det misslyckas genom att matcha med det tidigare processnamnet. Om inga matchningar hittas, eller om flera processer har samma namn, öppnas dialogrutan Koppla till process så att du kan välja rätt process.
Spåra ett objekt utanför omfånget (C#, Visual Basic)
Det är enkelt att visa variabler med hjälp av felsökningsfönster som klockfönstret . Men när en variabel hamnar utanför omfånget i Watch-fönstret kanske du märker att den är nedtonad. I vissa appscenarier kan värdet för en variabel ändras även när variabeln är utanför omfånget, och du kan vilja titta närmare på den (till exempel kan en variabel bli föremål för skräpinsamling). Du kan spåra variabeln genom att skapa ett objekt-ID för den i bevakningsfönstret .
Skapa ett objekt-ID
- Ange en brytpunkt nära en variabel som du vill spåra. 
- Starta felsökningsprogrammet (F5) och stoppa vid brytpunkten. 
- Leta reda på variabeln i fönstret Locals (Felsöka > Windows > Locals), högerklicka på variabeln och välj Skapa objekt-ID.   
- Du bör se ett $ plus ett tal i fönstret Locals. Den här variabeln är objekt-ID:t. 
- Högerklicka på objekt-ID-variabeln och välj Lägg till bevakning. 
Mer information finns i Skapa ett objekt-ID.
Visa returvärden för funktioner
Om du vill visa returvärden för dina funktioner kan du titta på de funktioner som visas i fönstret Autos medan du går igenom koden. Om du vill se returvärdet för en funktion kontrollerar du att funktionen som du är intresserad av redan har körts (tryck på F10 en gång om du för närvarande är stoppad i funktionsanropet). Om fönstret är stängt använder du Debug > Windows > Autos för att öppna fönstret Autos.
               
              
            
Dessutom kan du ange funktioner i fönstret Omedelbart för att visa returvärden. (Öppna den med Debug > Windows > Omedelbar.)
               
              
            
Du kan också använda pseudovariables i fönstret Titta och omedelbart , till exempel $ReturnValue.
Granska strängar i en visualiserare
När du arbetar med strängar kan det vara bra att visa hela den formaterade strängen. Om du vill visa en oformaterad text, XML, HTML eller JSON-sträng klickar du på förstoringsglasikonen  medan du hovrar över en variabel som innehåller ett strängvärde.
 medan du hovrar över en variabel som innehåller ett strängvärde.
               
              
            
En strängvisualiserare kan hjälpa dig att ta reda på om en sträng är felaktigt formaterad, beroende på strängtyp. Ett tomt värdefält anger till exempel att strängen inte känns igen av visualiserartypen. Mer information finns i dialogrutan För strängvisualisering.
               
              
            
För några andra typer, till exempel DataSet- och DataTable-objekt som visas i felsökningsfönstren, kan du också öppna en inbyggd visualiserare.
Analysera minnesanvändning
Du kan ta och jämföra ögonblicksbilder av heapen, optimera minnesanvändningen och hitta en minnesläcka med hjälp av verktyg för minnesanvändning. Mer information finns i Välj ett verktyg för minnesanalys.
Skapa en dumpfil
En dumpfil är en ögonblicksbild som visar processen som kördes och moduler som lästes in för en app vid en tidpunkt. En dump med heap-information innehåller också en ögonblicksbild av appens minne just då. Dumpar används främst för att felsöka problem från datorer som utvecklare inte har åtkomst till.
Om du behöver spara en dumpfil väljer du Felsök > Spara dump som.
Om du vill analysera en dumpfil väljer du Öppna fil > i Visual Studio. Om du vill börja felsöka med dumpfilen väljer du Felsök med Endast hanterad, Felsök med endast inbyggt, Felsökning med blandat eller Felsökning med hanterat minne.
Mer information finns i Dump-filer.
Dela upp i kod vid hanterade undantag
Felsökningsprogrammet bryter sig in i koden vid ohanterade undantag. Hanterade undantag (till exempel undantag som inträffar inom ett try/catch block) kan dock också vara en källa till buggar och du kanske vill undersöka när de inträffar. Du kan konfigurera felsökaren så att den bryter sig in i kod för hanterade undantag och genom att konfigurera alternativ i dialogrutan Undantagsinställningar . Öppna den här dialogrutan genom att välja Felsöka > windows-undantagsinställningar>.
I dialogrutan Undantagsinställningar kan du be felsökaren att bryta sig in i kod vid specifika undantag. I bilden nedan bryter felsökningsprogrammet in i koden när en System.NullReferenceException inträffar. Mer information finns i Hantera undantag.
               
              
            
Ändra körningsflödet
När felsökningsprogrammet har pausats på en kodrad använder du musen för att hämta den gula pilpekaren till vänster. Flytta den gula pilpekaren till en annan punkt i körningsspåret. Sedan använder du F5 eller ett stegkommando för att fortsätta köra appen.
               
              
            
Genom att ändra körflödet kan du till exempel testa olika exekveringsvägar för kod eller köra om kod utan att starta om debuggern. För mer information, se Flytta körningspekaren.
Varning
Ofta måste du vara försiktig med den här funktionen och du ser en varning i knappbeskrivningen. Du kan också se andra varningar. Det går inte att återställa appen till ett tidigare programtillstånd om du flyttar pekaren.
Felsöka dödlägen och konkurrensförhållanden
Om du behöver felsöka de typer av problem som är gemensamma för flertrådade appar hjälper det ofta till att visa platsen för trådar vid felsökning. Du kan enkelt göra detta med knappen Visa trådar i källa .
Så här visar du trådar i källkoden:
- Klicka på knappen Visa trådar i källa  i verktygsfältet Felsök när du felsöker. i verktygsfältet Felsök när du felsöker.
- Titta på rännstenen till vänster i fönstret. På den här raden visas en trådmarkörikon  som liknar två tygtrådar. Trådmarkören anger att en tråd stoppas på den här platsen. som liknar två tygtrådar. Trådmarkören anger att en tråd stoppas på den här platsen.- Observera att en trådmarkör delvis kan döljas av en brytpunkt. 
- Hovra pekaren över trådmarkören. En DataTip visas. DataTip anger namn och tråd-ID för varje stoppad tråd. - Du kan också visa platsen för trådar i fönstret Parallella staplar. 
Bekanta dig mer med hur felsökningsprogrammet ansluter till din app (C#, C++, Visual Basic, F#)
Om du vill ansluta till din app som körs läser felsökningsprogrammet in symbolfiler (.pdb) som genererats för exakt samma version av appen som du försöker felsöka. I vissa scenarier kan lite kunskap om symbolfiler vara till hjälp. Du kan undersöka hur Visual Studio läser in symbolfiler med hjälp av fönstret Moduler .
Öppna fönstret Moduler vid felsökning genom att välja Felsöka > Windows-moduler>. Fönstret Moduler kan berätta vilka moduler felsökaren behandlar som användarkod eller Min kod och symbolens inläsningsstatus för modulen. I de flesta fall hittar felsökaren automatiskt symbolfiler för användarkod, men om du vill gå in i (eller felsöka) .NET-kod, systemkod eller bibliotekskod från tredje part krävs extra steg för att hämta rätt symbolfiler.
               
              
            
Du kan läsa in symbolinformation direkt från fönstret Moduler genom att högerklicka och välja Läs in symboler.
Ibland skickar apputvecklare appar utan matchande symbolfiler (för att minska fotavtrycket), men behåller en kopia av de matchande symbolfilerna för bygget så att de kan felsöka en publicerad version senare.
Information om hur felsökaren klassificerar kod som användarkod finns i Just My Code(Just My Code). Mer information om symbolfiler finns i Ange symbol (.pdb) och källfiler i Visual Studio-felsökningsprogrammet.
Lära sig mer
Ytterligare tips och råd och mer detaljerad information finns i följande blogginlägg: