Dela via


Lär dig produktivitetstips för felsökningsprogrammet i Visual Studio

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.

Fästa ett datatips

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.

Redigera och fortsätt att felsöka

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

  1. Högerklicka på en brytpunktsikon (den röda sfären) och välj Villkor.

  2. I fönstret Brytpunktsinställningar skriver du ett uttryck.

    Villkorlig brytpunkt

  3. 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

  1. Ange en brytpunkt nära en variabel som du vill spåra.

  2. Starta felsökningsprogrammet (F5) och stoppa vid brytpunkten.

  3. Leta reda på variabeln i fönstret Locals (Felsöka > Windows > Locals), högerklicka på variabeln och välj Skapa objekt-ID.

    Skapa ett objekt-ID

  4. Du bör se ett $ plus ett tal i fönstret Locals. Den här variabeln är objekt-ID:t.

  5. 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.

Autos Window

Dessutom kan du ange funktioner i fönstret Omedelbart för att visa returvärden. (Öppna den med Debug > Windows > Omedelbar.)

Omedelbart fönster

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 VisualizerIcon medan du hovrar över en variabel som innehåller ett strängvärde.

Öppna en String Visualizer

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.

JSON String Visualizer

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.

Dialogrutan Undantagsinställningar

Ä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.

Flytta körningspekaren

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:

  1. Klicka på knappen Visa trådar i källaVisa trådar i källa i verktygsfältet Felsök när du felsöker.

  2. Titta på rännstenen till vänster i fönstret. På den här raden visas en trådmarkörikonTrådmarkör 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.

  3. 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.

Visa symbolinformation i fönstret Moduler

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:

Kortkommandon