2010-07-15 2 views
9

Dans VB .NET, je sais que je peux obtenir une trace de pile en examinant la valeur de ex.StackTrace lors de la gestion d'une exception. Comment puis-je obtenir les fonctions sur la pile quand je ne gère pas une exception? Je cherche à implémenter un système de notation de quelque sorte pour enregistrer les étapes que l'utilisateur prend avant un accident pour aider au débogage.Comment obtenir une trace de pile dans .NET en exécution normale?

Répondre

17

Environment.StackTrace vous donne une chaîne, mais pour des informations plus détaillées et des options, utilisez la classe StackTrace.

Pour être plus précis, consultez les options du constructeur:

http://msdn.microsoft.com/en-us/library/system.diagnostics.stacktrace.stacktrace.aspx

Si vous avez besoin de la trace de la pile à partir du cadre de l'appelant (par exemple dans une fonction d'enregistrement: vous n'avez pas voulez tout commencer par MyLogMethod), vous devriez essayer celui-ci, qui prend un paramètre int, le nombre d'images à sauter.

http://msdn.microsoft.com/en-us/library/wybch8k4.aspx

Si vous avez besoin de la trace de la pile sans source d'information (par exemple, si vous ne voulez pas donner des informations sur votre code source), essayez celui-ci:

http://msdn.microsoft.com/en-us/library/6zh7csxz.aspx

Hope that helps!

Questions connexes