Dela via


Självstudie: Lär dig att felsöka Visual Basic-kod med hjälp av Visual Studio

Den här artikeln beskriver funktionerna i Visual Studio-felsökningsprogrammet i en stegvis genomgång. Om du vill ha en vy på högre nivå över felsökningsfunktionerna kan du läsa Översikt över Visual Studio-felsökningsprogrammet. När du felsöker din app innebär det vanligtvis att du kör ditt program med felsökningsprogrammet kopplat. När du gör den här uppgiften tillhandahåller felsökningsprogrammet många sätt att se vad din kod gör när den körs.

  • Stega igenom koden och titta på de värden som lagras i variabler.
  • Ställ in klockor på variabler för att se när värden ändras.
  • Granska körvägen för din kod för att se om en kodgren av koden körs.

Om den här övningen är första gången du försöker felsöka kod kanske du vill läsa Felsökning för absoluta nybörjare.

Även om demonstrationsappen i den här artikeln använder Visual Basic gäller de flesta funktionerna för C#, C++, F#, Python, JavaScript och andra språk som stöds av Visual Studio. F# stöder inte Edit-and-continue. F# och JavaScript stöder inte fönstret Autos . Skärmbilderna finns i Visual Basic.

I den här handledningen kommer du att:

  • Starta felsökningsprogrammet och träffa brytpunkter
  • Lär dig kommandon för att stega igenom kod i felsökningsprogrammet
  • Granska variabler i datatips och felsökningsfönster
  • Granska anropsstacken

Förutsättningar

Du måste ha Visual Studio installerat, inklusive arbetsbelastningen .NET Core-plattformöverskridande utveckling.

  • Om du behöver installera Visual Studio, för en kostnadsfri version, se Visual Studio-nedladdningar.
  • Om du behöver installera arbetsbelastningen men redan har Visual Studio går du till Verktyg>Hämta verktyg och funktioner..., som öppnar Installationsprogrammet för Visual Studio. Välj arbetsbelastningen för .NET-skrivbordsutveckling och välj då Ändra.

Skapa ett projekt

Skapa först ett .NET Core-konsolprogramprojekt. Projekttypen levereras med alla mallfiler du behöver, innan du ens lägger till något!

  1. Öppna Visual Studio. Om startfönstret inte är öppet väljer du Startfönster för fil>.

  2. I startfönstret väljer du Skapa ett nytt projekt.

  3. I fönstret Skapa ett nytt projekt går du till sökrutan och anger konsolen. Välj sedan Visual Basic i listan Språk och välj sedan Windows i listan Plattform.

    När du har tillämpat språk- och plattformsfilter väljer du mallen Konsolapp för .NET Core och väljer sedan Nästa.

    Skärmbild som visar fönstret Skapa ett nytt projekt med

    Anmärkning

    Om du inte ser mallen Console App kan du installera den från fönstret Skapa ett nytt projekt. I meddelandet Hitta inte det du letar efter? väljer du länken Installera fler verktyg och funktioner . Välj sedan arbetsbelastningen .NET Desktop Development i Visual Studio Installer.

  4. I fönstret Konfigurera det nya projektet anger du get-started-debugging för Projektnamn. Välj sedan Nästa.

  5. I fönstret Ytterligare information kontrollerar du att .NET 10.0 har valts för Framework och väljer sedan Skapa.

  1. Öppna Visual Studio. Om startfönstret inte är öppet väljer du Startfönster för fil>.

  2. I startfönstret väljer du Skapa ett nytt projekt.

  3. I fönstret Skapa ett nytt projekt går du till sökrutan och anger konsolen. Välj sedan Visual Basic i listan Språk och välj sedan Windows i listan Plattform.

    När du har tillämpat språk- och plattformsfilter väljer du mallen Konsolapp för .NET Core och väljer sedan Nästa.

    Skärmbild som visar fönstret Skapa ett nytt projekt i Visual Studio 2022 med

    Anmärkning

    Om du inte ser mallen Console App kan du installera den från fönstret Skapa ett nytt projekt. I meddelandet Hitta inte det du letar efter? väljer du länken Installera fler verktyg och funktioner . Välj sedan arbetsbelastningen .NET Desktop Development i Visual Studio Installer.

  4. I fönstret Konfigurera det nya projektet anger du get-started-debugging för Projektnamn. Välj sedan Nästa.

  5. I fönstret Ytterligare information kontrollerar du att .NET 8.0 har valts för Framework och väljer sedan Skapa.

Visual Studio öppnar det nya projektet.

Skapa programmet

I Program.vb ersätter du all standardkod med följande kod:

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

Starta felsökningsprogrammet!

  1. Tryck på F5 (Felsök > Starta felsökning) eller välj den gröna knappen Starta felsökning i verktygsfältet Felsökning.

    Skärmbild som visar verktygsfältet Felsökning med den gröna knappen Starta felsökning markerad.

    F5 startar appen med felsökningsprogrammet kopplat till appprocessen. Hittills har du inte gjort något speciellt för att undersöka koden. Appen laddas helt enkelt och du ser utdata på konsolen.

    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 10
    

    I den här självstudien tar du en närmare titt på den här appen med hjälp av felsökningsprogrammet och tar en titt på felsökningsfunktionerna.

  2. Stoppa felsökningsprogrammet genom att trycka på (Skift + F5) eller välj den röda knappen Stoppa felsökning i verktygsfältet Felsökning.

    Skärmbild som visar verktygsfältet Felsökning med den röda knappen Stoppa felsökning markerad.

  3. I konsolfönstret trycker du på en tangent för att stänga konsolfönstret.

Ange en brytpunkt och starta felsökningsprogrammet

  1. I -loopen For för Main funktionen anger du en brytpunkt genom att klicka på vänstermarginalen på följande kodrad:

    name += letters(i)

    En röd cirkel visas där du anger brytpunkten.

    Brytpunkter är en av de mest grundläggande och viktigaste funktionerna i tillförlitlig felsökning. En brytpunkt anger var Visual Studio pausar koden som körs. När du är pausad kan du titta på värdena för variabler eller minnesbeteendet. Du kan se om en gren av kod körs.

  2. Tryck på F5 (Felsök > startfelsökning) eller knappen Starta felsökning i verktygsfältet Felsökning. Appen startar och felsökningsprogrammet körs till den kodrad där du anger brytpunkten.

    Skärmbild som visar Visual Studio Code-redigeringsfönstret med exekveringen stoppad vid en brytpunkt.

    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.

    Om appen inte körs ännu startar F5 felsökningsprogrammet och stoppar vid den första brytpunkten. Annars fortsätter F5 att köra appen till nästa brytpunkt.

    Brytpunkter är en användbar funktion när du känner till kodraden eller det kodavsnitt som du vill undersöka i detalj. Information om de olika typerna av brytpunkter finns i Använda brytpunkter.

Den här artikeln använder kortkommandona eftersom det är ett bra sätt att snabbt köra appen i felsökningsprogrammet. Den visar motsvarande kommandon, till exempel menykommandon, inom parenteser.

  1. Medan kodkörningen är pausad i For loopen i Main metoden trycker du på F11 (eller väljer Felsöka > Steg in) två gånger för att fortsätta till metodanropet SendMessage.

    När du har tryckt på F11 två gånger bör du vara på den här kodraden:

    SendMessage(name, a(i))

  2. Tryck på F11 en gång till för att gå in i SendMessage metoden.

    Den gula pekaren avancerar till SendMessage metoden.

    Skärmbild som visar en felsökningssession i Visual Studio Code-redigeraren med körningen pausad efter att ha gått in i metoden

    F11 är kommandot Step Into . Avancerar appkörningen en sats för gång. F11 är ett bra sätt att undersöka exekveringsflödet i mest detalj. Som standard hoppar felsökningsprogrammet över kod som inte är använda. Mer information finns i Just My Code.

    Anta att du är klar med att undersöka SendMessage metoden och vill lämna metoden men stanna kvar i felsökaren. Du kan göra detta med hjälp av kommandot Step Out .

  3. Tryck på Skift + F11 (eller Debug> Steg ut).

    Det här kommandot återupptar appkörningen och avancerar felsökningsprogrammet tills den aktuella metoden eller funktionen returnerar.

    Du bör vara tillbaka i For-slingan i Main-metoden, pausad vid metodanropet SendMessage.

  4. Tryck på F11 flera gånger tills du kommer tillbaka till metodanropet SendMessage igen.

  5. Medan kodkörningen pausas vid metodanropet trycker du på F10 (eller väljer Felsöka > Steg över) en gång.

    Skärmbild som visar en Debugging-session i Visual Studio Code med körningen pausad efter att ha gått över metodanropet 'SendMessage'.

    Den här gången går felsökningsprogrammet inte in i SendMessage metoden. F10 avancerar felsökningsprogrammet utan att gå in på funktioner eller metoder i appkoden. Koden körs fortfarande. Genom att trycka på F10 på metodanropet SendMessage i stället för F11 hoppade du över implementeringskoden för SendMessage. Mer information om olika sätt att gå igenom koden finns i Navigera kod i felsökningsprogrammet.

  1. Tryck på F5 för att gå vidare till brytpunkten igen.

  2. Rulla nedåt i kodredigeraren och hovra över Console.WriteLine metoden i SendMessage metoden tills den gröna knappen Kör för att klicka visas. Knappbeskrivningen för knappen visar Kör körning till här.

    Skärmbild som visar knappen Kör vid klick med verktygstips markerad till vänster i kodredigerarens fönster.

  3. Välj knappen Kör för att klicka .

    Felsökningsprogrammet avancerar till Console.WriteLine -metoden.

    Att använda den här knappen liknar att ange en tillfällig brytpunkt. Run to Click är praktiskt för att snabbt navigera inom en synlig del av appkod, som du kan välja i vilken öppen fil som helst.

Starta om appen snabbt

Starta om appen genom att trycka på tangentkombinationen Ctrl + Skift + F5 . Det sparar 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.

Felsökningsprogrammet stoppas igen vid den brytpunkt som du tidigare angav i loopen For .

Inspektera variabler med datatips

Felsökningsprogrammet har funktioner som gör att du kan inspektera variabler. Det finns olika sätt att inspektera variabler. 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 vid en viss tidpunkt.

  1. När kodkörningen är pausad vid statement name += letters[i], hovra över variabeln letters. Du ser dess standardvärde, värdet för det första elementet i matrisen, "f"c.

  2. Hovra sedan över variabeln name för att se dess aktuella värde, en tom sträng.

  3. Tryck på F5 (eller Felsök>Fortsätt) några gånger för att iterera flera gånger genom loopen For , pausa igen vid brytpunkten och hovra över variabeln name varje gång för att kontrollera dess värde.

    Skärmbild som visar felsökningen stoppad i kodredigeraren, med den markerade namnvariabeln och ett datatips som visar dess värde.

    Värdet för variabeln ändras med varje iteration av For-loopen, som visar värden för f, sedan fr, sedan freoch så vidare.

    När du felsöker kod vill du ofta ha ett snabbt sätt att kontrollera egenskapsvärden för variabler för att se om de lagrar de värden som du förväntar dig att de ska lagra. Datatips är ett bra sätt att göra det på.

Granska variabler med fönstren Auto och Lokal.

  1. Titta på fönstret Autos längst ned i kodredigeraren.

    Om den är stängd öppnar du den medan kodkörningen pausas i felsökningsprogrammet genom att välja Felsöka>windows>autos.

    I fönstret Autos ser du variabler och deras aktuella värde. Fönstret Autos visar alla variabler som används på den aktuella raden eller föregående rad. Kontrollera dokumentationen för språkspecifikt beteende.

  2. Titta sedan på fönstret Lokalt på en flik bredvid fönstret Autos .

  3. Expandera variabeln letters för att visa de element som den innehåller.

    Skärmbild som visar fönstret Lokalt med variabeln

    Fönstret Locals visar de variabler som finns i det aktuella omfånget, det vill säga den aktuella körningskontexten.

Ställ in en klocka eller håll utkik

Du kan ange en variabel eller ett uttryck som du vill hålla ett öga på när du går igenom koden genom att lägga till den i bevakningsfönstret .

  1. När felsökningsprogrammet har pausats högerklickar du på variabeln name och väljer Lägg till klocka.

    Bevakningsfönstret öppnas som standard längst ned i kodredigeraren.

  2. Nu när du har angett en klocka på variabeln name går du igenom koden för att se värdet för variabeländringen name med varje for loop-iteration.

    Till skillnad från de andra variabelfönstren visar fönstret Watch alltid de variabler som du tittar på. Variabler som ligger utanför omfånget visas som otillgängliga.

Mer information om Watch-fönstret finns i Watch variables with Watch windows.

Granska anropsstacken

  1. Medan kodkörningen pausas i For-loopen väljer du fönstret Anropsstack som är öppet som standard i den nedre högra rutan.

    Om den är stängd öppnar du den medan kodkörningen pausas i felsökningsprogrammet genom att välja Felsöka>Windows>Call Stack.

  2. Välj F11 några gånger tills du ser felsökningsverktyget pausa i SendMessage metoden. Titta på fönstret Samtalsstack .

    Skärmbild som visar fönstret Visual Studio Call Stack med ett SendMessage-metodanrop markerat på den översta raden.

    Fönstret Call Stack visar i vilken ordning metoder och funktioner anropas. Den översta raden visar den aktuella funktionen. I det här exemplet är det SendMessage-metoden. Den andra raden visar som SendMessage anropades från Main metoden och så vidare.

    Anmärkning

    Call Stack-fönstret liknar felsökningsperspektivet i vissa programmeringsverktyg som Eclipse.

    Anropsstacken är ett bra sätt att undersöka och förstå körningsflödet för en app.

    Du kan dubbelklicka på en kodrad för att granska källkoden, vilket även ändrar det aktuella omfånget under inspektion av debuggern. Den här åtgärden avancerar inte 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 angivna funktioner, avancera felsökningsprogrammet med kör till markör och gå igenom källkoden. Mer information finns i Så här: Granska anropsstacken.

Ändra körningsflödet

  1. Tryck på F11 två gånger för att köra Console.WriteLine metoden.

  2. När felsökningsprogrammet har pausats i metodanropet SendMessage, använd musen för att ta tag i den gula pilen eller körningspekaren i vänstermarginalen och dra pekaren upp en rad till Console.WriteLine-satsen.

  3. Tryck på F11.

    Felsökningsprogrammet kör metoden igen Console.WriteLine . Du ser denna åtgärd i utdata från konsolfönstret.

    Genom att ändra exekveringsflödet kan du testa olika kodens exekveringsvägar eller köra om kod utan att starta om debuggern.

    Varning

    Du måste ofta vara försiktig med den här funktionen. Det finns en varning i knappbeskrivningen. Du kan också se andra varningar. Att flytta pekaren kan inte återställa programmet till ett tidigare apptillstånd.

  4. Tryck på F5 för att fortsätta köra appen.

    Grattis till att du har klarat den här guiden!

I den här självstudien har du lärt dig hur du startar felsökningsprogrammet, går igenom kod och inspekterar variabler. Du kanske vill titta på felsökningsfunktioner på hög nivå tillsammans med länkar till mer information.