2011-07-23 4 views
1

J'essaie de lire l'en-tête d'un fichier PDB afin de savoir s'il correspond à mon fichier EXE.
Existe-t-il un moyen agréable de lire la signature du fichier PDB (peut-être en utilisant dbgHelp)?
J'ai besoin d'obtenir les champs de l'en-tête dans le fichier PDB qui indiquent dans quelle construction le PDB a été créé. merci :)Lecture de l'en-tête PDB en C++

+0

Oui, ce que je veux dire. et j'essaie d'écrire mon propre petit débogueur. – Idov

+0

s'il a été créé pour un BUILD spécifique pour être exact. – Idov

+0

Chaque fichier pdb généré pour un binaire a guid incorporé dans le fichier binaire ainsi que dans le fichier pdb. S'il vous plaît jeter un oeil à la fonction get_guid de DIA sdk. –

Répondre

1

Je ne crois pas que le Debug Help API ni le Debug Interface Access SDK donnent accès à des informations qui pourraient résoudre votre problème. À propos de la seule façon de détecter les informations de génération à l'aide de l'un de ces serait de vérifier le chemin d'accès aux fichiers objet inclus pendant l'heure de liaison.

Le fichier PDB contient des informations sur les options transmises sur la ligne de commande pour la compilation de fichiers objets et de liens (libs, dll's, exe), probablement ce que vous recherchez. Malheureusement, je ne connais pas documenté façon d'y accéder. Il peut être enterré profondément dans l'une des tables disponibles dans le fichier PDB mais je n'ai pas pu trouver de références pour y accéder. Cela dit, si avoir l'information que vous avez demandé est une nécessité absolue et que vous êtes prêt à faire face à une certaine frustration, jetez un oeil à la PDB Parser by Sven Boris Schreiber. Il contient beaucoup d'informations utiles, bien qu'il ne supporte pas les nouvelles versions PDB

+0

Cette entrée de blog par John Robbins pourrait également avoir des informations d'intérêt: http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must- savoir.aspx –