Dela via


Logga information till utdatafönstret med hjälp av spårningspunkter i Visual Studio

Med spårningspunkter kan du logga information till utdatafönstret under konfigurerbara villkor utan att ändra eller stoppa koden. Den här funktionen stöds för både hanterade språk (C#, Visual Basic, F#) och intern kod samt språk som JavaScript och Python.

Anmärkning

Information om loggningsinformation till utdatafönstret programmatiskt med hjälp av .NET-API:er finns i Skicka meddelanden till utdatafönstret.

Låt oss ta ett exempel

Följande exempelprogram är en enkel for loop med en räknarvariabel som ökar med en varje gång loopen kör en annan iteration.

Skärmbild av ett exempelräknareprogram.

Följande exempelprogram är en enkel for loop med en räknarvariabel som ökar med en varje gång loopen kör en annan iteration.


using System.Diagnostics;

namespace Tracepoints
{
    public class Program
    {
        public static void Main(string[] args)
        {
            int counter = 0;
            for (int i=0; i<=10; i++)
            {
                counter +=1;
            }
        }
    }
}

Ange spårningspunkter i källkoden

Du kan ange spårningspunkter genom att ange en utdatasträng under kryssrutan Åtgärd i fönstret Brytpunktsinställningar .

  1. Om du vill initiera en spårningspunkt klickar du först på rännstenen till vänster om det radnummer där du vill ange spårningspunkten.

    Skärmbild som visar brytpunktsinitiering i exempelkoden.

  2. Hovra över den röda cirkeln och klicka sedan på kugghjulsikonen.

  3. Den här åtgärden öppnar fönstret Brytpunktsinställningar .

    Skärmbild som visar brytpunktsfönstret.

  4. Markera kryssrutan Åtgärd .

    Skärmbild av brytpunktsfönstret med Åtgärdsruta markerad.

    Observera hur den röda cirkeln ändras till en romb som anger att du har växlat från en brytpunkt till en spårningspunkt.

  5. Ange det meddelande som du vill logga in på textrutan Visa ett meddelande i textrutan Utdatafönster (mer information finns i senare avsnitt i den här artikeln).

    Din spårningspunkt har nu angetts. Tryck på knappen "Stäng" om allt du vill göra är att logga lite information till utdatafönstret.

  6. Om du vill lägga till villkor som avgör om meddelandet visas markerar du kryssrutan Villkor .

    Skärmbild av brytpunktsfönstret med villkorsrutan markerad.

    Du har tre alternativ för villkor: Villkorsuttryck, Filter och Antal träffar.

Du kan ange spårningspunkter genom att ange en utdatasträng under kryssrutan Åtgärd i fönstret Brytpunktsinställningar .

  1. Om du vill initiera en spårningspunkt klickar du först på rännstenen till vänster om det radnummer där du vill ange spårningspunkten.

    Skärmbild som visar brytpunktsinitiering i exempelkoden.

  2. Hovra över den röda cirkeln och klicka på kugghjulsikonen för att öppna fönstret Brytpunktsinställningar .

    Skärmbild som visar brytpunktsfönstret.

  3. Markera kryssrutan Åtgärd .

    Skärmbild av brytpunktsfönstret med Åtgärdsruta markerad.

    Observera hur den röda cirkeln ändras till en romb som anger att du har växlat från en brytpunkt till en spårningspunkt.

  4. Ange det meddelande som du vill logga in på textrutan Visa ett meddelande i textrutan Utdatafönster (mer information finns i senare avsnitt i den här artikeln).

    Din spårningspunkt har nu angetts. Tryck på knappen "Stäng" om allt du vill göra är att logga lite information till utdatafönstret.

  5. Om du vill lägga till villkor som avgör om meddelandet visas markerar du kryssrutan Villkor .

    Skärmbild av brytpunktsfönstret med villkorsrutan markerad.

    Du har tre alternativ för villkor: Villkorsuttryck, Filter och Antal träffar.

Åtgärdsmenyn

På den här menyn kan du logga ett meddelande till utdatafönstret. Skriv de strängar som du vill mata ut i meddelanderutan (inga citattecken krävs). Om du vill visa värden för variabler kontrollerar du att du omger dem i klammerparenteser.

Om du till exempel vill visa värdet för variabeln counter i utdatakonsolen skriver du {counter} i meddelandetextrutan.

Skärmbild som visar räknares utdatameddelande.

Om du klickar på Stäng och sedan felsöker programmet (F5) visas följande utdata i utdatafönstret.

Skärmbild som visar åtgärdsmeddelande i utdatafönstret.

Du kan också använda särskilda nyckelord för att visa mer specifik information. Ange nyckelordet exakt som nedan (använd ett "$" framför varje nyckelord och alla versaler för själva nyckelordet).

Keyword Vad visas
$ADDRESS Aktuell instruktion
$CALLER Anropa funktionsnamn
$CALLSTACK Anropsstack
$FUNCTION Aktuellt funktionsnamn
$PID Process-ID
$PNAME Processnamn
$TID Tråd-ID
$TNAME Trådnamn
$TICK Antal tick (från Windows GetTickCount)

På den här menyn kan du logga ett meddelande till utdatafönstret. Skriv de strängar som du vill mata ut i meddelanderutan (inga citattecken krävs). Om du vill visa värden för variabler kontrollerar du att du omger dem i klammerparenteser.

Om du till exempel vill visa värdet för variabeln counter i utdatakonsolen skriver {counter} du i meddelandetextrutan.

Skärmbild som visar räknares utdatameddelande.

Om du klickar på Stäng och sedan felsöker programmet (F5) visas följande utdata i utdatafönstret.

Skärmbild som visar åtgärdsmeddelande i utdatafönstret.

Du kan också använda särskilda nyckelord för att visa mer specifik information. Ange nyckelordet exakt som nedan (använd ett "$" framför varje nyckelord och alla versaler för själva nyckelordet).

Keyword Vad visas
$ADDRESS Aktuell instruktion
$CALLER Anropa funktionsnamn
$CALLSTACK Anropsstack
$FUNCTION Aktuellt funktionsnamn
$PID Process-ID
$PNAME Processnamn
$TID Tråd-ID
$TNAME Trådnamn
$TICK Antal tick (från Windows GetTickCount)

Villkorsmenyn

Med villkor kan du filtrera dina utdatameddelanden, så att de endast visas i vissa scenarier. Det finns tre huvudsakliga typer av villkor tillgängliga för dig.

Villkorsuttryck

För ett villkorsuttryck visas endast ett utdatameddelande när vissa villkor uppfylls.

För villkorsstyrda uttryck kan du antingen ange att spårningspunkten ska mata ut ett meddelande när ett visst villkor är sant eller när det har ändrats. Om du till exempel bara vill visa värdet för räknaren under även iterationer av loopen for kan du välja alternativet Är sant och sedan skriva i%2 == 0 i meddelandetextrutan.

Skärmbild som visar villkorsuttryck är sant.

Om du vill skriva ut värdet för räknaren när iterationen av loopen for ändras väljer du alternativet När ändrad och skriver i i meddelandetextrutan.

Skärmbild som visar när villkorsuttryck ändras.

Beteendet för alternativet När ändrades är annorlunda för olika programmeringsspråk.

  • För intern kod anser felsökaren inte att den första utvärderingen av villkoret är en ändring, så den träffar inte spårningspunkten vid den första utvärderingen.
  • För hanterad kod träffar felsökningsprogrammet spårningspunkten vid den första utvärderingen efter att När ändrad har valts.

Du kan också ange villkoret när spårningspunkten kan aktiveras genom att infoga en brytpunkt i ett visst avsnitt av koden och markera kryssrutan Aktivera endast när följande brytpunkt nås: i menyn Brytpunktsinställningar . Du kan välja valfri brytpunkt i listan med alternativ.

Skärmbild som visar aktivera när en brytpunkt är markerad.

En mer omfattande titt på giltiga uttryck som du kan använda när du ställer in villkor finns i Uttryck i felsökningsprogrammet.

Få AI-hjälp

Om du har Copilot kan du få AI-hjälp när du skapar en spårningspunkt. Copilot ger dig förslag på villkorsstyrda brytpunkter och spårningspunkter som är specifika för din kod.

Skärmbild av Copilot som arbetar med förslag på villkorlig brytpunkt.

Mer information finns i Felsöka med Copilot.

För ett villkorsuttryck visas endast ett utdatameddelande när vissa villkor uppfylls.

För villkorsstyrda uttryck kan du antingen ange att spårningspunkten ska mata ut ett meddelande när ett visst villkor är sant eller när det har ändrats. Om du till exempel bara vill visa värdet för räknaren under även iterationer av loopen for kan du välja alternativet Är sant och sedan skriva i%2 == 0 i meddelandetextrutan.

Skärmbild som visar villkorsuttryck är sant.

Om du vill skriva ut värdet för räknaren när iterationen av loopen for ändras väljer du alternativet När ändrad och skriver i i meddelandetextrutan.

Skärmbild som visar när villkorsuttryck ändras.

Beteendet för alternativet När ändrades är annorlunda för olika programmeringsspråk.

  • För intern kod anser felsökaren inte att den första utvärderingen av villkoret är en ändring, så den träffar inte spårningspunkten vid den första utvärderingen.
  • För hanterad kod träffar felsökningsprogrammet spårningspunkten vid den första utvärderingen efter att När ändrad har valts.

En mer omfattande titt på giltiga uttryck som du kan använda när du ställer in villkor finns i Uttryck i felsökningsprogrammet.

Antal träffar

Med ett villkor för antal träffar kan du bara skicka utdata efter att den kodrad där spårningspunkten har angetts har kört ett angivet antal gånger.

För antal träffar kan du välja att mata ut ett meddelande när kodraden där spårningspunkten har angetts har körts ett visst antal gånger. Baserat på krav kan det vara lika med, eller är en multipel av, eller är större än eller lika med det angivna träffantalet. Välj det alternativ som bäst passar dina behov och skriv ett heltalsvärde i fältet (till exempel 5) som representerar den iterationen av intresse.

Skärmbild som visar antal träffar för villkorsuttryck.

Med ett villkor för antal träffar kan du bara skicka utdata efter att den kodrad där spårningspunkten har angetts har kört ett angivet antal gånger.

För antal träffar kan du välja att mata ut ett meddelande när kodraden där spårningspunkten har angetts har körts ett visst antal gånger. Baserat på krav kan det vara lika med, eller är en multipel av, eller är större än eller lika med det angivna träffantalet. Välj det alternativ som bäst passar dina behov och skriv ett heltalsvärde i fältet (till exempel 5) som representerar den iterationen av intresse.

Skärmbild som visar antal träffar för villkorsuttryck.

Du kan också ta bort brytpunkten vid den första träffen genom att aktivera kryssrutan Ta bort brytpunkt när den har träffats.

Skärmbild som visar Ta bort brytpunkt vid första träffen.

Filter

För ett filtervillkor anger du vilka enheter, processer eller trådar som ska visas för.

Skärmbild som visar filter för villkorsuttryck.

Lista över filteruttryck:

  • MachineName = "name"
  • ProcessId = värde
  • ProcessName = "name"
  • ThreadId = värde
  • ThreadName = "name"

Omslut strängar (till exempel namn) med dubbla citattecken. Värden kan anges utan citattecken. Du kan kombinera satser med hjälp av & (AND), || (OR), ! (NOT) och parenteser.

För ett filtervillkor anger du vilka enheter, processer eller trådar som ska visas för.

Skärmbild som visar filter för villkorsuttryck.

Lista över filteruttryck:

  • MachineName = "namn"
  • ProcessId = värde
  • ProcessName = "namn"
  • ThreadId = värde
  • ThreadName = "namn"

Omslut strängar (till exempel namn) med dubbla citattecken. Värden kan anges utan citattecken. Du kan kombinera satser med hjälp av & (AND), || (OR), ! (NOT) och parenteser.

Överväganden

Spårningspunkter är avsedda att göra felsökning till en renare och smidigare upplevelse. Det finns några saker du bör tänka på när det gäller att använda dem.

Ibland när du inspekterar en egenskap eller ett attribut för ett objekt kan dess värde ändras. Om värdet ändras under inspektionen är det inte en bugg som orsakas av själva spårningspunktsfunktionen. Men att använda spårningspunkter för att inspektera objekt undviker inte dessa oavsiktliga ändringar.

Sättet som uttryck utvärderas i meddelanderutan Åtgärd kan skilja sig från det språk som du för närvarande använder för utveckling. Om du till exempel vill mata ut en sträng behöver du inte omsluta ett meddelande med citattecken även om du normalt skulle använda Debug.WriteLine() eller console.log(). Dessutom kan klammerparentessyntaxen ({ }) för utdatauttryck också skilja sig från konventionen för utdata av värden i utvecklingsspråket. (Innehållet inom klammerparenteserna ({ }) bör dock fortfarande skrivas med hjälp av ditt utvecklingsspråks syntax).

Om du försöker felsöka ett liveprogram och letar efter en liknande funktion kan du läsa vår loggpunktsfunktion i felsökningsprogrammet för ögonblicksbilder. Felsökningsprogrammet för ögonblicksbilder är ett verktyg som används för att undersöka problem i produktionsprogram. Med loggpunkter kan du också skicka meddelanden till utdatafönstret utan att behöva ändra källkoden och inte påverka ditt program som körs. Mer information finns i Felsöka live Azure-program.