Dela via


IntelliTrace för Visual Studio Enterprise (C#, Visual Basic, C++)

Du kan ägna mindre tid åt att felsöka programmet när du använder IntelliTrace för att registrera och spåra kodens körningshistorik. Du kan enkelt hitta buggar eftersom IntelliTrace låter dig:

  • Registrera specifika händelser

  • Granska relaterad kod, data som visas i fönstret Lokal under felsökningshändelser och information om funktionsanrop

  • Felsöka fel som är svåra att återskapa eller som inträffar i distributionen

Du kan använda IntelliTrace i Visual Studio Enterprise-utgåvan (men inte Professional- eller Community-utgåvorna).

Vad vill du göra?

Scenarium Titel
Felsöka mitt program med IntelliTrace:

- Visa mig tidigare händelser.
- Visa mig samtalsinformation med tidigare händelser.
- Spara min IntelliTrace-session.
– Kontrollera de data som IntelliTrace samlar in.
- Granska tidigare apptillstånd med IntelliTrace
- Genomgång: Använda IntelliTrace
- IntelliTrace-funktioner
- Historisk felsökning
Samla in IntelliTrace-data från distribuerade program - Använda den fristående IntelliTrace-insamlaren
Börja felsöka från en IntelliTrace-loggfil (.iTrace-fil). - Använda sparade IntelliTrace-data

Vilka appar kan jag felsöka med IntelliTrace?

Supportnivå Programtyper
Fullständigt stöd – Visual Basic- och Visual C#-program som använder .NET Framework 2.0 eller senare versioner.
Du kan felsöka de flesta program, inklusive ASP.NET, Microsoft Azure, Windows Forms, WCF, WPF, Windows Workflow, SharePoint 2010, SharePoint 2013 och 64-bitarsappar.
Information om hur du felsöker SharePoint-program med IntelliTrace finns i Genomgång: Felsöka ett SharePoint-program med Hjälp av IntelliTrace.
Information om hur du felsöker Microsoft Azure-appar med IntelliTrace finns i Felsöka en publicerad molntjänst med IntelliTrace och Visual Studio.
Begränsad support – C++-appar som riktar sig till Windows stöder visning av ögonblicksbilder med hjälp av IntelliTrace-steg tillbaka. Endast felsöknings- och undantagshändelser stöds.
– .NET Core- och ASP.NET Core-appar som endast stöds för vissa händelser (MVC-styrenhet, ADO.NET- och HTTPClient-händelser) i lokal felsökning. Den fristående insamlaren stöds inte för .NET Core- eller ASP.NET Core-appar.
– F#-appar på experimentell basis
– UWP-appar som endast stöds för händelser
Stöds ej – Andra språk och skript
– Windows-tjänster, Silverlight, Xbox eller Windows Mobile-appar

Anmärkning

Om du vill felsöka en process som redan körs kan du endast samla in IntelliTrace-händelser (ingen samtalsinformation). Du kan endast ansluta till en 32-bitars- eller 64-bitarsprocess på den lokala datorn. Händelser som inträffar innan du ansluter till processen samlas inte in.

Varför felsöka med IntelliTrace?

Traditionell felsökning eller direkt felsökning visar bara programmets aktuella tillstånd, med begränsade data om tidigare händelser. Du måste antingen härleda dessa händelser baserat på programmets aktuella tillstånd, eller så måste du återskapa dessa händelser genom att köra programmet igen.

IntelliTrace utökar den här traditionella felsökningsupplevelsen genom att registrera specifika händelser och data vid dessa tidpunkter. På så sätt kan du se vad som hände i ditt program utan att starta om det, särskilt om du går förbi där felet finns. IntelliTrace aktiveras som standard under traditionell felsökning och samlar in data automatiskt och osynligt. På så sätt kan du enkelt växla mellan traditionell felsökning och IntelliTrace-felsökning för att se den inspelade informationen. Se IntelliTrace-funktioner och Vilka data samlar IntelliTrace in?

IntelliTrace kan också hjälpa dig att felsöka fel som är svåra att återskapa eller som inträffar i distributionen. Du kan samla in IntelliTrace-data och spara dem i en IntelliTrace-loggfil (.iTrace-fil). En .iTrace-fil innehåller information om undantag, prestandahändelser, webbbegäranden, testdata, trådar, moduler och annan systeminformation. Du kan öppna den här filen i Visual Studio Enterprise, välja ett objekt och börja felsöka med IntelliTrace. På så sätt kan du gå till valfri händelse i filen och se specifik information om ditt program vid den tidpunkten.

Du kan spara IntelliTrace-data från dessa källor:

Här följer några exempel på hur IntelliTrace kan hjälpa dig med felsökning:

  • Programmet har skadat en datafil, men du vet inte var den här händelsen inträffade.

    Utan IntelliTrace måste du titta igenom koden för att hitta alla möjliga filåtkomster, sätta brytpunkter på dessa åtkomster och köra programmet igen för att hitta var problemet inträffade. Med IntelliTrace kan du se alla insamlade filåtkomsthändelser och specifik information om ditt program när varje händelse inträffade.

  • Ett undantag inträffar.

    Utan IntelliTrace får du ett meddelande om ett undantag, men du har inte mycket information om de händelser som ledde till undantaget. Du kan undersöka anropsstacken för att se anropskedjan som ledde till undantaget, men du kan inte se sekvensen med händelser som inträffade under dessa anrop. Med IntelliTrace kan du undersöka de händelser som inträffade före undantaget.

  • En bugg eller krasch inträffar i ett distribuerat program.

    För Microsoft Azure-baserade appar kan du konfigurera IntelliTrace-datainsamling innan du publicerar programmet. När programmet körs sparar IntelliTrace data i en .iTrace-fil. Se Felsöka en publicerad molntjänst med IntelliTrace och Visual Studio.

    För ASP.NET webbappar som finns i IIS 7.0-, 7.5- och 8.0- och SharePoint 2010- eller SharePoint 2013-program använder du Microsoft Monitoring Agent, antingen ensam eller med System Center 2012, för att spara IntelliTrace-data i en .iTrace-fil.

    Detta är användbart när du vill diagnostisera problem med appar i distributionen. Se Använda den fristående IntelliTrace-insamlaren.

Vilka data samlar IntelliTrace in?

Samla in händelseinformation

Som standard registrerar IntelliTrace endast IntelliTrace-händelser: felsökningshändelser, undantag, .NET Framework-händelser och andra systemhändelser som kan hjälpa dig med felsökning. Du kan välja vilka typer av IntelliTrace-händelser som du vill samla in, förutom felsökningshändelser och undantag som alltid samlas in. Se IntelliTrace-funktioner.

  • Felsökningshändelser

    IntelliTrace registrerar alltid händelser som inträffar i Visual Studio-felsökningsprogrammet. Att starta programmet är till exempel en felsökningshändelse. Andra felsökningshändelser är stopphändelser, vilket gör att ditt program bryter körningen. Programmet träffar till exempel en brytpunkt, träffar en spårningspunkt eller kör ett Step-kommando .

    Som standard registrerar IntelliTrace inte alla möjliga värden för en felsökningshändelse för att hjälpa till med prestanda. I stället registreras följande värden:

    • Värden i fönstret Lokaler. Håll fönstret Locals öppet för att se dessa värden.

    • Endast värden i Autos-fönstret om Autos-fönstret är öppet

    • Värden i Datatips som visas när du flyttar pekaren ovanpå en variabel i källfönstret för att se dess värde. IntelliTrace samlar inte in värden i fästa datatips.

      När IntelliTrace-händelser och ögonblicksbilder är aktiverat tar IntelliTrace en ögonblicksbild av programmets process vid varje felsöknings brytpunkt och step-händelse . Detta registrerar värden i fönstren Locals, Autos och Watch , oavsett om fönstren är öppna eller inte. Värden i eventuella fästa datatips samlas också in.

  • undantag

    IntelliTrace registrerar undantagstypen och meddelandet för den här typen av undantag:

    • Hanterade undantag där undantaget kastas och fångas

    • Ohanterade undantag

  • .NET Framework-händelser

    Som standard registrerar IntelliTrace de vanligaste .NET Framework-händelserna. För en CheckBox.CheckedChanged händelse samlar IntelliTrace till exempel in kryssrutans tillstånd och text.

  • Programhändelser för SharePoint 2010 och SharePoint 2013

    Du kan registrera användarprofilhändelser och en delmängd av ULS-händelser (Unified Logging System) för SharePoint 2010- och 2013-program som körs utanför Visual Studio. Du kan spara dessa händelser i en .iTrace-fil. Kräver Visual Studio Enterprise 2015 eller senare versioner, en tidigare version av Visual Studio Ultimate eller Microsoft Monitoring Agent som körs i spårningsläge .

    När du öppnar .iTrace-filen anger du ett SharePoint-korrelations-ID för att hitta dess matchande webbbegäran, visa de inspelade händelserna och börja felsöka från en viss händelse. Om filen innehåller ohanterade undantag kan du välja ett korrelations-ID för att börja felsöka ett undantag.

    Se:

Avbilda ögonblicksbilder

Du kan konfigurera IntelliTrace för att avbilda ögonblicksbilder vid varje brytpunkt och felsökningssteghändelse. IntelliTrace registrerar det fullständiga programtillståndet vid varje ögonblicksbild, vilket gör att du kan visa komplexa variabler och utvärdera uttryck.

Anmärkning

Den fristående IntelliTrace-insamlaren stöder inte insamling av ögonblicksbilder.

Se Granska tidigare apptillstånd med IntelliTrace.

Samla in information om funktionsanrop

Du kan konfigurera IntelliTrace för att samla in samtalsinformation för funktioner. Med den här informationen kan du se en historik över anropsstacken och gå bakåt och framåt genom anrop i koden. För varje funktionsanrop registrerar IntelliTrace dessa data:

  • Funktionsnamn
  • Värden för primitiva datatyper som skickas som parametrar vid funktionsinmatningspunkter och returneras vid funktionens slutpunkter
  • Värden för automatiska egenskaper när de läses eller ändras
  • Pekare till barnobjekt på första nivån, men inte deras värden, annat än om de var null eller inte.

Anmärkning

IntelliTrace samlar bara in de första 256 objekten i matriser och de första 256 tecknen för strängar.

Se Granska din app med historisk felsökning.

Samla in modulinformation

Om du vill styra hur mycket samtalsinformation som IntelliTrace samlar in anger du endast de moduler som du bryr dig om. Detta kan hjälpa dig att förbättra programmets prestanda under samlingen. Se avsnittet Kontrollera hur mycket information IntelliTrace Samlar in i IntelliTrace-funktioner.

Kommer IntelliTrace att sakta ned mitt program?

Som standard samlar IntelliTrace endast in data för valda IntelliTrace-händelser. Det här kanske eller kanske inte gör programmet långsammare, beroende på kodens struktur och organisation. Om IntelliTrace till exempel registrerar en händelse ofta kan det göra programmet långsammare. Det kan också få dig att överväga att omstrukturera ditt program.

Insamling av samtalsinformation kan göra programmet betydligt långsammare. Det kan också öka storleken på alla IntelliTrace-loggfiler (.iTrace-filer) som du sparar på disken. För att minimera dessa effekter samlar du endast in samtalsinformation för de moduler som du bryr dig om. Om du vill ändra den maximala storleken på dina .iTrace-filer går du till Verktyg, Alternativ, IntelliTrace, Avancerat.

Bloggar

Microsoft DevOps

Forumen

Visual Studio-diagnostik