Thread2.Location Property

Definition

Gets the address at which the thread was executing code at the time the process was stopped for debugging.

public:
 property System::String ^ Location { System::String ^ get(); };
public:
 property Platform::String ^ Location { Platform::String ^ get(); };
[System.Runtime.InteropServices.DispId(106)]
public string Location { [System.Runtime.InteropServices.DispId(106)] get; }
[<System.Runtime.InteropServices.DispId(106)>]
[<get: System.Runtime.InteropServices.DispId(106)>]
member this.Location : string
Public ReadOnly Property Location As String

Property Value

A string value representing the address at which the thread was executing code at the time the process was stopped for debugging.

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  

Remarks

If the code being debugged has associated symbols, Location returns a function name. If the code being debugged has no associated symbols, Location returns a numeric address.

Applies to