Вы можете использовать System.Diagnostics.StackTrace
, чтобы получить строковое представление текущего стека вызовов и записать его в файл. Например:
private static writeStack(string file)
{
StackTrace trace = new StackTrace(true); // the "true" param here allows you to get the file name, etc.
using (StreamWriter writer = new StreamWriter(file))
{
for (int i = 0; i < trace.FrameCount; i++)
{
StackFrame frame = trace.GetFrame(i);
writer.WriteLine("{0}\t{1}\t{2}", frame.GetFileName(), frame.GetFileLineNumber(), frame.GetMethod());
}
}
}
Затем, когда вы хотите записать текущий стек, просто позвоните writeStack(somePath)
.