以编程方式获取C#Stack Trace

Arm*_*yan 38 .net c# stack-trace

可能重复:
如何在.NET中打印当前的堆栈跟踪,没有任何异常?

抛出异常时,其文本包含堆栈跟踪.我可以以某种方式获得堆栈跟踪文本(包括文件和行)没有例外吗?

public void f()
{
   //blah
   string stacktrace = ???;
   //blah
}
Run Code Online (Sandbox Code Playgroud)

lar*_*moa 73

Environment.StackTraceSystem.Diagnostics.StackTrace如果你需要一个更方便(即不是字符串)的表示


Col*_*inE 18

是的......

StackTrace stackTrace = new StackTrace();           // get call stack
StackFrame[] stackFrames = stackTrace.GetFrames()
Run Code Online (Sandbox Code Playgroud)


Phi*_*Gan 14

string stackTrace = Environment.StackTrace;
Run Code Online (Sandbox Code Playgroud)