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

Durch die Verwendung von IntelliTrace zum Erfassen und Nachverfolgen Ihres Codeausführungsverlaufs können Sie beim Debuggen Ihrer Anwendung Zeit sparen.You can spend less time debugging your application when you use IntelliTrace to record and trace your code's execution history. Sie können leicht Fehler finden, da mit IntelliTrace Folgendes möglich ist:You can find bugs easily because IntelliTrace lets you:

  • Aufzeichnen bestimmter EreignisseRecord specific events

  • Sie können ähnlichen Code sowie im Fenster Lokal während der Debugger-Ereignisse angezeigte Daten, und Funktionsaufrufinformationen überprüfen.Examine related code, data that appears in the Locals window during debugger events, and function call information

  • Schwer nachstellbare oder während der Bereitstellung auftretende Fehler beim DebuggenDebug errors that are hard to reproduce or that happen in deployment

Sie können IntelliTrace in der Visual Studio Enterprise Edition verwenden(jedoch nicht in der Professional oder Community Edition).You can use IntelliTrace in Visual Studio Enterprise edition (but not the Professional or Community editions).

Wie möchten Sie vorgehen?What do you want to do?

Meine Anwendung mit IntelliTrace debuggen:Debug my application with IntelliTrace:

– Vergangene Ereignisse auflisten.- Show me past events.
– Aufrufinformationen mit vergangenen Ereignissen anzeigen.- Show me call information with past events.
– Die IntelliTrace-Sitzung speichern.- Save my IntelliTrace session.
– Die Daten steuern, die IntelliTrace erfasst.- Control the data that IntelliTrace collects.
- Untersuchen von vorherigen App-Zuständen mithilfe des IntelliTrace-Features „Schritt zurück“ in Visual Studio (Visual Studio Enterprise)- Inspect previous app states using IntelliTrace
- Exemplarische Vorgehensweise: Verwenden von IntelliTrace- Walkthrough: Using IntelliTrace
- IntelliTrace-Funktionen- IntelliTrace Features
- Verlaufsbezogenes Debuggen- Historical Debugging
Erfassen IntelliTrace-Daten aus bereitgestellten AnwendungenCollect IntelliTrace data from deployed applications - Verwenden des eigenständigen IntelliTrace-Collectors- Using the IntelliTrace stand-alone collector
Starten Sie das Debuggen von einer IntelliTrace-Protokolldatei (ITRACE-Datei).Start debugging from an IntelliTrace log file (.iTrace file). - Verwenden gespeicherter IntelliTrace-Daten- Using saved IntelliTrace data

Welche Anwendungen kann ich mit IntelliTrace debuggen?What apps can I debug with IntelliTrace?

Vollständige UnterstützungFull support – Visual Basic- und Visual C#-Anwendungen, die .NET Framework 2.0 oder höher verwenden.- Visual Basic and Visual C# applications that use .NET Framework 2.0 or higher versions.
Sie können die meisten Anwendungen debuggen, einschließlich ASP.NET, Microsoft Azure, Windows Forms, WCF, WPF, Windows Workflow, SharePoint 2010, SharePoint 2013 und 64-Bit-Anwendungen.You can debug most applications, including ASP.NET, Microsoft Azure, Windows Forms, WCF, WPF, Windows Workflow, SharePoint 2010, SharePoint 2013, and 64-bit apps.
Weitere Informationen zum Debuggen von SharePoint-Anwendungen mit IntelliTrace finden Sie unter Exemplarische Vorgehensweise: Debuggen einer SharePoint-Anwendung mithilfe von IntelliTrace.To debug SharePoint applications with IntelliTrace, see Walkthrough: Debugging a SharePoint Application by Using IntelliTrace.
Weitere Informationen zum Debuggen von Microsoft Azure-Apps mit IntelliTrace finden Sie unter Debuggen eines veröffentlichten Azure-Clouddiensts mit Visual Studio und IntelliTrace.To debug Microsoft Azure apps with IntelliTrace, see Debugging a Published Cloud Service with IntelliTrace and Visual Studio.
Eingeschränkte UnterstützungLimited support - Von C++-Apps für Windows wird das Anzeigen von Momentaufnahmen mithilfe des IntelliTrace-Features „Schritt zurück“ unterstützt.- C++ apps targeting Windows support viewing snapshots using IntelliTrace step-back. Nur Debugger- und Ausnahmeereignisse werden unterstützt.Only debugger and exception events are supported.
- .NET Core- und ASP.NET Core-Apps werden nur für bestimmte Ereignisse (MVC-Controller-, ADO.NET- und HttpClient-Ereignisse) beim lokalen Debuggen unterstützt.- .NET Core and ASP.NET Core apps supported for certain events only (MVC Controller, ADO.NET, and HTTPClient events) in local debugging. Der eigenständige Collector wird für .NET Core- und ASP.NET Core-Apps nicht unterstützt.The Standalone Collector is not supported for .NET Core or ASP.NET Core apps.
– F#-Apps versuchsweise- F# apps on an experimental basis
- UWP-Apps werden nur für Ereignisse unterstützt.- UWP apps supported for events only
Nicht unterstütztNot supported - Andere Sprachen und Skripts- Other languages and script
- Windows-Dienste, Silverlight, Xbox oder Windows Mobile-Apps- Windows Services, Silverlight, Xbox, or Windows Mobile apps

Hinweis

Wenn Sie einen bereits aktiven Prozess debuggen möchten, können Sie nur IntelliTrace-Ereignisse, aber keine Aufrufinformationen erfassen.If you want to debug a process that is already running, you can collect IntelliTrace events only (no call information). Es ist nur eine Anfügung an einen 32-Bit- oder 64-Bit-Prozess auf dem lokalen Computer möglich.You can attach to a 32-bit or 64-bit process on the local machine only. Ereignisse, die vor dem Anfügen an den Prozess auftreten, werden nicht erfasst.Events that occur before you attach to the process are not collected.

Warum sollte ich mit IntelliTrace debuggen?Why debug with IntelliTrace?

Herkömmliche oder Live-Debugvorgänge zeigen nur den aktuellen Status der Anwendung mit eingeschränkten Informationen zu vergangenen Ereignissen.Traditional or live debugging shows only your application's current state, with limited data about past events. Sie müssen diese Ereignisse entweder auf Grundlage des aktuellen Anwendungsstatus ableiten, oder Sie müssen diese Ereignisse neu erstellen, indem Sie die Anwendung erneut ausführen.You either have to infer these events based on the application's current state, or you have to recreate these events by rerunning your application.

IntelliTrace erweitert diese herkömmlichen Debuggenvorgänge, indem bestimmte Ereignisse und Daten an diesen Zeitpunkten erfasst werden.IntelliTrace expands this traditional debugging experience by recording specific events and data at these points in time. Somit können Sie auch ohne Neustart der Anwendung die Ereignisse verfolgen und finden auch bereits aufgetretene Fehler.This lets you see what happened in your application without restarting it, especially if you step past where the bug is. IntelliTrace ist standardmäßig während des herkömmlichen Debuggen aktiviert, sodass Daten automatisch und unsichtbar erfasst werden.IntelliTrace is turned on by default during traditional debugging and collects data automatically and invisibly. Sie können also zwischen dem herkömmlichen Debuggen und dem IntelliTrace-Debuggen problemlos wechseln, um die aufgezeichneten Informationen abzurufen.This lets you switch easily between traditional debugging and IntelliTrace debugging to see the recorded information. Weitere Informationen finden Sie unter IntelliTrace-Features (C#, Visual Basic, C++) sowie unter Welche Daten erfasst IntelliTrace?.See IntelliTrace Features and What data does IntelliTrace collect?

IntelliTrace hilft Ihnen außerdem beim Debuggen von Fehlern, die schwer reproduzierbar sind oder die bei der Bereitstellung auftreten.IntelliTrace can also help you debug errors that are hard to reproduce or that happen in deployment. Sie können IntelliTrace-Daten sammeln und in einer IntelliTrace-Protokolldatei (ITRACE-Datei) speichern.You can collect IntelliTrace data and save it to an IntelliTrace log file (.iTrace file). Eine ITRACE-Datei enthält Details über Ausnahmen, Leistungsereignisse, Webanforderungen, Testdaten, Threads, Module und andere Systeminformationen.An .iTrace file contains details about exceptions, performance events, Web requests, test data, threads, modules, and other system information. Sie können diese Datei in Visual Studio Enterprise öffnen, ein Element auswählen und das Debuggen mit IntelliTrace starten.You can open this file in Visual Studio Enterprise, select an item, and start debugging with IntelliTrace. Sie können also zu jedem beliebigen Ereignis in der Datei gehen und bestimmte Einzelheiten über die Anwendung an diesem Punkt anzeigen lassen.This lets you go to any event in the file and see specific details about your application at that point in time.

IntelliTrace-Daten können aus den folgenden Quellen gespeichert werden:You can save IntelliTrace data from these sources:

Im Folgenden werden einige Beispiele aufgeführt, die den Nutzen von IntelliTrace beim Debuggen veranschaulichen:Here are some examples of how IntelliTrace can help you with debugging:

  • Ihre Anwendung hat eine Datendatei beschädigt, doch Sie wissen nicht, wann das passiert ist.Your application has corrupted a data file, but you don't know where this event happened.

    Ohne IntelliTrace müssten Sie den Code auf alle möglichen Dateizugriffe durchsuchen, Haltepunkte für diese Zugriffe festlegen und die Anwendung dann erneut ausführen, um die Stelle ausfindig zu machen, an der das Problem aufgetreten ist.Without IntelliTrace, you have to look through the code to find all possible file accesses, put breakpoints on those accesses, and rerun your application to find where the problem happened. Mit IntelliTrace können Sie alle erfassten Dateizugriffsereignisse und bestimmte Details über die Anwendung finden, wenn Ereignisse auftreten.With IntelliTrace, you can see all the collected file-access events and specific details about your application when each event happened.

  • Eine Ausnahme tritt auf.An exception happens.

    Ohne IntelliTrace erhalten Sie zwar eine Meldung über eine Ausnahme, aber Sie bekommen kaum Informationen über die Ereignisse, die zu der Ausnahme geführt haben.Without IntelliTrace, you get a message about an exception but you don't have much information about the events that led to the exception. Sie können in der Aufrufliste die Kette der Aufrufe untersuchen, die zur Ausnahme geführt haben, aber Sie können nicht die Ereignisabfolge während dieser Aufrufe einsehen.You can examine the call stack to see the chain of calls that led to the exception, but you can't see the sequence of events that happened during those calls. Mit IntelliTrace können Sie die Ereignisse untersuchen, die vor der Ausnahme auftraten.With IntelliTrace, you can examine the events that happened before the exception.

  • Ein Fehler oder ein Absturz geschieht in einer bereitgestellten Anwendung.A bug or crash happens in a deployed application.

    Für Microsoft Azure-basierte Apps können Sie die IntelliTrace-Datenerfassung vor der Veröffentlichung Ihrer App konfigurieren.For Microsoft Azure-based apps, you can configure IntelliTrace data collection before you publish the application. Während die App ausgeführt wird, werden von IntelliTrace Daten in einer iTrace-Datei gespeichert.While your application runs, IntelliTrace saves data to an .iTrace file. Weitere Informationen finden Sie unter Debuggen eines veröffentlichten Azure-Clouddiensts mit Visual Studio und IntelliTrace.See Debug a Published Cloud Service with IntelliTrace and Visual Studio.

    Für ASP.NET-Webanwendungen, die auf IIS 7.0, 7,5 und 8,0 gehostet werden, sowie für SharePoint 2010- oder SharePoint 2013-Anwendungen verwenden Sie Microsoft Monitoring Agent, entweder alleine oder mit System Center 2012, um IntelliTrace-Daten in einer ITRACE-Datei zu speichern.For ASP.NET web apps hosted on IIS 7.0, 7.5, and 8.0, and SharePoint 2010 or SharePoint 2013 applications, use Microsoft Monitoring Agent, either alone or with System Center 2012, to save IntelliTrace data to an .iTrace file.

    Dies ist hilfreich, wenn Sie Probleme mit Apps in der Bereitstellung diagnostizieren möchten.This is useful when you want to diagnose problems with apps in deployment. Weitere Informationen finden Sie unter Verwenden des eigenständigen IntelliTrace-Collectors (C#, Visual Basic).See Use the IntelliTrace stand-alone collector.

Welche Daten erfasst IntelliTrace?What data does IntelliTrace collect?

Erfassen von EreignisinformationenCollect event information

Standardmäßig erfasst IntelliTrace nur IntelliTrace-Ereignisse: Debuggerereignisse, Ausnahmen, .NET Framework-Ereignisse und andere Systemereignisse, die beim Debuggen hilfreich sein können.By default, IntelliTrace records only IntelliTrace events: debugger events, exceptions, .NET Framework events, and other system events that can help you with debugging. Sie können die IntelliTrace-Ereignisse auswählen, die Sie sammeln möchten. Debuggerereignisse und -ausnahmen werden allerdings immer gesammelt.You can choose the kinds of IntelliTrace events that you want to collect, except for debugger events and exceptions, which are always collected. Weitere Informationen finden Sie unter IntelliTrace-Features (C#, Visual Basic, C++).See IntelliTrace features.

  • DebuggerereignisseDebugger events

    IntelliTrace zeichnet alle Ereignisse auf, die im Visual Studio-Debugger stattfinden.IntelliTrace always records events that happen in the Visual Studio debugger. Der Anwendungsstart ist beispielsweise ein Debuggerereignis.For example, starting your application is a debugger event. Weitere Debuggerereignisse sind Beenden-Ereignissen, die zur Unterbrechung der Anwendungsausführung führen.Other debugger events are stopping events, which cause your application to break execution. Zum Beispiel wenn das Programm einen Haltepunkt oder einen Ablaufverfolgungspunkt erreicht oder einen Schrittbefehl ausführt.For example, your program hits a breakpoint, hits a tracepoint, or executes a Step command.

    Zur Verbesserung der Leistung wird von IntelliTrace standardmäßig nicht jeder mögliche Wert für ein Debuggerereignis aufgezeichnet.By default, to help with performance, IntelliTrace doesn't record every possible value for a debugger event. Stattdessen werden folgende Werte aufgezeichnet:Instead, it records these values:

    • Werte im Fenster Lokal.Values in the Locals window. Lassen Sie das Fenster Lokal geöffnet, um diese Werte anzuzeigen.Keep the Locals window open to see these values.

    • Werte im Fenster Auto, wenn das Fenster Auto geöffnet istValues in the Autos window only if the Autos window is open

    • Werte in DataTips, die angezeigt werden, wenn Sie den Mauszeiger über eine Variable im Quellcodefenster bewegen, um den Wert anzuzeigen.Values in DataTips that appear when you move the mouse pointer on top of a variable in the source window to see its value. IntelliTrace erfasst keine Werte in angehefteten DataTips.IntelliTrace doesn't collect values in pinned DataTips.

      Wenn der Modus für IntelliTrace-Ereignisse und Momentaufnahmen aktiviert ist, wird von IntelliTrace bei jedem Breakpoint und Debuggerschritt eine Momentaufnahme des Anwendungsprozesses erstellt.When IntelliTrace Events and Snapshots mode is enabled, IntelliTrace will take a snapshot of the application's process at each debugger Breakpoint and Step event. Dadurch werden Werte im Lokalfenster, Auto-Fenster und Überwachungsfenster aufgezeichnet, und zwar unabhängig davon, ob die Fenster geöffnet sind.This will record values in the Locals, Autos, and Watch windows, regardless of whether the windows are open or not. Werte in angehefteten Datentipps werden ebenfalls erfasst.Values in any pinned data tips will also be collected.

  • AusnahmenExceptions

    IntelliTrace zeichnet den Ausnahmetyp und die Meldung für diese Ausnahmen auf:IntelliTrace records the exception type and message for these kinds of exceptions:

    • Bearbeitete Ausnahmen, in denen die Ausnahme ausgelöst und abgefangen wirdHandled exceptions where the exception is thrown and caught

    • AusnahmefehlerUnhandled exceptions

  • .NET Framework-Ereignisse.NET Framework events

    IntelliTrace zeichnet standardmäßig die häufigsten .NET Framework-Ereignisse auf.By default, IntelliTrace records the most common .NET Framework events. Für ein Ereignis vom Typ CheckBox.CheckedChanged werden von IntelliTrace beispielsweise der Kontrollkästchenzustand und der Text erfasst.For example, for a CheckBox.CheckedChanged event, IntelliTrace collects the checkbox state and text.

  • SharePoint 2010- und SharePoint 2013-AnwendungsereignisseSharePoint 2010 and SharePoint 2013 application events

    Sie können Benutzerprofilereignisse und eine Teilmenge von einheitlichen Ereignissen des Protokollierungs-Systems (ULS) für SharePoint 2010- und 2013-Anwendungen erfassen, die außerhalb von Visual Studio ausgeführt werden.You can record user profile events and a subset of Unified Logging System (ULS) events for SharePoint 2010 and 2013 applications running outside Visual Studio. Sie können diese Ereignisse in einer ITRACE-Datei speichern.You can save these events to an .iTrace file. Erfordert mindestens Visual Studio Enterprise 2015, eine Vorgängerversion von Visual Studio Ultimate oder Microsoft Monitoring Agent im Modus Ablaufverfolgung.Requires Visual Studio Enterprise 2015 or later versions, a previous version of Visual Studio Ultimate, or Microsoft Monitoring Agent running in Trace mode.

    Wenn Sie die ITRACE-Datei öffnen, geben Sie eine SharePoint-Korrelations-ID ein, um die entsprechenden Webanforderung zu suchen, die aufgezeichneten Ereignisse anzuzeigen und das Debuggen von einem bestimmten Ereignis aus zu starten.When you open the .iTrace file, enter a SharePoint correlation ID to find its matching web request, view the recorded events, and start debugging from a specific event. Wenn die Datei Ausnahmefehler enthält, können Sie eine Korrelations-ID auswählen, um das Debuggen einer Ausnahme zu starten.If the file contains unhandled exceptions, you can choose a correlation ID to start debugging an exception.

    ThemaSee:

Erfassen von MomentaufnahmenCapture snapshots

Sie können IntelliTrace so konfigurieren, dass bei jedem Breakpoint und Debuggerschritt Momentaufnahmen erfasst werden.You can configure IntelliTrace to capture snapshots at every breakpoint and debugger step event. Von IntelliTrace wird bei jeder Momentaufnahme der vollständigen Anwendungszustand aufgezeichnet, sodass Sie komplexe Variablen anzeigen und Ausdrücke auswerten können.IntelliTrace records the full application state at each snapshot, which allows you to view complex variables and to evaluate expressions.

Hinweis

Das Erfassen von Momentaufnahmen wird vom eigenständigen IntelliTrace-Collector nicht unterstützt.The IntelliTrace stand-alone collector does not support capturing snapshots.

Weitere Informationen finden Sie unter Untersuchen von vorherigen App-Zuständen mithilfe des IntelliTrace-Features „Schritt zurück“ in Visual Studio (Visual Studio Enterprise).See Inspect previous app states using IntelliTrace.

Erfassen von FunktionsaufrufinformationenCollect function call information

Sie können IntelliTrace so konfigurieren, dass Aufrufinformationen für Funktionen gesammelt werden.You can configure IntelliTrace to collect call information for functions. Anhand dieser Informationen können Sie den Aufruflistenverlauf anzeigen und die Aufrufe im Code vorwärts und rückwärts durchlaufen.This information lets you see a history of the call stack and lets you step backward and forward through calls in the code. Für jeden Funktionsaufruf werden die folgenden Daten von IntelliTrace aufgezeichnet:For each function call, IntelliTrace records this data:

  • FunktionsnameFunction name
  • Werte primitiver Datentypen, die als Parameter an Funktionseinstiegspunkten übergeben und an Funktionsendpunkten zurückgegeben werdenValues of primitive data types passed as parameters at function entry points and returned at function exit points
  • Werte von automatischen Eigenschaften, wenn sie gelesen oder geändert werdenValues of automatic properties when they are read or changed
  • Zeiger auf untergeordnete Objekte auf der obersten Ebene ohne Werte (außer NULL oder keine)Pointers to first-level child objects, but not their values other than if they were null or not

Hinweis

IntelliTrace erfasst nur die ersten 256 Objekte in Arrays und die ersten 256 Zeichen von Zeichenfolgen.IntelliTrace collects only the first 256 objects in arrays and the first 256 characters for strings.

Weitere Informationen finden Sie unter Untersuchen Ihrer App mit verlaufsbezogenem Debuggen von IntelliTrace in Visual Studio (C#, Visual Basic, C++).See Inspect your app with historical debugging.

Erfassen von ModulinformationenCollect module information

Um zu steuern, wie viel Aufrufsinformationen IntelliTrace erfasst, legen Sie nur die Module fest, die für Sie von Bedeutung sind.To control how much call information that IntelliTrace collects, specify only those modules that you care about. Das kann dabei helfen, die Anwendungsleistung während der Erfassung zu verbessern.This can help improve your application's performance during collection. Weitere Informationen finden Sie im Artikel zu IntelliTrace-Features im Abschnitt Steuern der Anzahl der von IntelliTrace aufgezeichneten Aufrufinformationen.See the section Control how much information IntelliTrace Collects in IntelliTrace features.

Verlangsamt IntelliTrace meine Anwendung?Will IntelliTrace slow down my application?

Standardmäßig werden von IntelliTrace nur Daten für ausgewählte IntelliTrace-Ereignisse gesammelt.By default, IntelliTrace collects data for selected IntelliTrace events only. Das kann, abhängig von der Struktur und der Organisation Ihres Codes, eventuell die Anwendung verlangsamen.This might or might not slow down your application, depending on the structure and organization of your code. Wenn IntelliTrace beispielsweise oft ein Ereignis protokolliert, kann dies die Anwendung verlangsamen.For example, if IntelliTrace records an event often, this might slow down your application. Erwägen Sie, eine Umgestaltung Ihrer Anwendung vorzunehmen.It might also make you consider refactoring your application.

Das Sammeln der Aufrufsinformationen verlangsamt die App möglicherweise erheblich.Collecting call information might slow down your application significantly. Außerdem erhöht sich dadurch möglicherweise die Größe aller auf dem Datenträger gespeicherter IntelliTrace-Protokolldateien (ITRACE-Dateien).It might also increase the size of any IntelliTrace log files (.iTrace files) that you're saving to disk. Um diese Auswirkungen zu minimieren, sammeln Sie Aufrufinformationen nur für die Module, die Sie interessieren.To minimize these effects, collect call information only for the modules you care about. Um die maximale Größe der ITRACE-Dateien zu ändern, wechseln Sie zu Tools, Optionen, IntelliTrace, Erweitert.To change the maximum size of your .iTrace files, go to Tools, Options, IntelliTrace, Advanced.

BlogsBlogs

Microsoft DevOpsMicrosoft DevOps

ForenForums

Visual Studio-DiagnoseVisual Studio Diagnostics