Domanda

Ho letto attraverso la documentazione e usato i comandi descritti però, per qualche motivo io non sembra di avere tutti i simboli, solo una serie di "incognite" nella colonna funzione della tabella di riepilogo per tutto tranne il più in alto serie di app stavo cercando di eseguire il debug .... ho impostato la variabile ambientale al server Microsoft e le direcories containg il PPB del per l'applicazione. Ho anche fatto in modo di selezionare la voce "Load simboli" prima di portare la tabella di riepilogo.

Arcording alle informazioni che stavo leggendo che dovrebbe richiedere un certo tempo per il tabl per visualizzare mentre carica i simboli, ma per me la tabella visualizzata quasi istantaneamente e solo i primi maggior parte degli elementi in sprite.exe-> sprite.exe had nomi delle funzioni, le righe othe per la funzione erano o vuoto o "sconosciuto"

Im usando Vista SP1.

Questo è il file batch che ho usato. Ho fatto tutto ciò che impedirebbe le sybols corso di caricamento?

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
È stato utile?

Soluzione

Quale versione di dbghelp.dll sta usando? Ho avuto problemi a trovare simboli PDB che lavorano con kernrate e altre utilità quando si utilizza la versione di dbghelp.dll che viene installato in %SystemRoot%\system32.

Potrebbe essere necessario copiare e dbghelp.dll symsrv.dll da una versione recente di strumenti di debug per Windows in una directory dove XPerf possa trovarlo.

Inoltre, è necessario rimuovere lo spazio prima del '=', altrimenti si sta definendo la variabile "_NT_SYMBOL_PATH" (compreso lo spazio finale nel nome).

Compreso commenti alla fine di una linea non è andare a lavorare sia. Un carattere di continuazione come '^' tipicamente deve essere l'ultimo carattere sulla linea. Quando ho fatto funzionare questa affermazione (su XP), ho finito con "_NT_SYMBOL_PATH" uguale a "C:\Projects\C++\fl lib\bin; REM dlls" e un errore sulla riga successiva.

Altri suggerimenti

Provare a impostare la

TRACE_FORMAT_SEARCH_PATH

variabile di ambiente. Se questo non dovesse funzionare, potrebbe essere necessario estrarre manualmente i file da TMF tuoi PDBs utilizzando TracePdb.exe (o almeno utilizzare un percorso regolare invece di un MGS * percorso). Questo è di gran lunga la parte più fastidiosa di utilizzare le tracce di ETL / XPerf

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top