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

dav*_*gan 10 .net vb.net logging stack-trace

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

Kie*_*one 19

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

希望有所帮助!