Freigeben über


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

Sie können weniger Zeit mit dem Debuggen Ihrer Anwendung verbringen, wenn Sie IntelliTrace zum Aufzeichnen und Nachverfolgen des Ausführungsverlaufs Ihres Codes verwenden. Sie können Fehler leicht finden, da IntelliTrace Folgendes ermöglicht:

  • Aufzeichnen bestimmter Ereignisse

  • Untersuchen Sie verwandten Code, Daten, die während Debuggerereignissen im Locals-Fenster angezeigt werden, und Informationen zu Funktionsaufrufen.

  • Debuggen von Fehlern, die schwer zu reproduzieren sind oder bei der Bereitstellung auftreten

Sie können IntelliTrace in Visual Studio Enterprise Edition (aber nicht die Professional- oder Community-Editionen) verwenden.

Was möchten Sie tun?

Szenario Titel
Debuggen meiner Anwendung mit IntelliTrace:

- Zeigen Sie mir vergangene Ereignisse an.
Zeige mir Anrufinformationen zu vergangenen Ereignissen.
- Meine IntelliTrace-Sitzung speichern.
- Steuern Sie die Daten, die IntelliTrace sammelt.
- Überprüfen früherer App-Zustände mit IntelliTrace
- Anleitung: Verwendung von IntelliTrace
- IntelliTrace-Features
- Historisches Debugging
Erfassen von IntelliTrace-Daten aus bereitgestellten Anwendungen - Verwenden des eigenständigen IntelliTrace-Sammlers
Starten Sie das Debuggen aus einer IntelliTrace-Protokolldatei (ITrace-Datei). - Verwenden gespeicherter IntelliTrace-Daten

Welche Apps kann ich mit IntelliTrace debuggen?

Unterstützungsstufe Anwendungstypen
Vollständiger Support – Visual Basic- und Visual C#-Anwendungen, die .NET Framework 2.0 oder höher verwenden.
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-Apps.
Informationen zum Debuggen von SharePoint-Anwendungen mit IntelliTrace finden Sie unter Exemplarische Vorgehensweise: Debuggen einer SharePoint-Anwendung mithilfe von IntelliTrace.
Informationen zum Debuggen von Microsoft Azure-Apps mit IntelliTrace finden Sie unter Debuggen eines veröffentlichten Clouddiensts mit IntelliTrace und Visual Studio.
Eingeschränkter Support – C++-Apps, die auf Windows abzielen, unterstützen das Anzeigen von Momentaufnahmen mithilfe von IntelliTrace Schritt-zurück. Nur Debugger- und Ausnahmeereignisse werden unterstützt.
– .NET Core- und ASP.NET Core-Apps, die nur für bestimmte Ereignisse (MVC-Controller-, ADO.NET- und HTTPClient-Ereignisse) im lokalen Debuggen unterstützt werden. Der eigenständige Collector wird für .NET Core- oder ASP.NET Core-Apps nicht unterstützt.
- F#-Apps auf experimenteller Basis
– Nur für Ereignisse unterstützte UWP-Apps
Nicht unterstützt - Andere Sprachen und Skripte
– Windows-Dienste, Silverlight-, Xbox- oder Windows Mobile-Apps

Hinweis

Wenn Sie einen prozess debuggen möchten, der bereits ausgeführt wird, können Sie nur IntelliTrace-Ereignisse sammeln (keine Aufrufinformationen). Sie können nur einen 32-Bit- oder 64-Bit-Prozess auf dem lokalen Computer anschließen. Ereignisse, die eintreten, bevor Sie sich mit dem Prozess verbinden, werden nicht erfasst.

Warum Debuggen mit IntelliTrace?

Traditionelles oder Live-Debugging zeigt nur den aktuellen Zustand Ihrer Anwendung und bietet eingeschränkte Daten zu vergangenen Ereignissen. Sie müssen diese Ereignisse entweder basierend auf dem aktuellen Zustand der Anwendung ableiten, oder Sie müssen diese Ereignisse neu erstellen, indem Sie Die Anwendung erneut ausführen.

IntelliTrace erweitert diese herkömmliche Debugerfahrung, indem bestimmte Ereignisse und Daten zu diesen Zeitpunkten aufgezeichnet werden. Auf diese Weise können Sie sehen, was in Ihrer Anwendung passiert ist, ohne sie neu zu starten, insbesondere, wenn Sie an der Stelle des Fehlers vorbeigehen. IntelliTrace ist standardmäßig beim herkömmlichen Debuggen aktiviert und sammelt Automatisch und unsichtbar Daten. Auf diese Weise können Sie problemlos zwischen herkömmlichem Debuggen und IntelliTrace-Debugging wechseln, um die aufgezeichneten Informationen anzuzeigen. Siehe IntelliTrace-Features und welche Daten sammelt IntelliTrace?

IntelliTrace kann Ihnen auch beim Debuggen von Fehlern helfen, die schwer zu reproduzieren sind oder die bei der Bereitstellung auftreten. Sie können IntelliTrace-Daten sammeln und in einer IntelliTrace-Protokolldatei (ITrace-Datei) speichern. Eine ITrace-Datei enthält Details zu Ausnahmen, Leistungsereignissen, Webanforderungen, Testdaten, Threads, Modulen und anderen Systeminformationen. Sie können diese Datei in Visual Studio Enterprise öffnen, ein Element auswählen und mit IntelliTrace debuggen. Auf diese Weise können Sie zu jedem Ereignis in der Datei wechseln und bestimmte Details zu Ihrer Anwendung zu diesem Zeitpunkt anzeigen.

Sie können IntelliTrace-Daten aus diesen Quellen speichern:

  • Eine IntelliTrace-Sitzung in Visual Studio 2015 Enterprise oder höheren Versionen oder früheren Versionen von Visual Studio Ultimate.

  • ASP.NET Web-Apps, die in IIS gehostet werden, oder SharePoint-Anwendungen, die in der Bereitstellung ausgeführt werden, wenn Sie den Microsoft Monitoring Agent entweder allein oder mit System Center 2012 verwenden. Weitere Informationen finden Sie unter Verwenden des eigenständigen IntelliTrace-Sammlers und der Überwachung mit dem Microsoft Monitoring Agent.

    Von Bedeutung

    Die Verwendung von Microsoft Monitoring Agent (MMA) mit IntelliTrace wird nicht mehr unterstützt, wenn der Microsoft Monitoring Agent am 31. August 2024 das Ende der Lebensdauer erreicht. Weitere Informationen finden Sie unter Migrieren vom Log Analytics-Agent zum Azure Monitor-Agent.

Hier sind einige Beispiele dafür, wie IntelliTrace Ihnen beim Debuggen helfen kann:

  • Ihre Anwendung hat eine Datendatei beschädigt, aber Sie wissen nicht, wo dieses Ereignis aufgetreten ist.

    Ohne IntelliTrace müssen Sie den Code durchsuchen, um alle möglichen Dateizugriffe zu finden, Haltepunkte für diese Zugriffe zu platzieren und ihre Anwendung erneut durchzuführen, um zu finden, wo das Problem aufgetreten ist. Mit IntelliTrace können Sie alle gesammelten Dateizugriffsereignisse und spezifische Details zu Ihrer Anwendung sehen, wenn jedes Ereignis aufgetreten ist.

  • Eine Ausnahme tritt auf.

    Ohne IntelliTrace erhalten Sie eine Meldung zu einer Ausnahme, aber Sie haben nicht viele Informationen zu den Ereignissen, die zu der Ausnahme geführt haben. Sie können den Aufrufstapel untersuchen, um die Kette der Aufrufe anzuzeigen, die zu der Ausnahme geführt haben, aber Sie können die Abfolge der Ereignisse, die während dieser Aufrufe aufgetreten sind, nicht sehen. Mit IntelliTrace können Sie die Ereignisse untersuchen, die vor der Ausnahme aufgetreten sind.

  • Ein Fehler oder Absturz tritt in einer bereitgestellten Anwendung auf.

    Für Microsoft Azure-basierte Apps können Sie die IntelliTrace-Datensammlung konfigurieren, bevor Sie die Anwendung veröffentlichen. Während die Anwendung ausgeführt wird, speichert IntelliTrace Daten in einer ITRACE-Datei. Siehe Debuggen eines veröffentlichten Clouddiensts mit IntelliTrace und Visual Studio.

    Verwenden Sie für ASP.NET Web-Apps, die in IIS 7.0, 7.5 und 8.0 und SharePoint 2010- oder SharePoint 2013-Anwendungen gehostet werden, microsoft Monitoring Agent entweder allein oder mit System Center 2012, um IntelliTrace-Daten in einer ITRACE-Datei zu speichern.

    Dies ist nützlich, wenn Sie Probleme mit Apps in der Bereitstellung diagnostizieren möchten. Siehe Verwenden des eigenständigen IntelliTrace-Sammlers.

Welche Daten sammelt IntelliTrace?

Sammeln von Ereignisinformationen

Standardmäßig zeichnet IntelliTrace nur IntelliTrace-Ereignisse auf: Debuggerereignisse, Ausnahmen, .NET Framework-Ereignisse und andere Systemereignisse, die Ihnen beim Debuggen helfen können. Sie können die Arten von IntelliTrace-Ereignissen auswählen, die Sie sammeln möchten, mit Ausnahme von Debuggerereignissen und Ausnahmen, die immer erfasst werden. Siehe IntelliTrace-Features.

  • Debuggerereignisse

    IntelliTrace zeichnet immer Ereignisse auf, die im Visual Studio-Debugger auftreten. Das Starten der Anwendung ist z. B. ein Debuggerereignis. Andere Debuggerereignisse beenden Ereignisse, die dazu führen, dass die Ausführung der Anwendung abgebrochen wird. Ihr Programm erreicht z. B. einen Haltepunkt, einen Tracenpunkt oder führt einen Schritt-Befehl aus.

    Um die Leistung zu verbessern, zeichnet IntelliTrace standardmäßig nicht jeden möglichen Wert für ein Debuggerereignis auf. Stattdessen werden diese Werte aufgezeichnet:

    • Werte im Fenster "Lokal" . Lassen Sie das Fenster "Lokal" geöffnet, um diese Werte anzuzeigen.

    • Werte im Fenster "Autos " nur, wenn das Fenster "Auto" geöffnet ist

    • Werte in Dateninfos, die angezeigt werden, wenn Sie den Mauszeiger über eine Variable im Quellfenster bewegen, um dessen Wert anzuzeigen. IntelliTrace sammelt keine Werte in angehefteten Datentips.

      Wenn Der IntelliTrace-Ereignis- und Snapshots-Modus aktiviert ist, erstellt IntelliTrace eine Momentaufnahme des Prozesses der Anwendung bei jedem Debugger Breakpoint - und Step-Ereignis . Dadurch werden Werte in den Fenstern "Lokal", " Autos" und " Watch " erfasst, unabhängig davon, ob die Fenster geöffnet sind oder nicht. Werte in allen angehefteten Datentipps werden ebenfalls erfasst.

  • Ausnahmen

    IntelliTrace zeichnet den Ausnahmetyp und die Meldung für diese Arten von Ausnahmen auf:

    • Behandelte Ausnahmen, bei denen die Ausnahme ausgelöst und abgefangen wird

    • Nicht behandelte Ausnahmen

  • .NET Framework-Ereignisse

    Standardmäßig zeichnet IntelliTrace die am häufigsten verwendeten .NET Framework-Ereignisse auf. Für ein CheckBox.CheckedChanged Ereignis erfasst IntelliTrace beispielsweise den Kontrollkästchenstatus und text.

  • SharePoint 2010- und SharePoint 2013-Anwendungsereignisse

    Sie können Benutzerprofilereignisse und eine Teilmenge von ULS-Ereignissen (Unified Logging System) für SharePoint 2010- und 2013-Anwendungen aufzeichnen, die außerhalb von Visual Studio ausgeführt werden. Sie können diese Ereignisse in einer ITrace-Datei speichern. Erfordert Visual Studio Enterprise 2015 oder höher, eine frühere Version von Visual Studio Ultimate oder Microsoft Monitoring Agent, das im Ablaufverfolgungsmodus ausgeführt wird.

    Wenn Sie die ITrace-Datei öffnen, geben Sie eine SharePoint-Korrelations-ID ein, um die übereinstimmende Webanforderung zu finden, die aufgezeichneten Ereignisse anzuzeigen und mit dem Debuggen eines bestimmten Ereignisses zu beginnen. Wenn die Datei unbehandelte Ausnahmen enthält, können Sie eine Korrelations-ID auswählen, um mit dem Debuggen einer Ausnahme zu beginnen.

    Siehe:

Erfassen von Momentaufnahmen

Sie können IntelliTrace so konfigurieren, dass Momentaufnahmen an jedem Haltepunkt- und Debuggerschrittereignis erfasst werden. IntelliTrace zeichnet den vollständigen Anwendungszustand bei jeder Momentaufnahme auf, sodass Sie komplexe Variablen anzeigen und Ausdrücke auswerten können.

Hinweis

Der eigenständige IntelliTrace-Sammler unterstützt das Erfassen von Momentaufnahmen nicht.

Siehe "Überprüfen früherer App-Zustände mithilfe von IntelliTrace".

Sammeln von Funktionsaufrufinformationen

Sie können IntelliTrace so konfigurieren, dass Anrufinformationen für Funktionen erfasst werden. Mit diesen Informationen können Sie einen Verlauf des Aufrufstapels anzeigen und durch Aufrufe im Code rückwärts und vorwärts gehen. Für jeden Funktionsaufruf zeichnet IntelliTrace diese Daten auf:

  • Funktionsname
  • Werte von primitiven Datentypen, die als Parameter an Funktionseinstiegspunkten übergeben und an Funktionsausgangspunkten zurückgegeben werden
  • Werte automatischer Eigenschaften, wenn sie gelesen oder geändert werden
  • Zeiger auf untergeordnete Objekte der ersten Ebene, jedoch nicht deren Werte, außer um festzustellen, ob diese null sind oder nicht.

Hinweis

IntelliTrace sammelt nur die ersten 256 Objekte in Arrays und die ersten 256 Zeichen für Zeichenfolgen.

Siehe Überprüfen Ihrer App mit historischem Debugging.

Sammeln von Modulinformationen

Um zu steuern, wie viele Anrufinformationen IntelliTrace sammelt, geben Sie nur die Module an, die Sie interessieren. Dies kann dazu beitragen, die Leistung Ihrer Anwendung während der Sammlung zu verbessern. Lesen Sie den Abschnitt "Steuern, wie viele Informationen IntelliTrace sammelt " in IntelliTrace-Features.

Verlangsamt IntelliTrace meine Anwendung?

Standardmäßig sammelt IntelliTrace Daten nur für ausgewählte IntelliTrace-Ereignisse. Dies kann ihre Anwendung je nach Struktur und Organisation Ihres Codes möglicherweise verlangsamen oder nicht verlangsamen. Wenn IntelliTrace beispielsweise häufig ein Ereignis aufzeichnet, kann dies die Anwendung verlangsamen. Es könnte auch sein, dass Sie in Erwägung ziehen, Ihre Anwendung zu refaktorisieren.

Das Sammeln von Anrufinformationen kann Ihre Anwendung erheblich verlangsamen. Es kann auch die Größe aller IntelliTrace-Protokolldateien (ITrace-Dateien) erhöhen, die Sie auf dem Datenträger speichern. Um diese Effekte zu minimieren, sammeln Sie Anrufinformationen nur für die Module, die Sie interessieren. Um die maximale Größe Ihrer ITrace-Dateien zu ändern, wechseln Sie zu "Extras", "Optionen", "IntelliTrace", " Erweitert".

Bloggen

Microsoft DevOps

Foren

Visual Studio-Diagnose