【问题标题】:How to get a stack trace in .NET in normal execution?如何在正常执行中在 .NET 中获取堆栈跟踪?
【发布时间】:2011-03-16 15:02:46
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

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

    希望有帮助!

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:
        System.Environment.StackTrace
        

        【讨论】:

          猜你喜欢
          • 2011-06-01
          • 1970-01-01
          • 2010-09-11
          • 2010-12-06
          • 1970-01-01
          • 2010-09-14
          • 2012-12-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多