Frage

ich durch die docs lesen und dazu verwendet, die jedoch aus irgendeinem Grunde skizzierten Befehle, die ich scheint nicht alle Symbole zu bekommen, nur eine Reihe von „Unbekannten“ in der Funktion Spalte der Übersichtstabelle für alles außer dem obersten Satz der App ich war zu debuggen versuchen .... ich habe die enviromental Variable auf den Microsoft-Server und die direcories der pDB die für die App containg. Ich habe auch sicher, dass das „Load Symbol“ Element auszuwählen, bevor die Übersichtstabelle der Erziehung.

Arcording zum Eintrag Ich lese es soll einige Zeit für die Tabl nehmen anzuzeigen, während es die Symbole lädt, für mich jedoch der Tisch fast augenblicklich angezeigt und nur die obersten Artikel in sprite.exe-> sprite.exe had Funktionsnamen waren die othe Reihen für die Funktion entweder leer oder „unbekannt“

Im mit Vista SP1.

Dies ist die Batch-Datei, die ich verwenden. Habe ich irgendetwas tun, dass die sybols geladen?

verhindern
REM start profiler
xperf -on PROC_THREAD+LOADER+INTERRUPT+DPC+PROFILE^
 -stackwalk profile -minbuffers 16 -maxbuffers 1024 -flushtimer 0^
 -f tmp.etl
REM run the app we want to profile
sprite.exe
REM stop
xperf -d profile.etl
REM set symbol path
set _NT_SYMBOL_PATH = ^
 C:\Projects\C++\fl lib\bin;^ REM dlls
 C:\Projects\C++\fl lib\samples\bin;^ REM main exe
 SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
REM display profile
xperf profile.etl
War es hilfreich?

Lösung

Welche Version von dbghelp.dll nutzt es? Ich habe Mühe, PDB Symbole hat die Arbeit mit kernrate und anderen Dienstprogramme, wenn die Version von dbghelp.dll verwenden, die in %SystemRoot%\system32 installiert ist.

Sie müssen möglicherweise dbghelp.dll und symsrv.dll aus einer aktuellen Version von Debugtools für Windows in ein Verzeichnis kopieren, wo Xperf es finden können.

Außerdem müssen Sie den Raum vor dem ‚=‘ entfernen, sonst sind definieren Sie die „_NT_SYMBOL_PATH“ Variable (einschließlich des nachgestellten Leerzeichen im Namen).

Einschließlich Kommentare am Ende einer Zeile geht nicht entweder zu arbeiten. Ein Zeilenfortsetzungszeichen wie ‚^‘ muss typischerweise das letzte Zeichen in der Zeile sein. Als ich diese Aussage lief (auf XP), landete ich mit „_NT_SYMBOL_PATH“ gleich „C:\Projects\C++\fl lib\bin; REM dlls“ und einem Fehler über die nächste Zeile nach oben.

Andere Tipps

Versuchen Sie, die

TRACE_FORMAT_SEARCH_PATH

Umgebungsvariable. Wenn das nicht funktioniert, können Sie manuell die TMF-Dateien von Ihrem PDBs mit TracePdb.exe (oder zumindest verwenden, um einen gleichmäßigen Bahn anstelle eines SYM * path) entpacken. Dies ist bei weitem das nervigste Teil mit ETL Spuren / Xperf

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top