Comment puis-je inclure des numéros de ligne dans une trace de la pile sans apb?
Nous sommes actuellement à la distribution d'une application WinForms sans .pdb fichiers pour économiser de l'espace sur les machines client et de bande passante de téléchargement. Lorsque nous recevons les traces de pile, nous obtenons une méthode de noms, mais pas les numéros de ligne. Est-il possible d'obtenir les numéros de ligne sans avoir recours à la distribution de l' .fichiers pdb?
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas obtenir une trace de la pile avec les numéros de ligne directement à partir de votre application, sauf si vous le bundle de l'APB. Cependant, si vous avez les fichiers PDB pour la même version de l'application que vous livrez à vos clients, et vous n'avez pas l'esprit un peu de lumière de script, puis vous peut tourner la .NET trace de la pile et IL décalages de retour dans les numéros de ligne.
Au cours de votre processus de création, l'utilisation Mike Décrochage du pdb2xml convertisseur, distribué dans le cadre de son excellent MDbg géré débogueur de code, et de les stocker en un endroit sécuritaire (p. ex., contrôle de code source). Lorsque vous obtenez une trace de la pile de retour de la part du client, vous pouvez interroger le IL offset à partir de données XML pour déterminer la ligne de nombre. Si votre pile traces sont soumis à un site web, vous pouvez même automatiser la conversion, afin que les développeurs reçoivent détaillée des traces de pile au moment où le cas de frapper leur boîte de réception.
Pas. Les numéros de ligne sont une partie des informations de débogage, ce qui n'est stocké dans le fichier PDB. C'est la raison pour fichiers PDB exister en premier lieu.
Pas la réponse appropriée à votre question, mais j'ai une suggestion. Vous pouvez incorporer un mécanisme de journalisation et d'obtenir ces fichiers journaux à côté des traces de la pile. Si vous d'inclure des numéros de ligne dans votre journal des messages, vous pouvez combiner les informations de journalisation avec votre trace de la pile manuellement.
Si vous ne voulez pas prendre beaucoup de place, vous pouvez utiliser limitation de la taille des fichiers journaux, de cette façon, seulement les plus récents messages du journal seront conservés.
Nous utilisons log4net bibliothèque pour notre enregistrement, je vous recommande de prendre un coup d'oeil.
Non, il n'est pas. Toutes les informations nécessaires à la carte des lignes de " IL à la source d'origine du fichier et le numéro de ligne sont stockées au sein de l'APB. Il n'est pas possible d'obtenir cette information dans la trace de la pile sans la PDB.