以编程方式获取C#堆栈跟踪

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

当引发exception时,其文本包含堆栈跟踪。 我可以以某种方式获得堆栈跟踪文本(包括文件和行)没有例外?

public void f() { //blah string stacktrace = ???; //blah } 

Environment.StackTrace或System.Diagnostics.StackTrace,如果你需要一个更方便(即不是string)表示

是…

 StackTrace stackTrace = new StackTrace(); // get call stack StackFrame[] stackFrames = stackTrace.GetFrames() 
 string stackTrace = Environment.StackTrace;