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í hodnoty během událostí ladicího programu, a informace o volání funkce

  • 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ář Nadpis
Ladění aplikace pomocí IntelliTrace:

- Ukaž mi minulé události.
- Ukaž mi informace o hovoru s minulými událostmi.
- Uložte relaci IntelliTrace.
– Řídí data, která IntelliTrace shromažďuje.
- Kontrola stavů předchozích aplikací pomocí IntelliTrace
- Postup: 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 řešení 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, model 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 C++, které cílí na Windows, podporují zobrazování snímků pomocí krok zpět IntelliTrace. Podporují se pouze události ladicího programu a výjimek.
– Aplikace .NET Core a ASP.NET Core podporované pouze pro určité události (kontroler MVC, ADO.NET a události HTTPClient) v místním 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.

Nástroj IntelliTrace rozšiřuje toto tradiční ladění zaznamenáváním určitých událostí a dat v těchto bodech v čase. To vám umožní zjistit, co se stalo ve vaší aplikaci, aniž byste ji restartovali, zejména pokud jste krokovali za místo, kde je chyba. Nástroj IntelliTrace je ve výchozím nastavení zapnutý při tradičním ladění a shromažďuje data automaticky a transparentně. To umožňuje snadno přepínat mezi tradičním laděním a laděním pomocí nástroje IntelliTrace a zobrazovat zaznamenané informace. Podívejte se na funkce IntelliTrace a jaká data shromažďuje IntelliTrace?

Nástroj IntelliTrace vám také může pomoci ladit chyby, které je těžké reprodukovat nebo ke kterým dochází při nasazování. 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 souvisejících s výkonem, webových požadavcích, testovacích datech, vláknech, modulech a další systémové informace. 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.

Můžete ukládat data IntelliTrace z těchto zdrojů:

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

  • ASP.NET webových aplikací hostovaných ve službě IIS nebo sharepointových aplikací spuštěných v nasazení, když používáte microsoft Monitoring Agent, ať už samostatně, nebo v nástroji 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.

Zde je několik příkladů, jak nástroj 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.

  • Dochází 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í nástroje IntelliTrace můžete zkoumat události, ke kterým došlo před výjimkou.

  • V nasazené aplikaci dojde k chybě nebo chybovému ukončení.

    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.

    V případě webových aplikací ASP.NET hostovaných ve službě IIS 7.0, 7.5 a 8.0 a aplikací služby SharePoint 2010 a SharePoint 2013 použijte nástroj Microsoft Monitoring Agent samotný nebo s nástrojem System Center 2012 k ukládání dat nástroje IntelliTrace do souboru .iTrace.

    To je užitečné, pokud 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. Události ladicího programu a výjimky jsou shromažďovány vždy. Viz funkce IntelliTrace.

  • Události ladicího programu

    Nástroj IntelliTrace vždy zaznamenává události, ke kterým dochází v ladicím programu sady Visual Studio. Například spuštění aplikace je událost ladicího programu. Jiné události ladicího programu zastavují události, které způsobují, že aplikace přeruší provádění. Program například dosáhne zarážky, dosáhne tracepointu nebo spustí 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. Zaznamenává pouze tyto hodnoty:

    • Hodnoty v okně Místní hodnoty 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 zobrazují při přesunutí ukazatele myši nad proměnnou v okně zdroje s cílem zobrazit její hodnotu. Nástroj 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

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

    • Zpracované výjimky, když je výjimka vyvolána a zachycena

    • Neošetřené výjimky

  • Události rozhraní .NET Framework

    Standardně nástroj 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 zaznamenat události uživatelského profilu a podmnožinu událostí sjednoceného systému protokolování (ULS) pro aplikace SharePoint 2010 a 2013 spuštěné mimo aplikaci Visual Studio. Tyto události můžete uložit do souboru .iTrace. Vyžaduje Visual Studio Enterprise 2015 nebo novější verze, předchozí verzi sady Visual Studio Ultimate nebo Microsoft Monitoring Agent spuštěný v režimu trasování .

    Po otevření souboru .iTrace zadejte ID korelace SharePoint a najděte odpovídající webový požadavek, zobrazte zaznamenané události a spusťte ladění od určité události. Obsahuje-li soubor neošetřené výjimky, lze ID korelace vybrat pro ladění výjimky.

    Přečtěte si:

Snímky zachytávání

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

Nástroj IntelliTrace můžete nakonfigurovat na shromažďování informací o volání funkcí. Tyto informace umožňují zobrazit historii zásobníku volání a umožňují krokovat zpět a vpřed mezi voláními v kódu. Pro každé volání funkce nástroj IntelliTrace zaznamenává tato data:

  • Název funkce
  • Hodnoty primitivních datových typů předané jako parametry na vstupech funkcí a vrácené na výstupech funkcí
  • Hodnoty automatických vlastností při jejich čtení nebo změně
  • Ukazatele na podřízené objekty první úrovně, avšak nikoli jejich hodnoty, ale pouze to, zda je jejich hodnota null

Poznámka:

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

Viz Kontrola aplikace s historickým laděním.

Shromažďování informací o modulu

Pro řízení množství informací o voláních shromažďovaných nástrojem IntelliTrace zadejte pouze ty moduly, které vás zajímají. 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?

Nástroj IntelliTrace standardně shromažďuje pouze data 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. Může také zvážit refaktoring aplikace.

Shromažďování informací o voláních může výrazně zpomalit vaši aplikaci. Může také dojít ke zvětšení všech souborů protokolu IntelliTrace (.iTrace) ukládaných na disk. Pro minimalizaci negativních dopadů shromažďujte informace o volání pouze u modulů, které vás zajímají. 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