Debuggen Ihrer Anwendung durch Aufzeichnung der Codeausführung mit IntelliTrace
Mit IntelliTrace in Visual Studio Ultimate lässt sich der Ausführungsverlauf einer Anwendung aufzeichnen und verfolgen, was Zeit beim Debuggen Ihrer Anwendung spart.Sie finden Fehler einfach und unkompliziert, ohne extra viele Haltepunkte festzulegen. Denn mit IntelliTrace können Sie:
Bestimmte Ereignisse in der Anwendung aufzeichnen.
Dies dient zum Überprüfen von verknüpftem Code, von Daten, die bei Debuggerereignissen im Fenster Lokal angezeigt werden und von Funktionsaufrufsinformationen, sofern Sie diese sammeln.
Neustarts der Anwendung einschränken, um Fehler oder Ereignisse erneut zu erstellen.
Fehler debuggen, die schwer reproduzierbar sind oder außerhalb von Visual Studio vorkommen, beispielsweise in der Produktion oder in anderen Umgebungen.
Dieses Beispiel verdeutlicht den Vorteil der Ablaufverfolgung von Ereignissen bei der Fehlersuche in Code:
So funktioniert IntelliTrace: Visual Studio Ultimate 2012: Sammeln und Analysieren von Daten in der Produktion (Channel-9-Video).
Was möchten Sie tun?
Debuggen der Anwendung mit IntelliTrace in Visual Studio:
|
|
Sammeln von IntelliTrace-Daten während einer Testsitzung im Test Manager |
|
Sammeln von IntelliTrace-Daten von Anwendungen, die außerhalb von Visual Studio ausgeführt werden |
|
Starten Sie das Debuggen von einer IntelliTrace-Protokolldatei (ITRACE-Datei). |
FAQ
Welche Anwendungen kann ich mit IntelliTrace debuggen?
Warum sollte ich mit IntelliTrace debuggen?
Welche Daten erfasst IntelliTrace?
Verlangsamt IntelliTrace meine Anwendung?
Welche Anwendungen kann ich mit IntelliTrace debuggen?
Unterstützt |
|
Eingeschränkte Unterstützung |
|
Nicht unterstützt |
|
Hinweis |
---|
IntelliTrace kann nicht verwendet werden, um einen Prozess zu debuggen, der bereits ausgeführt wird.Sie müssen IntelliTrace zu Beginn des Prozesses starten. |
Warum sollte ich mit IntelliTrace debuggen?
Herkömmliche oder Live-Debuggenvorgänge zeigen nur den aktuellen Zustand der Anwendung mit eingeschränkten Informationen zu vergangenen Ereignissen.Sie müssen diese Ereignisse entweder auf Grundlage des aktuellen Anwendungszustands ableiten, oder Sie müssen diese Ereignisse neu erstellen, indem Sie die Anwendung erneut ausführen.
IntelliTrace erweitert diese herkömmlichen Debuggenvorgänge, indem bestimmte Ereignisse und Daten an diesen Zeitpunkten erfasst werden.Somit können Sie auch ohne Neustart der Anwendung die Ereignisse verfolgen und finden auch bereits aufgetretene Fehler.IntelliTrace ist standardmäßig während des herkömmlichen Debuggen aktiviert, sodass Daten automatisch und unsichtbar erfasst werden.Sie können also zwischen dem herkömmlichen Debuggen und dem IntelliTrace-Debuggen problemlos wechseln, um die aufgezeichneten Informationen abzurufen.Siehe Aufzeichnung der Codeausführung mit IntelliTrace zum Debuggen in Visual Studio und Welche Daten erfasst IntelliTrace?
IntelliTrace hilft Ihnen außerdem beim Debuggen von Fehlern, die schwer reproduzierbar sind oder außerhalb von Visual Studio auftreten.Sie können IntelliTrace-Daten sammeln und in einer IntelliTrace-Protokolldatei (ITRACE-Datei) speichern.Eine ITRACE-Datei enthält Details über Ausnahmen, Threads, Webanforderungen, Testdaten, Module und andere Systeminformationen.Diese Datei kann in Visual Studio Ultimate geöffnet werden. Dort wählen Sie ein Element aus und beginnen mit dem Debuggen mit IntelliTrace.Sie können also zu jedem beliebigen Ereignis in der Datei gehen und bestimmte Einzelheiten über die Anwendung an diesem Punkt anzeigen lassen.
IntelliTrace-Daten können aus den folgenden Quellen gespeichert werden:
IntelliTrace-Sitzung in Visual Studio Ultimate
Testsitzung in Microsoft Test Manager
Anwendungen, die außerhalb von Visual Studio ausgeführt werden, beispielsweise in der Produktionsumgebung oder anderen Umgebungen
Visual Studio 2012.1: Apps, die von System Center 2012 Service Pack 1 (SP1) - Vorgangs-Manager mit IntelliTrace Profiling Management Pack überwacht werden.Siehe Konfigurieren der Integration mit IntelliTrace in System Center 2012.
Siehe Debuggen Ihrer Anwendung mit IntelliTrace-Protokolldateien (.iTrace).
Im Folgenden werden einige Beispiele aufgeführt, die den Nutzen von IntelliTrace beim Debuggen veranschaulichen:
Ihre Anwendung hat eine Datendatei beschädigt, doch Sie wissen nicht, wann das passiert ist.
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.Mit IntelliTrace können Sie alle erfassten Dateizugriffsereignisse und bestimmte Details über die Anwendung finden, wenn Ereignisse auftreten.
Eine Ausnahme tritt auf.
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.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.Mit IntelliTrace können Sie die Ereignisse untersuchen, die vor der Ausnahme auftraten.
Die Anwendung stürzt auf einem Testcomputer ab, wird jedoch auf einem Entwicklungscomputer erfolgreich ausgeführt.
Sie können IntelliTrace-Daten vom Microsoft Test Manager sammeln, die Daten in einer ITRACE-Datei speichern und diese Datei später einer Team Foundation Server-Arbeitsaufgabe für die Untersuchung hinzufügen.Weitere Informationen finden Sie unter Einbeziehen diagnostischer Ablaufverfolgungsdaten mit Fehlern, die schwer zu reproduzieren sind und Debuggen Ihrer Anwendung mit IntelliTrace-Protokolldateien (.iTrace).
Ein Fehler oder ein Absturz tritt in einer Anwendung auf, die außerhalb von Visual Studio ausgeführt wird.
Für Windows Azure-basierte Apps können Sie vor dem Öffnen der Anwendung die IntelliTrace-Datensammlung konfigurieren.Während die App ausgeführt wird, werden von IntelliTrace Daten in einer ITRACE-Datei gespeichert.Siehe Debuggen eines veröffentlichten gehosteten Diensts mit IntelliTrace und Visual Studio.
Für verwaltete Desktop-Apps (EXE-Dateien), ASP.NET-Web Apps, die unter IIS 7.0, 7.5 und 8.0 gehostet werden, und SharePoint 2010-Anwendungen lassen sich IntelliTrace-Daten mithilfe des eigenständigen Collectors in einer ITRACE-Datei speichern.
Dies ist hilfreich, wenn Sie Probleme mit Apps ermitteln möchten, die in Bereichen ausgeführt werden, in denen Sie die Systemkonfiguration nicht ändern möchten, etwa in einer Produktionsumgebung.Sie können den Collector ohne Änderung der Systemkonfigurationen installieren.Nachdem die Daten gesammelt wurden, kann der Collector mit einem Löschvorgang deinstalliert werden.Siehe Sammeln von IntelliTrace-Daten außerhalb von Visual Studio mit eigenständiger Auflistung.
Welche Daten erfasst IntelliTrace?
Sammeln von Ereignisinformationen
IntelliTrace zeichnet standardmäßig nur IntelliTrace-Ereignisse auf.Dies sind Debuggerereignisse, Ausnahmen, .NET Framework-Ereignisse und andere Systemereignisse, die beim Debuggen hilfreich sein können.Sie können die IntelliTrace-Ereignisse auswählen, die Sie sammeln möchten. Debuggerereignisse und -ausnahmen werden allerdings immer gesammelt.Siehe Konfigurieren der IntelliTrace-Auflistung zum Debuggen in Visual Studio.
Debuggerereignisse
IntelliTrace zeichnet alle Ereignisse auf, die im Visual Studio-Debugger stattfinden.Beispielsweise ist der Anwendungsstart ein Debuggerereignis.Weitere Debuggerereignisse sind Beendigungen von Ereignissen, die zur Unterbrechung der Anwendungsausführung führen.Zum Beispiel wenn das Programm einen Haltepunkt oder einen Ablaufverfolgungspunkt erreicht oder einen Schrittbefehl ausführt.
Für optimale Leistung werden nicht alle möglichen Werte für ein Debuggerereignis von IntelliTrace aufgezeichnet.Stattdessen werden folgende Werte aufgezeichnet:
Werte im Lokalfenster.Lassen Sie das Lokalfenster geöffnet, um diese Werte anzuzeigen.
Werte im Auto-Fenster, wenn das Auto-Fenster geöffnet ist
Werte in DataTips, die angezeigt werden, wenn Sie den Mauszeiger über eine Variable im Quellcodefenster bewegen, um den Wert anzuzeigen.IntelliTrace erfasst keine Werte in angehefteten DataTips.
Ausnahmen
IntelliTrace zeichnet den Ausnahmetyp und die Meldung für diese Ausnahmen auf:
Bearbeitete Ausnahmen, in denen die Ausnahme ausgelöst und abgefangen wird
Ausnahmefehler
.NET Framework-Ereignisse
IntelliTrace zeichnet standardmäßig die häufigsten .NET Framework-Ereignisse auf.Beispiel:
Für ein Dateizugriffsereignis erfasst IntelliTrace den Dateinamen.
Für ein Checkbox-Aktivierungsereignis erfasst IntelliTrace den Kontrollkästchenzustand und den Text.
Visual Studio 2012.1: SharePoint 2010-Anwendungsereignisse
Für außerhalb von Visual Studio ausgeführte SharePoint 2010-Anwendungen, können Sie bestimmte SharePoint-Ereignisse in einer ITRACE-Datei aufzeichnen und speichern, indem Sie in Visual Studio 2012.1 den eigenständigen Collector verwenden.
Wenn Sie die ITRACE-Datei öffnen, können Sie eine SharePoint-Korrelations-ID eingeben, um die entsprechenden Webanforderung zu suchen, die aufgezeichneten Ereignisse anzuzeigen, und das Debuggen von einem bestimmten Ereignis aus zu starten.Wenn die Datei Ausnahmefehler enthält, können Sie eine Korrelations-ID auswählen, um das Debuggen einer Ausnahme zu starten.Sie können Benutzerprofilereignisse und eine Teilmenge der Ereignisse des vereinheitlichten Protokollierungsdiensts (ULS) aufzeichnen.
Thema
Sammeln von Funktionsaufrufinformationen
Sie können IntelliTrace so konfigurieren, dass Aufrufinformationen für Funktionen gesammelt werden.Anhand dieser Informationen können Sie den Aufruflistenverlauf anzeigen und die Aufrufe im Code vorwärts und rückwärts durchlaufen.Für jeden Funktionsaufruf werden die folgenden Daten von IntelliTrace aufgezeichnet:
Funktionsname
Werte primitiver Datentypen, die als Parameter an Funktionseinstiegspunkten übergeben und an Funktionsendpunkten zurückgegeben werden
Werte von automatischen Eigenschaften, wenn sie gelesen oder geändert werden
Zeiger auf untergeordnete Objekte auf der obersten Ebene ohne Werte (außer NULL oder keine)
Hinweis |
---|
IntelliTrace erfasst nur die ersten 256 Objekte in Arrays und die ersten 256 Zeichen von Zeichenfolgen. |
Siehe Konfigurieren der IntelliTrace-Auflistung zum Debuggen in Visual Studio.
Sammeln von Modulinformationen
Um zu steuern, wie viel Aufrufsinformationen IntelliTrace erfasst, legen Sie nur die Module fest, die für Sie von Bedeutung sind.Das kann dabei helfen, die Appleistung während des Auflistungsvorgangs zu verbessern.Siehe Konfigurieren der IntelliTrace-Auflistung zum Debuggen in Visual Studio.
Verlangsamt IntelliTrace meine Anwendung?
Standardmäßig werden von IntelliTrace nur Daten für ausgewählte IntelliTrace-Ereignisse gesammelt.Das kann, abhängig von der Struktur und der Organisation Ihres Codes, eventuell die Anwendung verlangsamen.Wenn IntelliTrace ein Ereignis beispielsweise häufig aufzeichnet, verlangsamt dies Ihre Anwendung. Allerdings werden Sie möglicherweise auch darauf hingewiesen, die Anwendung umzugestalten.
Das Sammeln der Aufrufsinformationen verlangsamt die App möglicherweise erheblich.Außerdem erhöht sich dadurch möglicherweise die Größe aller auf dem Datenträger gespeicherter IntelliTrace-Protokolldateien (ITRACE-Dateien).Um diese Auswirkungen zu minimieren, sammeln Sie Aufrufinformationen nur für die Module, die Sie interessieren.Um die maximale Größe der ITRACE-Dateien zu ändern, wechseln Sie zu Tools, Optionen, IntelliTrace, Erweitert.Siehe Konfigurieren der IntelliTrace-Auflistung zum Debuggen in Visual Studio.
Wo kann ich weitere Informationen abrufen?
Aufzeichnung der Codeausführung mit IntelliTrace zum Debuggen in Visual Studio
Konfigurieren der IntelliTrace-Auflistung zum Debuggen in Visual Studio
Einbeziehen diagnostischer Ablaufverfolgungsdaten mit Fehlern, die schwer zu reproduzieren sind
Sammeln von IntelliTrace-Daten außerhalb von Visual Studio mit eigenständiger Auflistung
Debuggen Ihrer Anwendung mit IntelliTrace-Protokolldateien (.iTrace)
Blogs
Visual Studio ALM und Team Foundation Server
Foren
Empfehlungen
Tests für fortlaufende Übermittlung mit Visual Studio 2012 - Kapitel 6: Eine Test-Toolbox
Videos
Channel-9-Video – Visual Studio Ultimate 2012: Sammeln und Analysieren von Daten in der Produktion