StackTrace.GetFrame Method

Gets the specified stack frame.

Namespace:  System.Diagnostics
Assembly:  mscorlib (in mscorlib.dll)

public virtual StackFrame GetFrame(
	int index


Type: System.Int32

The index of the stack frame requested.

Return Value

Type: System.Diagnostics.StackFrame
The specified stack frame.

Stack frames are numbered starting at 0, which is the last stack frame pushed.

The following code example displays the first and last function calls in a stack trace.

public void Level5Method()
      ClassLevel6 nestedClass = new ClassLevel6();
   catch (Exception e) 
      Console.WriteLine(" Level5Method exception handler");

      StackTrace st = new StackTrace();

      // Display the most recent function call.
      StackFrame sf = st.GetFrame(0);
      Console.WriteLine("  Exception in method: ");
      Console.WriteLine("      {0}", sf.GetMethod());

      if (st.FrameCount >1)
         // Display the highest-level function call  
         // in the trace.
         sf = st.GetFrame(st.FrameCount-1);
         Console.WriteLine("  Original function call at top of call stack):");
         Console.WriteLine("      {0}", sf.GetMethod());

      Console.WriteLine("   ... throwing exception to next level ...");
      throw e;

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft