IntelliTrace pro Visual Studio Enterprise (C#, Visual Basic, C++)

Ladění aplikace můžete trávit méně času, když použijete IntelliTrace k zaznamenání a trasování historie provádění kódu. Chyby můžete snadno najít, protože IntelliTrace vám umožňuje:

  • Záznam konkrétních událostí

  • Prozkoumejte související kód, data, která se zobrazí v okně Místní při událostech ladění, a informace o volání funkcí.

  • Ladění chyb, které se obtížně reprodukují nebo ke kterým dochází v nasazení

IntelliTrace můžete použít v edici Visual Studio Enterprise (ale ne edice Professional nebo Community).

Co chcete udělat?

Scénář Titulek
Ladění aplikace pomocí IntelliTrace:

- Ukaž mi minulé události.
- Ukaž mi informace o hovoru se záznamy o minulých událostech.
- Uložte relaci IntelliTrace.
– Řídí data, která IntelliTrace shromažďuje.
- Kontrola stavů předchozích aplikací pomocí IntelliTrace
- Návod: Použití IntelliTrace
- Funkce IntelliTrace
- Historické ladění
Shromažďování dat IntelliTrace z nasazených aplikací - Použití samostatného kolektoru IntelliTrace
Spusťte ladění ze souboru protokolu IntelliTrace (soubor .iTrace). - Použití uložených dat IntelliTrace

Jaké aplikace můžu ladit pomocí IntelliTrace?

Úroveň podpory Typy aplikací
Úplná podpora – Aplikace jazyka Visual Basic a Visual C#, které používají rozhraní .NET Framework 2.0 nebo vyšší verze.
Většinu aplikací můžete ladit, včetně ASP.NET, Microsoft Azure, Windows Forms, WCF, WPF, Windows Workflow, SharePointu 2010, SharePointu 2013 a 64bitových aplikací.
Pokud chcete ladit sharepointové aplikace pomocí IntelliTrace, přečtěte si téma Návod: Ladění aplikace SharePoint pomocí IntelliTrace.
Pokud chcete ladit aplikace Microsoft Azure pomocí IntelliTrace, přečtěte si téma Ladění publikované cloudové služby pomocí IntelliTrace a sady Visual Studio.
Omezená podpora - Aplikace v C++ zaměřené na Windows podporují zobrazování snímků pomocí funkce krok zpět v IntelliTrace. Podporují se pouze události ladění a výjimek.
– Aplikace .NET Core a ASP.NET Core jsou podporovány pouze pro určité události, jako jsou události kontroleru MVC, ADO.NET a HTTPClientu, v rámci místního ladění. Samostatný kolektor není podporován pro aplikace .NET Core ani ASP.NET Core.
– Aplikace F# na experimentální bázi
– Aplikace pro UPW podporované jenom pro události
Nepodporováno - Jiné jazyky a skripty
– Služby pro Windows, Silverlight, Xbox nebo aplikace Pro Windows Mobile

Poznámka:

Pokud chcete ladit proces, který je již spuštěný, můžete shromažďovat pouze události IntelliTrace (žádné informace o volání). Můžete se připojit pouze k 32bitovému nebo 64bitovému procesu na místním počítači. Události, ke kterým dochází před připojením k procesu, se neshromažďují.

Proč ladit pomocí IntelliTrace?

Tradiční nebo živé ladění zobrazuje pouze aktuální stav vaší aplikace s omezenými daty o minulých událostech. Tyto události musíte buď odvodit na základě aktuálního stavu aplikace, nebo je nutné tyto události znovu vytvořit opětovným spuštěním aplikace.

IntelliTrace rozšiřuje toto tradiční prostředí ladění zaznamenáváním konkrétních událostí a dat v těchto bodech v čase. To vám umožní zjistit, co se stalo ve vaší aplikaci bez restartování, zejména pokud jste pokračovali za oblast, kde je chyba. IntelliTrace je ve výchozím nastavení zapnutá během tradičního ladění a shromažďuje data automaticky a neviditelně. Díky tomu můžete snadno přepínat mezi tradičním laděním a laděním IntelliTrace a zobrazit zaznamenané informace. Podívejte se na funkce IntelliTrace a jaká data shromažďuje IntelliTrace?

IntelliTrace vám také může pomoct s laděním chyb, které se obtížně reprodukují nebo k kterým dochází v nasazení. Můžete shromažďovat data IntelliTrace a ukládat je do souboru protokolu IntelliTrace (soubor .iTrace). Soubor .iTrace obsahuje podrobnosti o výjimkách, událostech výkonu, webových požadavcích, testovacích datech, vláknech, modulech a dalších systémových informacích. Tento soubor můžete otevřít v sadě Visual Studio Enterprise, vybrat položku a spustit ladění pomocí IntelliTrace. To vám umožní přejít na libovolnou událost v souboru a zobrazit konkrétní podrobnosti o vaší aplikaci v daném okamžiku.

Data IntelliTrace můžete uložit z těchto zdrojů:

  • Seance IntelliTrace ve Visual Studio 2015 Enterprise nebo novějších verzích nebo v předchozích verzích Visual Studio Ultimate.

  • ASP.NET webových aplikací hostovaných ve službě IIS nebo SharePointových aplikací běžících v nasazení, když používáte Microsoft Monitoring Agent, ať už samostatně, nebo s nástrojem System Center 2012. Viz Použití samostatného kolektoru IntelliTrace a monitorování pomocí nástroje Microsoft Monitoring Agent.

    Důležité

    Použití agenta Microsoft Monitoring Agent (MMA) s IntelliTrace již není podporováno, když Microsoft Monitoring Agent dosáhne konce životnosti 31. srpna 2024. Další informace najdete v tématu Migrace na agenta Azure Monitor z agenta Log Analytics.

Tady je několik příkladů, jak vám IntelliTrace může pomoci s laděním:

  • Aplikace poškodila datový soubor, ale nevíte, kde k této události došlo.

    Bez IntelliTrace se musíte podívat na kód, abyste našli všechny možné přístupy k souborům, umístili na tyto přístupy zarážky a znovu spusťte aplikaci, abyste zjistili, kde k problému došlo. Pomocí IntelliTrace můžete zobrazit všechny shromážděné události přístupu k souborům a konkrétní podrobnosti o vaší aplikaci při každé události.

  • Dojde k výjimce.

    Bez IntelliTrace se zobrazí zpráva o výjimce, ale nemáte mnoho informací o událostech, které vedly k výjimce. Zásobník volání můžete prozkoumat a zobrazit řetěz volání, která vedla k výjimce, ale nemůžete vidět posloupnost událostí, ke kterým došlo během těchto volání. Pomocí IntelliTrace můžete prozkoumat události, ke kterým došlo před výjimkou.

  • V nasazené aplikaci dojde k chybě nebo pádu.

    U aplikací založených na Microsoft Azure můžete před publikováním aplikace nakonfigurovat shromažďování dat IntelliTrace. Když vaše aplikace běží, IntelliTrace ukládá data do souboru .iTrace. Viz Ladění publikované cloudové služby pomocí IntelliTrace a sady Visual Studio.

    Pro ASP.NET webových aplikací hostovaných ve službě IIS 7.0, 7.5 a 8.0 a aplikacích SharePoint 2010 nebo SharePoint 2013 použijte microsoft Monitoring Agent ( samostatně nebo s nástrojem System Center 2012) k uložení dat IntelliTrace do souboru .iTrace.

    To je užitečné, když chcete diagnostikovat problémy s aplikacemi v nasazení. Viz Použití samostatného kolektoru IntelliTrace.

Jaká data Shromažďuje IntelliTrace?

Shromažďování informací o událostech

IntelliTrace ve výchozím nastavení zaznamenává pouze události IntelliTrace: události ladicího programu, výjimky, události rozhraní .NET Framework a další systémové události, které vám můžou pomoct s laděním. Můžete zvolit druhy událostí IntelliTrace, které chcete shromažďovat, s výjimkou událostí a výjimek ladicího programu, které jsou vždy shromažďovány. Viz funkce IntelliTrace.

  • Události ladicího programu

    IntelliTrace vždy zaznamenává události, ke kterým dochází v debuggeru Visual Studio. Například spuštění vaší aplikace je událost debuggeru. Jiné události ladicího programu zastavují události, které způsobují, že aplikace přeruší provádění. Program například dosáhne přerušení, dostane se ke stopě, nebo provede příkaz Krok.

    Pokud chcete pomoct s výkonem, IntelliTrace ve výchozím nastavení nezaznamená každou možnou hodnotu události ladicího programu. Místo toho zaznamenává tyto hodnoty:

    • Hodnoty v okně Místní. Nechte okno Místní hodnoty otevřené, aby se tyto hodnoty zobrazily .

    • Hodnoty v okně Automatické hodnoty pouze v případě, že je otevřené okno Automatické hodnoty

    • Hodnoty v datových tipech, které se zobrazí při přesunutí ukazatele myši nad proměnnou ve zdrojovém okně, aby se zobrazila její hodnota. IntelliTrace neshromažďuje hodnoty v připnutých datových tipech.

      Pokud je povolen režim událostí a snímků IntelliTrace, IntelliTrace pořídí snímek procesu aplikace při každé zarážce ladicího programu a události kroku . Tím se budou zaznamenávat hodnoty v oknech Locals, Autos a Watch bez ohledu na to, jestli jsou okna otevřená nebo ne. Budou se shromažďovat také hodnoty v případných připnutých datových tipech.

  • Výjimky

    IntelliTrace zaznamenává typ výjimky a zprávu pro tyto druhy výjimek:

    • Zpracovávané výjimky, kdy je výjimka vyvolána a zachycena

    • Neošetřené výjimky

  • Události rozhraní .NET Framework

    Ve výchozím nastavení IntelliTrace zaznamenává nejběžnější události rozhraní .NET Framework. IntelliTrace například pro CheckBox.CheckedChanged událost shromažďuje stav zaškrtávacího políčka a text.

  • Události aplikací SharePointu 2010 a SharePointu 2013

    Můžete zaznamenávat události profilu uživatele a podmnožinu událostí systému sjednoceného protokolování (ULS) pro aplikace SharePointu 2010 a 2013 spuštěné mimo Visual Studio. Tyto události můžete uložit do souboru .iTrace. Vyžaduje Visual Studio Enterprise 2015 nebo novější verzi, předchozí verzi sady Visual Studio Ultimate nebo Microsoft Monitoring Agent spuštěný v režimu Trace.

    Když otevřete soubor .iTrace, zadejte ID korelace SharePointu a vyhledejte odpovídající webový požadavek, zobrazte zaznamenané události a spusťte ladění z konkrétní události. Pokud soubor obsahuje neošetřené výjimky, můžete zvolit ID korelace a spustit ladění výjimky.

    Viz:

Zachytit snímky

IntelliTrace můžete nakonfigurovat tak, aby zaznamenávala snímky při každé události zarážky a kroku ladicího programu. IntelliTrace zaznamenává úplný stav aplikace na každém snímku, který umožňuje zobrazit složité proměnné a vyhodnotit výrazy.

Poznámka:

Samostatný kolektor IntelliTrace nepodporuje zachytávání snímků.

Viz Kontrola předchozích stavů aplikace pomocí IntelliTrace.

Shromažďování informací o volání funkce

IntelliTrace můžete nakonfigurovat tak, aby shromažďuje informace o volání pro funkce. Tyto informace vám umožní zobrazit historii zásobníku volání a umožňuje krokovat zpět a vpřed prostřednictvím volání v kódu. Pro každé volání funkce IntelliTrace zaznamenává tato data:

  • Název funkce
  • Hodnoty primitivních datových typů předané jako parametry v vstupních bodech funkce a vrácené při výstupních bodech funkce
  • Hodnoty automatických vlastností při jejich čtení nebo změně
  • Ukazatele na podřízené objekty první úrovně, ale nikoli jejich hodnoty, pokud nejsou rovny null nebo ne.

Poznámka:

IntelliTrace shromažďuje pouze prvních 256 objektů v polích a prvních 256 znaků pro řetězce.

Podívejte se na Inspekce vaší aplikace s historickým laděním.

Shromažďování informací o modulu

Chcete-li řídit, kolik informací o volání intelliTrace shromažďuje, zadejte pouze ty moduly, o které vám záleží. To může pomoct zlepšit výkon vaší aplikace během shromažďování. Podívejte se na část Řízení množství informací, které IntelliTrace shromažďuje v funkcích IntelliTrace.

Zpomalí IntelliTrace moji aplikaci?

IntelliTrace ve výchozím nastavení shromažďuje data pouze pro vybrané události IntelliTrace. To může nebo nemusí zpomalovat vaši aplikaci v závislosti na struktuře a organizaci kódu. Pokud například IntelliTrace často zaznamenává událost, může to zpomalit vaši aplikaci. Mohlo by vás také přimět zvážit refaktoring vaší aplikace.

Shromažďování informací o voláních může výrazně zpomalit vaši aplikaci. Může se také zvětšit velikost všech souborů protokolu IntelliTrace (souborů .iTrace), které ukládáte na disk. Pokud chcete tyto účinky minimalizovat, shromážděte informace o volání pouze pro moduly, o které vám záleží. Pokud chcete změnit maximální velikost souborů .iTrace, přejděte na Nástroje, Možnosti, IntelliTrace, Upřesnit.

Blogy

Microsoft DevOps

Fóra

Diagnostika sady Visual Studio