Visual Studio 2008 no carga símbolos al depurar un .DMP

Estoy tratando de depurar una aplicación C # desde un archivo .DMP y tengo el ejecutable, las DLL y las PDB en una carpeta llamada "MyFolder". Configuré el directorio que contiene el código fuente en C: \ MyFolder \ pero cuando intento depurarlo, me dice que:

"No se cargan símbolos para ningún marco de pila de llamadas. No se puede mostrar el código fuente".

Cuando abro la información de carga de símbolos, indica que no se pudieron encontrar los siguientes PDB:

C: \ Windows \ System32 \ kernel32.pdb: no se puede encontrar o abrir el archivo PDB.
C: \ MyFolder \ kernel32.pdb: no se puede encontrar o abrir el archivo PDB.
C: \ MyFolder \ symbols \ dll \ kernel32.pdb: no se puede encontrar o abrir el archivo PDB.
C: \ MyFolder \ dll \ kernel32.pdb: no se puede encontrar o abrir el archivo PDB.
C: \ MyFolder \ kernel32.pdb: no se puede encontrar o abrir el archivo PDB.
C: \ Windows \ symbols \ dll \ kernel32.pdb: no se puede encontrar o abrir el archivo PDB.
C: \ Windows \ dll \ kernel32.pdb: no se puede encontrar o abrir el archivo PDB.
C: \ Windows \ kernel32.pdb: no se puede encontrar o abrir el archivo PDB.

Mis PDB están en la carpeta correcta y están marcadas con la misma fecha y hora exactamente. ¿Alguien sabe lo que está pasando aquí? ¿Cuál es la forma correcta de cargar los símbolos?

¿Cómo verifico que los símbolos de mi aplicación estén realmente cargados (para eliminarlos como problema)? Revisé los módulos y parece que todos los archivos DLL y el ejecutable de mi proyecto no pueden cargar los símbolos, específicamente el estado del símbolo es "No hay símbolos nativos en el archivo de símbolos" ... cuando hago clic derecho en el elemento y selecciono "Cargar símbolos desde -> Ruta de símbolo" y selecciono PDB C: \ MyFolder \ MyApplication.pdb y luego me dice que "El archivo de símbolo para MyApplication.pdb no coincide con el módulo".

preguntado el 16 de mayo de 11 a las 20:05

2 Respuestas

Parece que el archivo de volcado es un minivolcado de código nativo, no un minivolcado de código administrado, ya que los símbolos de todas esas DLL generalmente no son críticos para la depuración administrada a menos que depure una aplicación de modo mixto, depure en llamadas Win32 o depure a través de límites gestionados / no gestionados.

Depende de cómo se haya creado el minivolcado. Si estaba en una máquina diferente en un sistema operativo o paquete de servicio diferente, entonces es posible que necesite configurar la ruta del símbolo para obtener los PDB exactos de las DLL del sistema de la otra máquina, no los conjuntos y símbolos de su aplicación. Su experiencia de depuración administrada mejorará si estos símbolos no administrados son correctos. Para complicar aún más las cosas, tiene "micro-versiones" de .NET e imágenes nativas con las que lidiar para que los seguimientos de la pila funcionen.

contestado el 17 de mayo de 11 a las 00:05

El software se cargó en un Windows Server 64 R2008 de 2 bits, copié la carpeta directamente desde el servidor (que incluye los PDB) y lo estoy depurando en una máquina con Windows 64 de 7 bits. El PDB se generó a partir del administrador de tareas (TM), entonces, ¿el TM crea solo minivolcados de código nativo? Es una aplicación C #, por lo que todo debería ser código administrado ... ¿hay alguna manera de obtener y depurar el minivolcado de código administrado? - Kiril

@Link: Su minivolcado puede estar bien, configuremos sus símbolos. Para la depuración no administrada, necesita PDB 2008 y, por lo tanto, necesita un servidor de símbolos como se describe aquí: msdn.microsoft.com/en-us/library/b8ttk8zy(v=VS.90).aspx - Rick Sladkey

¡Le daré una oportunidad! ¡Gracias Rick! - Kiril

Debe asegurarse de que:

  • Los ejecutables / DLL y PDB son de la misma compilación. PDB utiliza internamente GUID para determinar si los EXE / DLL asociados son correctos. De lo contrario, no cargará los símbolos. No es VS per se, sino de DbgHelp.DLL.
  • Asegúrese de tener un conjunto de archivos fuente absolutamente correcto. Incluso si la opción "El archivo de origen debe coincidir" es desarmado en las opciones de depuración de VS, a VS no le importa al cargar archivos .DMP; no cargará los símbolos si los archivos de origen no coinciden.

Respondido el 21 de junio de 11 a las 20:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.