2010-01-19 6 views
1

J'ai un ancien fichier DLL qui a été construit avec VC++ 6. Maintenant, j'ai besoin d'enquêter sur le fichier de vidage, mais je n'ai pas sa PDB disponible. La pile de données rapportée par WinDbg est également inexacte.Fichier PDB de différentes versions de Visual Studio

Est-il possible de reconstruire le projet avec des versions ultérieures de Visual Studio, c'est-à-dire 2003, 2005, 2008, de générer la PDB et de l'utiliser pour mapper des adresses aux symboles de l'ancienne DLL? Y at-il quelque chose comme VC 6.0 mode compatible pour le projet de construction?

Obtenir VC++ 6 est une option, mais il semble que a déjà disparu VS6.0 débouche de la page de téléchargement d'abonné MSDN :(

Merci

+0

Je ne suis même pas sûr que deux compilations avec le même compilateur génèrent des PDB identiques. – MSalters

+0

@MSalters: ils ne le font pas. Mais l'IDE peut lire n'importe quel PDB. –

+0

Vous ne savez pas si ces PDB du même compilateur diffèrent uniquement par les horodatages? puisque mon collègue a pu obtenir la trace de pile correcte avec le fichier PDB nouvellement créé à partir du même compilateur. Merci pour tout de même:} – Gant

Répondre

1

Je crains que je pense que la réponse est non: vous Vous devez essayer de le reconstruire avec la même chaîne d'outils que le binaire qui a généré le fichier de vidage que vous avez:

VS est vraiment pointilleux sur la façon dont il correspond aux fichiers de vidage vers les fichiers pdb dans mon expérience: la seule chance J'ai déjà eu dans ces situations avec WinDbg (mais vous avez essayé)/

+0

Merci! J'ai également essayé de reconstruire mon projet avec VS2003 aujourd'hui et ai trouvé d'autres problèmes de compatibilité (en-têtes obsolètes.) On dirait que je dois utiliser obtenir VS6.0 en quelque sorte de toute façon: '( – Gant

Questions connexes