301 votes

Communiqué de génération de fichiers .pdb, pourquoi ?

Pourquoi diable Visual Studio 2005 génère le `` lors de la compilation en sortie des fichiers ? Je n’être déboguer une version Release, alors pourquoi sont ils produits ?

459voto

Cody Gray Points 102261

Parce que sans les fichiers PDB, il serait impossible pour déboguer une version validée par rien d'autre que de l'adresse au niveau de débogage. Optimisations vraiment faire un certain nombre sur votre code, il est très difficile de trouver le coupable si quelque chose va mal (disons, une exception est levée). Fichiers PDB vous aider avec ça.

Vous faites le point si votre logiciel est prêt pour la diffusion, vous devriez avoir fait tous vos débogage. Alors que c'est certainement vrai, il y a quelques points importants à garder à l'esprit:

  1. Vous devez également tester et déboguer votre application (avant la libération) à l'aide de la "Libération" de construire. C'est parce qu'en tournant optimisations (ils sont désactivés par défaut dans le "Debug" configuration) peut parfois causer des bogues subtils, à croire que vous n'auriez pas autrement attraper. Quand vous faites cela de débogage, vous aurez envie de l'APB symboles.

  2. Les clients rapportent souvent des cas limites et des bugs que seuls les cultures sous "idéal". Ce sont des choses qui sont presque impossibles à reproduire en laboratoire, car ils reposent sur des déjanté de configuration de l'ordinateur de l'utilisateur. Si elles sont particulièrement utiles clients, ils vont le rapport de l'exception qui a été levée et de vous fournir une trace de la pile. Ou ils vont même vous permettre d'emprunter de leur machine pour le débogage de votre logiciel. Dans chacun de ces cas, vous voudrez les fichiers PDB pour vous aider.

  3. Le profilage doit toujours être faite sur la "Libération" construit avec les optimisations activées. Et une fois de plus, les fichiers PDB venir dans maniable, car ils vous permettent de mapper les instructions de montage, le fait d'être présentés à la source de code que vous avez écrit.

Vous ne pouvez pas générer les fichiers PDB après la compilation. Si vous ne créez pas d'eux lors de la compilation de l'application, vous avez perdu votre chance. Il ne fait pas de mal rien de les créer. Si vous ne voulez pas distribuer, il vous suffit de les omettre de votre binaires. Mais si vous décidez plus tard que vous le voulez, vous êtes hors de la chance. Préférable de générer et d'en conserver une copie sur votre machine, juste au cas où.

Si vous voulez vraiment mettre hors tension, c'est toujours une option. Vérifiez dans les Propriétés de votre projet de fenêtre. Définir le "Debug Info" à "none" pour toute configuration que vous souhaitez modifier.

Notez, cependant, que le "Debug" et "Release" configurations de le faire par défaut utiliser des paramètres différents pour émettre des informations de débogage. Le "Debug Info" est réglé sur "full" pour une version Debug, ce qui signifie qu'en plus d'un fichier PDB, symboles de débogage de l'information est intégrée à l'assemblée. En mode Release, le "apb" option est sélectionnée, qui, comme son nom l'indique, comprend uniquement le fichier PDB, sans affecter le contenu de l'assemblée. Ce n'est pas tout à fait aussi simple que la simple présence ou de l'absence de fichiers PDB dans votre /bin répertoire. Y compris le fichier PDB n'aura aucune incidence sur les performances d'exécution de votre code, en supposant que vous avez compilé à l'aide de la "apb" option.

102voto

Aliostad Points 47792

PDB peut être généré pour diffusion immédiate ainsi que de débogage. Ce est fixé à (en VS 2010 mais 2005 doit être similaire) :

-> Propriétés-> Build-> Advanced-> les informations de débogage du projet

Il suffit de le changer voix contre zéro.

7voto

jdehaan Points 14019

Pourquoi êtes-vous si sûr que vous déboguerez pas communiqué construit ? Parfois (j’espère que rarement, mais arrive) vous pouvez obtenir un rapport de défaut d’un client qui n’est pas reproductible dans la version debug pour une raison quelconque (horaires différents, petites différences de comportement ou autre). Si cette question semble être reproductibles dans la version Release, vous serez heureux d’avoir l’APB correspondant.

7voto

user1714880 Points 61

Sans la .fichiers pdb, il est pratiquement impossible de l'étape à travers le code de production; vous devez compter sur d'autres outils qui peuvent être coûteux et prend du temps. Je comprends que vous pouvez utiliser de traçage ou de windbg par exemple, mais cela dépend vraiment de ce que vous voulez atteindre. Dans certains scénarios, vous voulez juste pour passer le code à distance (pas d'erreurs ou d'exceptions) à l'aide de la production de données pour observer le comportement particulier, et c'est là .fichiers pdb viennent à portée de main. Sans exécuter le débogueur sur que le code est impossible.

2voto

Ajay2707 Points 779

.Fichier PDB est le nom court de la "Base de données du Programme". Il contient les informations sur le point de débogage pour le débogueur et les ressources qui sont utilisées ou de référence. Ses générés lorsque nous construire tant que le mode de débogage. Ses permettre à l'application de débogage lors de l'exécution.

La taille est l'augmentation de la .Fichier PDB en mode de débogage. Il est utilisé lorsque nous faisons l'essai de notre application.

Pas besoin de ce fichier lors de la libération ou de la déployer. Bon article de fichier pdb.

http://www.codeproject.com/Articles/37456/How-To-Inspect-the-Content-of-a-Program-Database-P

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X