2009-09-19 7 views
0

Si j'ai une application qui dépend d'un .dll qui contient mes classes de base. J'ai remarqué lors du débogage de l'application principale et il marche dans le fichier .dll, le débogueur passe à travers (à ma demande) des lignes vides !? Pourquoi est-ce? Parfois, lorsque je débogue une application asp.net et obtiens un ysod, je ne reçois pas le nom du fichier avec le numéro de bogue ou de ligne, mais j'obtiens les versions ASP.NET/.NET Framework. Pourquoi est-ce?Débogage des questions

BTW, j'ai fait un thread précédent sur un ysod, mais après la dernière ligne s'exécute dans l'étape (je mets un point d'arrêt sur), le YSOD arrive - donc je ne trouve pas la ligne en passant. C'est/était parce que le code défectueux était dans une référence de projet.

Merci

Répondre

4

Il y a une bonne chance que la version de la DLL que vous faites référence est synchronisé avec le code source. Est-ce que cela se produit lorsque la DLL fait partie de votre solution et que vous la référencez avec une référence de projet?

+0

qui ne causeront pas le débogueur pour obtenir les mauvaises lignes. Les lignes de code correspondant à l'assembly compilé sont dans le fichier de débogage, pas la DLL elle-même. – David

+0

Ou si je me trompe, s'il vous plaît expliquez-moi. – David

+0

Je l'ai eu à l'occasion. Lorsque j'ai des points d'arrêt qui sautent une ligne (dans un espace vide, par exemple), c'est la première indication que j'ai oublié de mettre à jour la DLL que je référence pour correspondre au code source que je visualise. –

2

En ce qui concerne le passage à travers les lignes vides, il semble que le fichier de symboles de débogage (* .pdb) pour la DLL n'est pas mis à jour.

Cela pourrait également causer le deuxième symptôme que vous mentionnez également.

Edition - a ajouté

S'il vous plaît consulter cet article pour le raisonnement derrière ma réponse:

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspx

+0

J'ai un gros projet que j'ai ajouté mon propre script de suppression au processus de construction juste pour garder le * .pdb à jour. – NitroxDM

+0

J'ai lu ça il y a quelques semaines. Bon lien cependant. Voir ma modification. – dotnetdev