Compartilhar via


Propriedade StackFrame.Collection

Obtém a coleção que contém o objeto que ofereça suporte a esta propriedade ou está contido nessa construção de código.Retorna null para um objeto que não é obtido de uma coleção.

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

Sintaxe

'Declaração
ReadOnly Property Collection As StackFrames
StackFrames Collection { get; }
property StackFrames^ Collection {
    StackFrames^ get ();
}
abstract Collection : StackFrames
function get Collection () : StackFrames

Valor de propriedade

Tipo: EnvDTE.StackFrames
A StackFrames coleção.

Exemplos

O exemplo a seguir demonstra como usar o Collection propriedade.

Para testar esta propriedade.

  1. Em seu aplicativo de destino, defina um ponto de interrupção dentro do método diferente, por exemplo, o método Main ().

  2. Execute o aplicativo de destino no modo de depuração.

  3. Quando o aplicativo parar no ponto de interrupção, execute o 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

Segurança do .NET Framework

Consulte também

Referência

StackFrame Interface

Namespace EnvDTE

Outros recursos

Como: compilar e executar os exemplos de código de modelo de objeto de automação