Un de mes collègues a expédié un correctif à un client, et a ensuite supprimé le fichier pdb. Le build en question se bloque (par intermittence) et nous avons quelques dumps de crash. Nous avons tout le code source dans le contrôle de version, et nous pouvons le compiler en un .exe équivalent et obtenir des symboles pour celui-ci. Cependant, ces symboles ne correspondent pas exactement à ceux du crash dump. Il semble que plusieurs des fonctions soient décalées d'un décalage constant, mais nous n'en avons examiné qu'une poignée.
J'aimerais pouvoir faire ce qui suit (je peux simuler certaines parties manuellement, mais c'est une énorme quantité de travail) : obtenir une trace de la pile pour chaque thread dans la décharge et caster les pointeurs dans la décharge au type approprié et les faire apparaître dans le débogueur de Visual Studio. J'utilise 2005, si cela a de l'importance.
Existe-t-il un outil qui nous permette de recréer un pdb à partir du code source, de tous les fichiers .obj et du .exe original ? Ou bien existe-t-il un paramètre lorsque nous compilons/lien pour dire "faire exactement comme cet autre exe que vous venez de faire" ou quelque chose comme ça ?
Mise à jour rapide, basée sur les réponses obtenues jusqu'à présent : J'ai le fichier exe que nous avons envoyé au client, mais pas le pdb qui lui correspond, si cela peut aider. Je préférerais ne pas leur envoyer une nouvelle version (si possible), parce qu'il faut environ une semaine d'exécution pour obtenir les dumps de crash, et le client est déjà à l'étape "pourquoi n'est-ce pas déjà corrigé ? (Si nous envoyons une nouvelle version, je préférerais que ce soit une version qui corrige le problème ou qui comporte un débogage supplémentaire dans la zone concernée, et pas seulement le même code). Je sais qu'il est possible de faire une partie de cela manuellement avec beaucoup d'approximation ; c'est ce que nous faisons actuellement. Mais c'est pénible et j'espère qu'il existe un moyen de l'automatiser.