2011-12-21 8 views
5

Possiedo uno strumento misto C#/gestito C++/non gestito C++ creato con Visual Studio 2010. Il codice è in realtà distribuito su un file .exe (lo chiamerò mybinary.exe) e un .dll (mylib.dll).Come posso ottenere Profiler molto assonnato per riconoscere i nomi delle funzioni in binario C++?

Ho impostato le impostazioni di generazione sul progetto per la DLL e l'exe per generare file PDB nelle versioni di rilascio. Mi sono assicurato che i file PDB si trovino entrambi nella stessa directory in cui si trovano exe e pdb. Ma non riesco ancora a vedere i nomi delle funzioni quando eseguo il debug di questo programma; Vedo solo indirizzi. Ecco il relativo estratto di quello che ottengo nella barra poco di stato in basso quando si seleziona il programma nella prima schermata di molto assonnato:

DBGHELP: mybinary.vshost - public symbols 
     C:\Users\(me)\AppData\Local\sleepy\vshost32-clr2.pdb\(long hex string)\vshost32-clr2.pdb 
... 
DBGHELP: No debug info for C:\myproj\mylib.dll. Searching for dbg file 
DBGHELP: C:\myproj\mylib.dbg - file not found 
DBGHELP: C:\myproj\dll\mylib.dbg - path not found 
DBGHELP: C:\myproj\symbols\dll\mylib.dbg - path not found 
SYMSRV: C:\Users\peastlund\AppData\Local\sleepy\mylib.dbg\4EF1F48B13c000\mylib.dbg not found 
DBGHELP: C:\myproj\mylib.dbg - file not found 
DBGHELP: C:\myproj\dll\mylib.dbg - path not found 
DBGHELP: C:\myproj\symbols\dll\mylib.dbg - path not found 
DBGHELP: C:\myproj\mylib.dbg - file not found 
DBGHELP: C:\myproj\mylib.dll missing debug info. Searching for pdb anyway 
DBGHELP: mylib - public symbols 
     C:\myproj\mylib.pdb - unmatched 
... 
DBGHELP: MOD: mybinary.vshost 
... 
DBGHELP: mybinary - private symbols & lines 
     C:\myproj\mybinary.pdb 

in modo che appaia come se ci fosse un problema di corrispondenza mylib.pdb a MyLib. dll, per qualche motivo non sono chiaro su, ma noterò che non ottengo gli indirizzi corretti per le funzioni che sono da mybinary.exe. Ho un nuovo computer con tutte le installazioni recenti, quindi questo non è un problema di "alcune librerie è obsoleto".

Molto apprezzato se qualcuno può aiutare con questo!

MODIFICA: in realtà non si tratta di un codice ottimizzato. Altri profiler hanno avuto problemi con C++ ottimizzato, motivo per cui sono passato a Very Sleepy, ma in fase di test mi rendo conto ora che con Very Sleepy non riesco a ottenere nomi di funzioni anche quando compilo in modalità debug.

risposta

0

garantire quanto segue:

  1. Hai impostare il percorso di ricerca simboli (strumenti-> opzioni) in un percorso locale
  2. avviare l'applicazione, quindi avviare il sonno e profilo
  3. arresto profilazione prima che l'applicazione termini
Problemi correlati