2009-03-03 11 views

Respuesta

6

Si lo desea, también puede desactivar la generación del archivo PDB en las opciones de compilación.

-4

No, no tiene que implementar el archivo .pdb.

Para citar MSDN, "Un archivo PDB se crea cuando se compila con/debug (Visual Basic/C#).", Por lo que no debería crear la base de datos de depuración al compilarse para la versión.

0

No, no envía los archivos .pdb. Se generan porque a veces es útil poder depurar una versión de lanzamiento.

36

No, no es necesario que las implemente.

En cuanto a por qué están incluso construidos en versión. Un archivo PDB realmente tiene un par de usos, pero las primarias (al menos para mí) son

  1. Depuración
  2. de perfiles

Ambas tareas se realizan de forma válida en los binarios de liberación que es la razón las versiones de lanzamiento incluyen un PDB. De hecho, al depurar los volcados de Watson, es el 100% del tiempo contra una versión de lanzamiento. Sin lugar a AP que tendría que recurrir a mirar a través de Desensamblaje :(

+0

Ahora tengo curiosidad. ¿Cómo se usan los PDB en el perfil? –

+2

@Dan, Parte de la creación de perfiles es poder asignar lugares al azar en su ensamblaje al código de usuario. De lo contrario, no sabrías qué código se utilizó solo qué ensamblaje. Los PDB son geniales para mapear assembly -> source (esta es una de las razones por las que un depurador los necesita) – JaredPar

+0

OK - Supongo que consideraría esa parte de la depuración. ;-) Pensé que querías algún tipo de análisis de rendimiento del código de lanzamiento. –

2

Nop. No es necesario para distribuirlos. Te ayudará con la depuración (o debería decir que hará posible la depuración para gente sana)

También puede desactivar o ajustar el 'nivel' de símbolos generados en Visual Studio; solo vaya a Propiedades del proyecto/pestaña 'Generar'/'Avanzado' y realice los ajustes en la 'Información de depuración' campo

0

Algunas herramientas como InterceptStudio de AVICode utilizan los archivos pdb para ver el origen de una excepción particular/stack trace/local dentro de la herramienta, en lugar de tener que abrir la fuente y ve a una línea específica.

4

un archivo PDB contiene información sobre los nombres de las funciones. Necesitas que sea capaz de obtener un seguimiento de la pila. También puede contener información sobre el mapeo de las fuentes. En ocasiones, es posible que desee enviar su versión de lanzamiento y aún así tener que analizar un bloqueo que ocurre en el lado del cliente. Para eso, el AP es necesario. El PDB al compilar para su lanzamiento debería, en teoría, tener menos información que cuando se compila para la depuración.

3

Los archivos PDB contienen símbolos de depuración que le permiten depurar su código binario incluso en el modo de lanzamiento. No es necesario (y probablemente no debería implementarlos), ya que podrían usarse para aplicar ingeniería inversa a su aplicación. Sin embargo, consérvelos archivados en algún lugar, ya que son muy útiles cuando quiere depurar un volcado.

0

No es necesario que se ejecuten.

Los archivos pdb se pueden usar para depurar incluso si la compilación está en la configuración de lanzamiento.

9

No tiene que implementar y distribuir los archivos PDB junto con sus binarios.

Sin embargo, le sugiero que los guarde (y eventualmente los indexe) para poder analizar los archivos de volcado que los clientes, el control de calidad y las personas de soporte le envían. De esta forma, podrá tener rastros de pila comprensibles e información de símbolos.

1

Como la mayoría de las personas en este hilo han dicho: no, no tiene que enviar el (los) archivo (s) PDB; pero realmente deberías si alguna vez intentas liberar el código en la naturaleza.

Se trata realmente de poder apoyar su aplicación. Sin el PDB, cuando se bloquea la aplicación, todo el usuario podrá decirle que es la dirección de memoria sin procesar donde se colgó la aplicación; pero con el archivo PDB obtienes un error sobre el que realmente puedes hacer algo.

+1

en realidad, pueden enviarle fácilmente un volcado de memoria (ni siquiera tiene que ser uno completo, cualquier PC con Windows puede generar uno) que al menos le dirá todo el conjunto de llamadas y generalmente el variables pasadas a la llamada a la función más alta –

Cuestiones relacionadas