Existe-t-il un moyen d'afficher les lignes dans la trace de pile pour l'assembly .NET build / déployé en mode Release?
METTRE À JOUR:
Mon application est divisée en trois projets de bibliothèque de classes et un projet de "site Web" ASP.NET. L'erreur que j'essaie de localiser se trouve dans l'un des trois projets de bibliothèque de classe. J'ai déployé uniquement le fichier pdb pour le projet de bibliothèque de classes qui génère l'erreur "Référence d'objet non définie sur une instance d'un objet".
Les numéros de ligne n'apparaissent toujours pas dans la trace de pile. Dois-je déployer les fichiers pdb pour tous les projets pour obtenir les numéros de ligne dans la trace de pile?
Solution de travail
Le déploiement du fichier pdb pour chaque application a résolu le problème du numéro de ligne.
la source
Dans VS2012, vous devez également décocher "Exclure les symboles de débogage générés" dans la section Package / Publish Web des propriétés.
la source
Ma solution
Copiez le fichier pdb dans le même dossier que le fichier exécutable.
maintenant, je peux afficher le numéro de ligne lors de l'exécution du fichier exe.
c'est la raison
http://msdn.microsoft.com/en-us/library/ee416588%28v=vs.85%29.aspx
la source
J'ai rencontré des problèmes dans le passé où je ressens le besoin de déployer des fichiers PDB avec une version de version afin de détecter une erreur. La raison en est, comme vous l'avez dit, que l'exception s'est produite dans une méthode qui était très large et je ne pouvais pas déterminer avec précision où cela se produisait.
Cela peut indiquer que la méthode doit être refactorisée en méthodes plus petites et plus granulaires. Pas de réponse unique, mais cette approche m'a bien servi à court terme (j'ai souvent trouvé le bogue lors du refactoring) et à long terme.
Juste une pensée.
la source
Incluez des symboles de débogage avec votre package de construction / déploiement.
la source
Dans VS 2008 Express, je l'ai trouvé sous Propriétés du projet -> Compiler -> Options de compilation avancées.
la source
Cela fonctionne à chaque fois. Il vous suffit de sous-transmettre le message de trace de la pile. Vraiment facile! En outre, dans vb.net, vous devez faire le "Afficher tous les fichiers" et inclure le pdb.
Version C #:
la source