Thread2.StackFrames Property

Definition

Gets the collection of stack frames through which this thread is executing.

public:
 property EnvDTE::StackFrames ^ StackFrames { EnvDTE::StackFrames ^ get(); };
[System.Runtime.InteropServices.DispId(102)]
public EnvDTE.StackFrames StackFrames { [System.Runtime.InteropServices.DispId(102)] get; }
[<System.Runtime.InteropServices.DispId(102)>]
[<get: System.Runtime.InteropServices.DispId(102)>]
member this.StackFrames : EnvDTE.StackFrames
Public ReadOnly Property StackFrames As StackFrames

Property Value

A StackFrames collection.

Implements

Attributes

Examples

The following example demonstrates how to use the Collection property.

public static void TestThreadProperties(DTE2 dte)  
{  
    // Setup debug Output window.  
    Window w =   
      (Window)dte.Windows.Item(EnvDTE.Constants.vsWindowKindOutput);  
    w.Visible = true;  
    OutputWindow ow = (OutputWindow)w.Object;  
    OutputWindowPane owp = ow.OutputWindowPanes.Add("Thread Test");  
    owp.Activate();  

    EnvDTE.Threads threads = dte.Debugger.CurrentProgram.Threads;  
    owp.OutputString("\nNumber of items in the Thread collection: " +   
      threads.Item(1).Collection.Count + "\n");  
    foreach(EnvDTE90.Thread2 thread in threads)  
    {  
        owp.OutputString("\nThread: " + thread.ID + "  Name: " +   
          thread.Name);  
        owp.OutputString("\n  Edition of the environment : " +   
          thread.DTE.Edition);  
        owp.OutputString("\n  Is alive                   : " +   
          thread.IsAlive);  
        owp.OutputString("\n  Is frozen                  : " +   
          thread.IsFrozen);  
        owp.OutputString("\n  Location                   : " +   
          thread.Location);  
        owp.OutputString("\n  Parent's current mode      : " +   
          thread.Parent.CurrentMode);  
        owp.OutputString("\n  Priority                   : " +   
          thread.Priority);  
        owp.OutputString("\n  Program name               : " +   
          thread.Program.Name);  
        owp.OutputString("\n  Number of stack frames     : " +   
          thread.StackFrames.Count);  
        owp.OutputString("\n  Suspended number of times  : " +   
          thread.SuspendCount);  
        owp.OutputString("\n  Flag on the thread  : " + thread.Flag);  
    }  
}  
Shared Sub ThreadProperties(ByRef dte As EnvDTE80.DTE2)  
    Dim str As String  
    Dim threads As EnvDTE.Threads = dte.Debugger.CurrentProgram.Threads  
    str = "Number of items in the Thread collection: " + _  
      threads.Item(1).Collection.Count.ToString()  
    For Each thread As EnvDTE90.Thread2 In threads  
        str += vbCrLf + vbCrLf + "  Thread: " + thread.ID.ToString()  
        str += vbCrLf + "    Edition of the environment: " +   
          thread.DTE.Edition  
        str += vbCrLf + "    Is alive: " + thread.IsAlive.ToString()  
        str += vbCrLf + "    Is frozen: " + thread.IsFrozen.ToString()  
        str += vbCrLf + "    Location: " + thread.Location  
        str += vbCrLf + "    Parent's current mode: " + _  
               thread.Parent.CurrentMode.ToString()  
        str += vbCrLf + "    Priority: " + thread.Priority  
        str += vbCrLf + "    Program name: " + thread.Program.Name  
        str += vbCrLf + "    Number of stack frames: " + _  
               thread.StackFrames.Count.ToString()  
        str += vbCrLf + "    Suspended number of times: " + _  
               thread.SuspendCount.ToString()  
        str += vbCrLf + "    Flag on the thread: " + _  
               thread.Flag.ToString()  
    Next  
    MessageBox.Show(str, "Thread Test - Properties")  
End Sub  

Applies to