Laden von Symbolen

Sie können die folgenden Benutzereinstellungen in Windows Performance Analyzer (WPA) festlegen:

  • Symbole laden

  • Konfigurieren von Symbolpfaden

Um diese Optionen zu ändern, öffnen Sie eine Aufzeichnung und wählen Sie dann die Option im Menü Verfolgen.

Verwaltete Symbole

Symbolauflösungen und Stapel für verwaltete Prozesse werden auf den folgenden Systemen unterstützt:

  • Mit .NET Framework 4.5 oder einer neueren Version unter Windows 8 oder einer neueren Version

  • Mit .NET Framework 4.0 oder einer neueren Version auf x86-Computern

Wenn Sie eine Ablaufverfolgung mithilfe von WPR erfassen, aktiviert WPR alle Anbieter, die zum Auflösen verwalteter Symbole in der Ablaufverfolgung erforderlich sind. WPR erstellt neben der gespeicherten Ablaufverfolgung einen Ordner, der PDB-Dateien dieser verwalteten Symbole enthält. Wenn WPA die Ablaufverfolgung öffnet, sucht WPA nach diesem Ordner und fügt ihn automatisch dem Symbolpfad hinzu. Wenn WPR nicht zum Generieren der Ablaufverfolgung verwendet wurde, werden Symbole für .NET Framework-Programme möglicherweise nicht vollständig oder überhaupt nicht decodiert.

JavaScript-Symbole

Symbolauflösung und Stapel für JavaScript-Prozesse werden auf Systemen unterstützt, auf denen die folgende Software ausgeführt wird:

  • Windows 7 zusammen mit Internet Explorer 10 oder neuere Version

  • Anwendungen, die JavaScript unter Windows 8 verwenden

WP ermöglicht den erforderlichen Anbietern, Symbole für JavaScript-Code auf unterstützten Systemen zu dekodieren. Die JavaScript-Methode adressiert und Stapelframes werden mit einem JavaScript-Dateinamen, einem Methodennamen, einer Zeilennummer und einer Spaltennummer decodeiert.

Relative Pfade und eingebettete Umgebungsvariablen

Die Umgebungsvariablen _NT_SYMBOL_PATH und _NT_SYMCACHE_PATH können relative Pfade, absolute Pfade, Netzwerkfreigabepfade oder eingebettete Umgebungsvariablen verwenden. WPA konvertiert relative Pfade in absolute Pfade, wenn Sie die relativen Pfade zum ersten Mal festlegen. WPA konvertiert relative Pfade, die WPA beim Programmstart aus Umgebungsvariablen lädt.

WPA konvertiert relative Pfade, die Sie im Dialogfeld Symbolpfade konfigurieren eingeben, wenn Sie das Dialogfeld schließen. Änderungen am aktuellen Verzeichnis wirken sich nicht auf relative Pfade aus, die Sie bereits festgelegt haben. Das Dialogfeld Symbolpfade konfigurieren zeigt beim ersten Öffnen des Dialogfelds die aktuell eingestellten Pfade an, damit Sie sehen können, wie WPA alle relativen Pfade erweitert hat.

WPA erweitert eingebettete Umgebungsvariablen gleichzeitig mit der Erweiterung relativer Pfade. Da WPA beim Programmstart Umgebungsvariablen erfasst, werden Änderungen an den Umgebungsvariablen, die sich außerhalb einer derzeit ausgeführten Instanz von WPA befinden, in dieser Instanz nicht angezeigt.

Andere Programme, die die Umgebungsvariable _NT_SYMCACHE_PATH verwenden, wie z. B. WinDbg oder Microsoft Visual Studio, behandeln relative Pfade oder eingebettete Umgebungsvariablen möglicherweise nicht auf die gleiche Weise.

SymCache-Pfad

WPA verwendet SymCache-Dateien, um Symbolinformationen aus Programmdatenbankdateien (PDB) kompakt und leicht zugänglich zwischenzuspeichern. Nachdem WPA einen SymCache-Ordner mit den Symbolen für eine Ablaufverfolgung gefüllt hat, ist das erneute Laden der Symbole für diese Ablaufverfolgung viel schneller. Wenn eine SymCache-Datei zu groß wird oder nicht mehr benötigt wird, können Sie diese SymCache-Datei sicher löschen. WPA füllt den SymCache-Ordner nach Bedarf mit neuen Dateien auf. Sie können SymCache-Dateien auch auf einen anderen Computer kopieren oder die Dateien über ein Netzwerk freigeben, um das Laden von Symbolen auf verschiedenen Computern zu beschleunigen.

Wenn Sie im Dialogfeld Symbolpfade konfigurieren die Umgebungsvariable _NT_SYMCACHE_PATH auf einen Ordner setzen, auf den WPA nicht zugreifen kann, schließt die Schaltfläche OK das Dialogfeld nicht. Eine Fehlermeldung wird Ihnen jedoch nicht angezeigt.

Wenn die Umgebungsvariable _NT_SYMCACHE_PATH nicht zugewiesen oder leer ist, erstellt WPA einen SymCache-Ordner im Stammverzeichnis des Laufwerks, das die ausführbare WPA-Datei enthält. Wenn die Umgebungsvariable _NT_SYMCACHE_PATH auf einer Netzwerkfreigabe ausgeführt wird, erstellt die Variable einen SymCache-Ordner im Stammverzeichnis des Laufwerks, das den Ordner „Programme“ enthält. Dies ist normalerweise Laufwerk C.

SymCache-Beispiele

Der folgende Befehl legt die SymCache-Datei im Ordner C:\SymCache ab:

C:\SymCache

Der folgende Befehl legt die SymCache-Datei im Ordner C:\SymCache ab, durchsucht den Ordner \\network\SymCache nach Symbolen und verarbeitet dann die Umgebungsvariable _NT_SYMBOL_PATH:

C:\SymCache*\\network\SymCache

Dieses Beispiel kopiert alle Symbole, die das Beispiel im Ordner \\network\SymCache findet, in den Ordner C:\SymCache. Dadurch kann der Benutzer einen großen SymCache-Ordner erstellen und dann nur die Dateien kopieren, die der Benutzer für eine bestimmte Ablaufverfolgung in den angegebenen Ordner benötigt.

Um mehrere alternative SymCache-Ordner zu durchsuchen, hängen Sie die Ordner an den Suchpfad an, indem Sie ein Sternchen (*) als Trennzeichen verwenden. Wenn WPA eine SymCache-Datei an einem der alternativen Speicherorte findet, kopiert WPA die Datei nur in den ersten SymCache-Ordner im Pfad. WPA legt auch neu erstellte SymCache-Dateien im ersten SymCache-Ordner im Pfad ab.

Um das Kopieren und Schreiben zu deaktivieren, aber dennoch die hierarchische Suchfunktion zu verwenden, sollten Sie die erste Position im Pfad leer lassen, wie im folgenden Beispiel gezeigt:

*\\network\SymCache

Wenn Sie diesen Befehl eingeben, durchsucht WPA den Ordner \\network\SymCache. WPA kopiert jedoch nicht die Ergebnisse oder schreibt die generierten SymCache-Dateien in einen anderen Ordner.

Symbolpfad

Grundlegende Informationen zur Umgebungsvariablen _NT_SYMBOL_PATH finden Sie in den folgenden MSDN-Artikeln:

Das Laden von Symbolen in WPA hängt von den Pfaden ab, die die Umgebungsvariable _NT_SYMBOL_PATH angibt (mit Ausnahme von Symbolen, die WPA bereits im SymCache-Ordner zwischengespeichert hat). WPA durchsucht die Pfade sequentiell, beginnend links. Das Laden von Symbolen aus einer PDB-Datei in einen dieser Pfade kann jedoch zeitaufwändig sein, insbesondere wenn die PDB auf einem Remotecomputer vorhanden ist. Wir empfehlen daher, dass Sie Netzwerkpfade nach lokalen Pfaden setzen und dass Sie einen lokalen PDB-Cache für jeden Remote-Symbolserver verwenden. Aber selbst wenn alle Symbole lokal gespeichert sind, kann WPA während des Ladens von Symbolen nicht mehr reagieren. WPA kehrt in einen interaktiven Zustand zurück, nachdem es das Laden von Symbolen beendet hat.

Wenn die Umgebungsvariable _NT_SYMBOL_PATH nicht festgelegt ist, verwendet WPA den folgenden Standardwert:

 .;SRV*\Symbols*https://msdl.microsoft.com/download/symbols;

Die Semikolons (;) trennen die verschiedenen Pfade. Der erste Pfad ist der Zeitraum (.). WPA ordnet diesen Pfad dem aktuellen Ordner zu, wenn WPA die Ablaufverfolgung lädt. Weitere Informationen dazu, wie WPA relative Pfade verarbeitet, finden Sie im Abschnitt SymCache-Pfad dieses Artikels.

Der zweite Pfad ist folgendes:

 SRV*\Symbols*https://msdl.microsoft.com/download/symbols

Sie müssen auch den NGEN-PB-Pfad festlegen:

set _NT_SYMBOL_PATH=srv*C:\Symbols.NGEN;srv*https://msdl.microsoft.com/download/symbols

Wenn Sie diesen Pfad angeben, lädt WPA Symbole vom öffentlichen Microsoft-Symbolserver herunter und speichert die PDB-Dateien im Ordner \Symbols (dieser Ordner ist relativ zum Windows Performance Toolkit-Installationsordner). Daher platziert WPA den Symbols-Ordner neben dem SymCache-Ordner. Wenn sich der SymCache-Ordner jedoch auf einer Netzwerkfreigabe befindet, erstellt WPA den Symbols-Ordner im Stammverzeichnis des Laufwerks, das den Ordner Programmdateien enthält. Dies ist normalerweise Laufwerk C.

Wenn Sie keine Symbole aus PDB-Dateien suchen und laden möchten, können Sie die Umgebungsvariable _NT_SYMBOL_PATH auf einen lokalen Ordner setzen, der keine Symbole enthält, z. B. einen Zeitraum (.). Lassen Sie die Umgebungsvariable _NT_SYMBOL_PATH nicht leer. Wenn Sie die Umgebungsvariable _NT_SYMBOL_PATH leer lassen, verwendet WPA die Standardeinstellung.

Wenn WPA eine Aufzeichnung öffnet, sucht WPA nach einem Ordner mit demselben Namen wie die Ablaufverfolgung, die die Erweiterung .ngenpdb verwendet. Wenn WPA diesen Ordner findet, fügt WPA den Ordner an das Ende der Umgebungsvariable _NT_SYMBOL_PATH an. Windows Performance Recorder (WPR) erstellt automatisch einen Ordner, der PDB-Dateien für verwalteten Code enthält, den WPR während der Aufzeichnung erfasst hat. Wenn Sie beispielsweise die Aufzeichnung C:\trace.etl in WPA öffnen, sucht WPA nach dem Ordner C:\trace.etl.ngenpdb. Wenn dieser Ordner vorhanden ist, fügt WPA den Ordner der Umgebungsvariable _NT_SYMBOL_PATH hinzu.

WPA-Features

Laden von Symbolen oder Konfigurieren von Symbolpfaden

Verwenden von PDB-Dateien mit der NGEN-Unterstützung von CLR 4.0

Allgemeine Probleme bei der ausführlichen Analyse