it-swarm-es.tech

¿Cómo uso los archivos PDB?

Escuché que usar archivos PDB puede ayudar a diagnosticar dónde ocurrió un bloqueo.
Mi básico comprensión es que le das a Visual Studio el archivo fuente, el archivo pdb y la información de bloqueo (¿del Dr. Watson?)
¿Alguien puede explicar cómo funciona todo/qué implica? (¡Gracias!)

45
hamishmcn

Los archivos PDB se generan cuando construye su proyecto. Contienen información relacionada con los binarios creados que Visual Studio puede interpretar.

Cuando un programa falla y genera un informe de bloqueo, Visual Studio puede tomar ese informe y vincularlo de nuevo al código fuente a través del archivo PDB para la aplicación. ¡Los archivos PDB deben construirse a partir del mismo binario que generó el informe de bloqueo!

Hay algunos problemas que hemos encontrado con el tiempo.

  • La máquina que está depurando el informe de bloqueo debe tener la fuente en la misma ruta que la máquina que creó el binario.
  • Las versiones de lanzamiento a menudo se optimizan en la medida en que no se puede ver el estado de las variables miembro del objeto

Si alguien sabe cómo derrotar al primero, agradecería alguna aportación.

34
roo

Los archivos PDB asignan el MSIL de una Asamblea a las líneas de origen originales. Esto significa que si coloca el PDB que se compiló con el ensamblado en el mismo directorio que el ensamblado, los rastreos de la pila de excepción tendrán los nombres y las líneas de las posiciones en los archivos de origen originales. Sin el archivo PDB, solo verá el nombre de la clase y el método para cada nivel de la traza de la pila.

38
Omer van Kloeten

Debería considerar configurar un servidor de símbolos e indexar los archivos PDB a su sistema de control de código fuente. Recientemente realicé este proceso para nuestro producto y funciona muy bien. No tiene que preocuparse por hacer que los archivos PDB estén disponibles con los binarios, ni por cómo obtener el código fuente apropiado al depurar archivos de volcado.

Libro de John Robbins: http://www.Amazon.com/Debugging-Microsoft-NET-2-0-Applications/dp/0735622027/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1222366012&sr=8-1

Busque aquí un código de muestra para generar minivolcados (que no tiene que estar restringido al análisis posterior al bloqueo; puede generarlos en cualquier punto de su código sin fallar): http: //www.codeproject .com/KB/debug/postmortemdebug_standalone1.aspx

12
lesscode