如何在正常执行中获取.NET中的堆栈跟踪?

时间:2010-07-15 19:58:19

标签: .net vb.net logging stack-trace

在VB .NET中,我知道通过在处理异常时查看ex.StackTrace的值,我可以获得堆栈跟踪。当我不处理异常时,如何在堆栈上获取函数?我希望实现某种日志系统来记录用户在崩溃之前采取的步骤,以协助调试。

3 个答案:

答案 0 :(得分:19)

Environment.StackTrace为您提供了一个字符串,但是有关更详细的信息和选项,请使用StackTrace类。

更具体地说,请查看构造函数选项:

  

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

如果您需要从调用者的帧开始的堆栈跟踪(例如,在日志记录功能中:您不希望所有内容都以MyLogMethod开头),您应该尝试使用{{1}参数,要跳过的帧数。

  

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

如果您需要没有源信息的堆栈跟踪(例如,如果您不想泄露有关源代码的信息),请尝试以下方法:

  

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

希望有所帮助!

答案 1 :(得分:7)

答案 2 :(得分:7)

System.Environment.StackTrace