J'ai entendu dire que l'utilisation des fichiers PDB peut aider à diagnostiquer l'origine d'un crash.
Mon base Si j'ai bien compris, il faut donner à Visual Studio le fichier source, le fichier pdb et les informations sur le crash (du Dr Watson ?).
Quelqu'un peut-il m'expliquer comment tout cela fonctionne / ce que cela implique ? (Merci !)
Réponses
Trop de publicités?Les fichiers PDB font correspondre le MSIL d'un assemblage aux lignes sources originales. Cela signifie que si vous placez la PDB qui a été compilée avec l'assembly dans le même répertoire que l'assembly, vos traces de pile d'exception auront les noms et les lignes des positions dans les fichiers source originaux. Sans le fichier PDB, vous ne verrez que le nom de la classe et de la méthode pour chaque niveau de la trace de pile.
PDB fichiers sont générés lors de la construction de votre projet. Ils contiennent des informations relatives à la construit des binaires Visual Studio peut interpréter.
Lorsqu'un programme se bloque et il génère un rapport de crash, Visual Studio est en mesure de donner à ce rapport et le lien de retour à la source de code via le fichier PDB de l'application. Fichiers PDB doit être construit à partir de la même binaire généré le rapport de crash!
Il y a quelques problèmes que nous avons rencontrés au fil du temps.
- La machine qui est de débogage, le rapport d'accident doit avoir la source sur le même chemin que la machine qui a construit le binaire.
- Les versions Release souvent d'optimiser, dans la mesure où vous ne pouvez pas afficher l'état de l'objet des variables membres
Si quelqu'un sait comment vaincre l'ancien, je vous serais reconnaissant pour une entrée.
Vous devriez regarder dans la configuration d'un serveur de symbole et de l'indexation des fichiers PDB à votre code source du système de contrôle. J'ai récemment passé par ce processus pour notre produit et il fonctionne très bien. Vous n'avez pas à être préoccupés par la prise de fichiers PDB disponible avec les fichiers binaires, ni comment obtenir le code source lors du débogage des fichiers de vidage.
Le livre de John Robbins: http://www.amazon.com/Debugging-Microsoft-NET-2-0-Applications/dp/0735622027/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1222366012&sr=8-1
Voir ici pour un exemple de code pour générer les minidumps (qui n'ont pas à être limité à la post-analyse des incidents -- vous pouvez les générer à tout moment dans votre code sans s'écraser): http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx
En guise d'addition au message de Wayne, je voulais également souligner le billet de blog de John Robbins intitulé PDB Files: Ce que chaque développeur doit savoir . C'est un excellent point de départ sur ce sujet.