Uno de mis compañeros de trabajo envió una compilación de revisión a un cliente y posteriormente eliminó el archivo pdb. La compilación en cuestión se está bloqueando (de forma intermitente) y tenemos un par de volcados. Tenemos todo el código fuente en control de versiones, y podemos compilarlo en un .exe equivalente y obtener símbolos para ese. Sin embargo, esos símbolos no coinciden exactamente con el volcado de emergencia. Parece que varias de las funciones están desactivadas por un desplazamiento constante, pero solo hemos visto un puñado.¿Es posible regenerar símbolos para un exe?
Me encantaría poder hacer lo siguiente (puedo falsificar partes de esto manualmente, pero es una gran cantidad de trabajo): obtener un seguimiento de pila para cada hilo en el volcado y punteros fundidos en el volcado a el tipo apropiado y haga que aparezcan en el depurador de Visual Studio. Estoy usando 2005, si eso importa.
¿Existe alguna herramienta que nos permita recrear un pdb dado el código fuente, todos los archivos .obj y el .exe original? ¿O hay una configuración cuando compilamos/vinculamos para decir "hacer exactamente como este otro exe que acabas de hacer" o algo así?
Actualización rápida, basada en las respuestas hasta ahora: Tengo el archivo exe que le enviamos al cliente, pero no el archivo pdb que le corresponde, si eso ayuda. Preferiría no enviarles una compilación nueva (si es posible), porque lleva aproximadamente una semana de ejecución para obtener los volcados de emergencia, y el cliente ya está en el "¿por qué no está esto ya arreglado?" escenario. (Si enviamos otra compilación, preferiría que sea una que resuelva el problema o que tenga una depuración adicional en el área de interés, no solo el mismo código.) Sé que es posible hacer algo de esto manualmente con un muchas conjeturas; eso es lo que estamos haciendo actualmente. Pero es un dolor, así que espero que haya una forma de automatizarlo.
Vea también http://stackoverflow.com/questions/744870/how-can-you-change-an-age-mismatched-pdb-to-match-properly y http://stackoverflow.com/questions/134866/windbg-dr-watson-minidump-requires-pdb-dll-originalmente-built-for-installed-vers – wimh
Hazle lavar los platos para el próximo mes. Mientras tanto, envíeles otra 'revisión'. –
Los enlaces de Wimmel funcionaron para mí. Esa es una gran herramienta. Si haces una respuesta a tu comentario, lo aceptaré. – Michael