static void Main(string[] args)
{
A();
Console.ReadLine();
}
static void A()
{
B();
}
static void B()
{
C();
}
static void C()
{
StackTrace s = new StackTrace(true);
Console.WriteLine($"Total frames: {s.FrameCount}");
Console.WriteLine($"Current Method:{s.GetFrame(0).GetMethod().Name}");
Console.WriteLine($"Calling method:{s.GetFrame(1).GetMethod().Name}");
Console.WriteLine($"Entry method: {s.GetFrame(s.FrameCount - 1).GetMethod().Name}");
Console.WriteLine("Call stack: ");
foreach (StackFrame f in s.GetFrames())
{
Console.WriteLine($"File:{f.GetFileName()} Line:{f.GetFileLineNumber()} col:{f.GetFileColumnNumber()}, Offset:{f.GetILOffset()} Method:{f.GetMethod().Name}");
}
}