Partager via


StackFrame.Language Property

Gets the programming language that is associated with the stack frame.

Namespace:  EnvDTE
Assembly:  EnvDTE (in EnvDTE.dll)

Syntax

'Declaration
ReadOnly Property Language As String
string Language { get; }
property String^ Language {
    String^ get ();
}
abstract Language : string with get
function get Language () : String

Property Value

Type: System.String
A CodeModelLanguageConstants constant.

Examples

The following example demonstrates how to use the Language property.

To test this property

  1. In your target application, set a breakpoint inside the method other than the method Main().

  2. Run the target application in the debug mode.

  3. When the application stops on the breakpoint, run the add-in.

public static void TestStackFrames(DTE 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("Stack Frames Test");
    owp.Activate();

    EnvDTE.StackFrames stackFrames = dte.Debugger.CurrentThread.StackFrames;
    owp.OutputString("\nNumber of items in the Current Stack collection: " + 
                     stackFrames.Item(1).Collection.Count + "\n");

    foreach(EnvDTE.StackFrame sf in stackFrames)
    {
        owp.OutputString("\nStack Frame: " + sf.FunctionName);
        owp.OutputString("\n  Edition of the environment : " + sf.DTE.Edition);
        owp.OutputString("\n  Language                   : " + sf.Language);
        owp.OutputString("\n  Locals");
        EnvDTE.Expressions expressions = sf.Locals;
        foreach(EnvDTE.Expression exp in expressions)
            owp.OutputString("\n    " + exp.Name + " = " + exp.Value);
        owp.OutputString("\n  Module                     : " + sf.Module);
        owp.OutputString("\n  Current Thread ID          : " + sf.Parent.ID);
        owp.OutputString("\n  Return Type                : " + sf.ReturnType);
    }
}
Shared Sub TestStackFrames(ByRef dte As EnvDTE.DTE)
    Dim str As String
    Dim stackFrames As EnvDTE.StackFrames = dte.Debugger.CurrentThread.StackFrames
    str = "Number of items in the Current Stack collection: " + _
          stackFrames.Item(1).Collection.Count.ToString()
    For Each sf As EnvDTE.StackFrame In stackFrames
        str += vbCrLf + vbCrLf + "  Stack Frame: " + sf.FunctionName
        str += vbCrLf + "  Edition of the environment: " + sf.DTE.Edition
        str += vbCrLf + "  Language: " + sf.Language
        str += vbCrLf + "  Locals"
        Dim expressions As EnvDTE.Expressions = sf.Locals
        For Each exp As EnvDTE.Expression In expressions
            str += vbCrLf + "    " + exp.Name + " = " + exp.Value.ToString()
        Next
        str += vbCrLf + "  Module: " + sf.Module
        str += vbCrLf + "  Current Thread ID: " + sf.Parent.ID.ToString()
        str += vbCrLf + "  Return Type: " + sf.ReturnType
    Next
    MessageBox.Show(str, "Stack Frame Test - Properties")
End Sub

.NET Framework Security

See Also

Reference

StackFrame Interface

EnvDTE Namespace

Other Resources

How to: Compile and Run the Automation Object Model Code Examples