2011-12-21 15 views
5

Tengo una herramienta mixta C#/C++ administrada/no administrada C++ construida con Visual Studio 2010. El código en realidad se extiende a través de un .exe (lo llamaré mybinary.exe) y un .dll (mylib.dll).¿Cómo puedo hacer que Very Sleepy Profiler reconozca nombres de funciones en C++ binary?

Establecí las configuraciones de compilación en el proyecto para el archivo dll y el archivo exe para generar archivos PDB en compilaciones de versiones. Me he asegurado de que los archivos PDB estén ambos en el mismo directorio en el que están el exe y el pdb. Pero todavía no veo los nombres de las funciones cuando depuro este programa; Solo veo direcciones. He aquí un extracto relevante de lo que me pasa en la barra de estado poco en la parte inferior cuando selecciono el programa en la primera pantalla de mucho sueño:

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 

lo que parece que hay un problema a juego mylib.pdb a MYLIB. dll, por alguna razón no estoy claro, pero me daré cuenta de que no obtengo las direcciones adecuadas para las funciones que son de mybinary.exe tampoco. Tengo una computadora nueva con instalaciones recientes, por lo que este no es un problema de "alguna biblioteca está desactualizada".

¡Muy apreciado si alguien puede ayudar con esto!

EDITAR: En realidad, esto no es específico del código optimizado. Otros profilers tuvieron algunos problemas con C++ optimizado, por lo que cambié a Very Sleepy, pero en las pruebas ahora me doy cuenta de que con Very Sleepy no consigo obtener nombres de funciones incluso cuando compilo en modo de depuración.

Respuesta

0

Asegúrese de lo siguiente:

  1. Ha establecido la ruta de búsqueda de símbolos (herramientas-> opciones) a su ruta local
  2. iniciar la aplicación en primer lugar, a continuación, iniciar el sueño y el perfil
  3. parada de perfiles antes de que la aplicación finalice
Cuestiones relacionadas