2011-12-08 19 views
8

Tengo la DLL y tengo las fuentes exactas utilizadas para crear la DLL. Quiero que nuestro servidor de símbolos local funcione cuando obtenemos un archivo de volcado de los clientes. (La actualización de la DLL en el sitio del cliente no se puede realizar antes del próximo parche/versión de nuestro producto)¿Es posible (re) crear un archivo PDB después de realizar una DLL?

+0

¿Intentaste volver a compilar este archivo dll? – rekire

+0

El depurador no coincide con el nuevo PDB con el archivo DLL anterior – Arve

Respuesta

6

Parece que no es posible. Echar un vistazo a esto aquí: Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with?

O este artículo: PDB Files: What Every Developer Must Know

Cita de "archivos PDB: Lo que todo ...":

La parte muy importante es cómo sabe el depurador este es el archivo PDB de coincidencia exacta para este binario. Eso se hace a través de un GUID que está integrado tanto en el archivo PDB como en el binario. Si el GUID no coincide con el GUID , ciertamente no depurará el módulo en el nivel de código fuente .
El compilador .NET, y para el vinculador nativo, coloca este GUID en el binario y PDB. Como el acto de compilar crea este GUID, detente y piénsalo por un momento. Si tiene la compilación de ayer y no guardó el archivo PDB , ¿podrá alguna vez volver a depurar el binario? ¡No! Es por eso que es tan importante guardar sus archivos PDB para cada compilación . Porque sé que lo estás pensando, seguiré adelante y responderé a la pregunta que ya se está formando en tu mente: no, no hay forma de cambiar el GUID.

+2

Parece que tiene razón. Pero parece que se puede usar chkmatch en algunos casos: http://www.debuginfo.com/tools/chkmatch.html – Arve

+0

¡Guau, enlace interesante! Ok, * por lo general * no es posible. Espero que chkmatch pueda ayudarte. – Markus

Cuestiones relacionadas