Freigeben über


Aufruflisten in der Profilerstellungs-API

Aktualisiert: November 2007

Die Profilerstellungs-API bietet zwei Methoden zum Abrufen von Aufruflisten: eine Stapelsnapshotmethode, mit der Anruflisten sporadisch überwacht werden können, und eine Schattenstapelmethode, mit der Anruflisten laufend überwacht werden können. Dieses Thema enthält eine Übersicht über diese beiden Methoden.

Stapelsnapshot

Unter einem Stapelsnapshot versteht man die Überwachung eines Threadstapels zu einem bestimmten Zeitpunkt. Die Profilerstellungs-API unterstützt die Überwachung von verwalteten Funktionen im Stapel, überlässt jedoch die Überwachung nicht verwalteter Funktionen dem Stackwalker des Profilers.

Weitere Informationen darüber, wie Sie den Profiler zum Durchlaufen verwalteter Stapel programmieren, finden Sie in den Ausführungen zur ICorProfilerInfo2::DoStackSnapshot-Methode in dieser Dokumentation und in der MSDN Library unter Profiler Stack Walking in the .NET Framework 2.0: Basics and Beyond.

Schattenstapel

Die allzu häufige Verwendung der Snapshotmethode kann schnell zu Leistungseinbußen führen. Wenn Sie regelmäßig Stapelüberwachungen vornehmen möchten, sollte der Profiler stattdessen die Ausnahmerückrufe FunctionEnter2, FunctionLeave2, FunctionTailcall2 und ICorProfilerCallback2 verwenden, um einen Schattenstapel zu erstellen. Der Schattenstapel ist immer aktuell und kann schnell in den Speicher kopiert werden, wenn ein Stapelsnapshot benötigt wird.

Mit einem Schattenstapel können Funktionsargumente, Rückgabewerte und Informationen über generische Instanziierungen abgerufen werden. Diese Informationen sind nur über den Schattenstapel verfügbar und können abgerufen werden, wenn die Steuerung an eine Funktion übergeben wird. Sobald die Funktion ausgeführt wird, sind diese Informationen u. U. jedoch nicht mehr verfügbar.

Siehe auch

Referenz

ICorProfilerInfo2::SetEnterLeaveFunctionHooks2-Methode

Weitere Ressourcen

Hauptbegriffe in der Profilerstellungs-API

Übersicht über die Profilerstellung