Debuggen mit IntelliTrace

Dieses Thema gilt ausschließlich für Visual Studio 2010 Ultimate.

Beim Debuggen mit IntelliTrace – verfügbar in Microsoft Visual Studio 2010 Ultimate – erhalten Sie ein besseres Bild von Ihrer Anwendung als mit herkömmlichen Debuggern. Herkömmliche Debugger zeigen den Zustand der Anwendung zum aktuellen Zeitpunkt mit beschränkten Informationen zu den in der Vergangenheit aufgetretenen Ereignissen an. Die in der Vergangenheit aufgetretenen Ereignisse müssen Sie anhand des aktuellen Anwendungszustands ableiten, oder Sie starten die Anwendung neu, um vergangene Ereignisse erneut zu erstellen. Mit IntelliTrace können Sie in der Vergangenheit aufgetretene Ereignisse sowie den Kontext anzeigen, in dem sie aufgetreten sind. Dadurch kann das Debuggen der Anwendung mit weniger Neustarts ausgeführt werden, und auch das Risiko, dass sich ein Fehler beim erneuten Ausführen der Anwendung nicht mehr reproduzieren lässt, ist geringer.

IntelliTrace stellt eine Erweiterung und Verbesserung des Livedebuggings von Visual Studio dar, mit dem Sie bereits vertraut sind. Sie haben auch weiterhin Zugriff auf sämtliche bekannte Visual Studio-Debugger. IntelliTrace operiert unsichtbar im Hintergrund und erfasst Debuginformationen. Wenn Sie einen Zustand der Anwendung aus der Vergangenheit überprüfen möchten, können Sie in den IntelliTrace-Modus wechseln. In diesem Modus können Sie zu verschiedenen Zeitpunkten navigieren, an denen relevante Ereignisse erfasst wurden.

Sie können auch eine IntelliTrace-Datei (ITRACE-Datei) laden und debuggen. Von IntelliTrace oder Test Manager erstellte Protokolldateien ermöglichen das Debuggen nach einem Absturz mit sämtlichen Vorteilen von IntelliTrace.

Bei Verwendung der Standardeinstellungen sind die Auswirkungen von IntelliTrace auf die Anwendungsleistung überaus gering. Daher ist IntelliTrace standardmäßig aktiviert. Auch wenn die Verwendung von IntelliTrace beim Start der Debugsitzung nicht geplant war, werden automatisch IntelliTrace-Informationen gesammelt, damit sie bei Bedarf zur Verfügung stehen.

Schnelleres Debuggen von Code

Dank eines verkürzten Debugzyklus können Sie mit IntelliTrace schneller arbeiten. Beispiel: Sie debuggen eine Anwendung, von der bei der Initialisierung ein Registrierungswert gelesen wird, der Registrierungsschlüssel ist jedoch nicht vorhanden. Die Auswirkungen dieses Problems werden unter Umständen erst zu einem deutlich späteren Zeitpunkt der Anwendungsausführung ersichtlich. Dann müssen Sie ermitteln, warum der Registrierungswert nicht gelesen wurde. Der übliche Ansatz ist, die Anwendung neu zu starten und in der Nähe des Registrierungszugriffs einen Haltepunkt zu platzieren. Das erneute Ausführen der Anwendung ist jedoch zeitaufwändig. Mit IntelliTrace lassen sich viele solcher Neustarts vermeiden. Anstatt die Anwendung erneut auszuführen, können Sie das Debuggen mit IntelliTrace starten. Dadurch können Sie sämtliche erfolgte Registrierungszugriffe anzeigen, den für Sie relevanten Zugriffsvorgang auswählen und den Zustand der Anwendung zum Zeitpunkt des Registrierungszugriffs untersuchen. Und auch beim Debuggen anderer Probleme wie einer Ausnahme oder einem Dateizugriffsfehler können Sie von ähnlichen Zeiteinsparungen profitieren. Weitere Informationen finden Sie unter Schnelleres Debuggen von Code mit IntelliTrace.

Debuggen nicht reproduzierbarer Fehler

IntelliTrace ermöglicht das Debuggen von Fehlern und Abstürzen, die andernfalls nicht reproduzierbar wären. Sie können Protokolldateien debuggen, die von IntelliTrace oder von Test Manager erstellt wurden. Ein Tester kann eine Protokolldatei aus Test Manager direkt mit einer Team Foundation Server-Arbeitsaufgabe oder einem entsprechenden Fehler verknüpfen, die bzw. der dann wiederum einem Entwickler zugewiesen werden kann. Auf diese Weise werden IntelliTrace und Test Manager perfekt in den Teamworkflow eingebunden.

Das Debuggen einer IntelliTrace-Datei funktioniert ähnlich wie das Debuggen einer Sicherungsdatei. IntelliTrace-Dateien enthalten jedoch wesentlich mehr Informationen als herkömmliche Sicherungsdateien. Eine Sicherungsdatei enthält eine Momentaufnahme vom Zustand einer Anwendung zu einem bestimmten Zeitpunkt – üblicherweise der Zeitpunkt des Absturzes. Mit IntelliTrace können Sie rückwärts durch den Verlauf navigieren, um den Zustand der Anwendung sowie Ereignisse eines früheren Zeitpunkts der Anwendungsausführung anzuzeigen. Dadurch gestaltet sich das Debuggen auf Basis einer Protokolldatei schneller und einfacher als das Debuggen auf Basis einer Sicherungsdatei.

Weitere Informationen finden Sie unter Debuggen von nicht reproduzierbaren Fehlern mit IntelliTrace.

Unterstützte Anwendungen und Debugszenarien

Von IntelliTrace wird das Debuggen von Visual Basic- und C#-Anwendungen mit .NET 2.0, 3.0, 3.5 oder 4 unterstützt. Das Debuggen kann für die meisten Anwendungen ausgeführt werden – einschließlich Anwendungen, die mithilfe von ASP.NET, Windows Forms, WPF, Windows Workflow oder WCF erstellt wurden. Das Debuggen von C++, Skript oder anderen Sprachen wird von IntelliTrace nicht unterstützt. Das Debuggen von F#-Anwendungen wird auf experimenteller Basis unterstützt.

Mit IntelliTrace können Sie Anwendungen debuggen, die über Visual Studio- und IntelliTrace-Dateien gestartet wurden, welche von IntelliTrace oder Test Manager erstellt wurden. IntelliTrace kann nicht zusammen mit Anwendungen verwendet werden, die außerhalb von Visual Studio gestartet und mit dem Befehl Anfügen debuggt werden. Von IntelliTrace wird kein Remotedebugging von Anwendungen unterstützt, die auf anderen Computern ausgeführt werden.

Von IntelliTrace wird das Debuggen nach einem Absturz von SharePoint-Anwendungen und 64-Bit-Anwendungen mittels Protokolldateien für Ablaufverfolgungsdebugging unterstützt, die von Test Manager erstellt wurden. Das Debuggen von in Visual Studio gestarteten SharePoint-Anwendungen oder 64-Bit-Anwendungen wird nicht unterstützt.

Das Debuggen von Silverlight-, Xbox- oder Windows Mobile-Anwendungen wird nicht unterstützt.

Sammlungsebenen

Bei aktiviertem IntelliTrace werden während jeder Debugsitzung automatisch Informationen gesammelt. Diese IntelliTrace-Informationen ermöglichen bei Bedarf den Wechsel vom Livedebugging zum Debugging mit IntelliTrace. Welche Informationen gesammelt werden, hängt von den in Visual Studio festgelegten Optionen ab. Diese Sammlungsoptionen gelten für alle Projekte und Lösungen. Sie bleiben zwischen Debug- und Visual Studio-Sitzungen erhalten.

Standardmäßig werden von IntelliTrace nur Informationen für ausgewählte IntelliTrace-Ereignisse gesammelt. Wie bereits erwähnt, sind die durch das Sammeln dieser Standardinformationen bedingten Auswirkungen auf die Leistung der Anwendung äußerst gering.

Zur Erweiterung der Möglichkeiten beim Debuggen können Sie zusätzlich zu den IntelliTrace-Ereignissen einen Datensatz mit Aufrufen sowie die entsprechenden Parameter und Rückgabewerte erfassen. Diese zusätzlichen Möglichkeiten beim Debugging haben jedoch Auswirkungen auf die Leistung. Weitere Informationen zu den Diagnoseereignissen und Sammlungsoptionen finden Sie unter Sammeln von IntelliTrace-Informationen.

Siehe auch

Konzepte

Ausführen häufiger Entwicklungsaufgaben

Weitere Ressourcen

API-Referenz für IntelliTrace-Erweiterbarkeit