Condividi tramite


Proprietà Debugger3.CurrentStackFrame

Ottiene o imposta lo stack frame corrente.

Spazio dei nomi:  EnvDTE90
Assembly:  EnvDTE90 (in EnvDTE90.dll)

Sintassi

'Dichiarazione
Property CurrentStackFrame As StackFrame
    Get
    Set
StackFrame CurrentStackFrame { get; set; }
property StackFrame^ CurrentStackFrame {
    StackFrame^ get ();
    void set (StackFrame^ value);
}
abstract CurrentStackFrame : StackFrame with get, set
function get CurrentStackFrame () : StackFrame
function set CurrentStackFrame (value : StackFrame)

Valore proprietà

Tipo: EnvDTE.StackFrame
Un oggetto StackFrame.

Implementa

Debugger2.CurrentStackFrame

Note

Per ulteriori informazioni sullo stack frame, vedere Memory Management: Frame Allocation.

Esempi

Nell'esempio riportato di seguito viene mostrato come utilizzare la proprietà CurrentStackFrame.

Per verificare la proprietà:

  1. Impostare un punto di interruzione nell'applicazione di destinazione. Eseguire il componente aggiuntivo.

    Lo stack frame corrente è vuoto.

  2. Impostare un punto di interruzione nell'applicazione di destinazione. Eseguire l'applicazione di destinazione in modalità debug. Quando il programma si interrompe al punto di interruzione, eseguire il componente aggiuntivo.

    Lo stack frame corrente contiene il nome del metodo e il tipo restituito.

public static void CurrentStackFrame(EnvDTE80.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("Current StackFrame 
    Test");
    owp.Activate();

    owp.OutputString("Current Stack Frame Info: ");
    EnvDTE90.Debugger3 debugger = (EnvDTE90.Debugger3)dte.Debugger;
    EnvDTE.StackFrame sf = debugger.CurrentStackFrame;
    if (sf == null)
        owp.OutputString("No program is being debugged, Stack Frame is 
        empty.");
    else
        owp.OutputString("Function " + sf.FunctionName +
                         " returns type " + sf.ReturnType);
}
Sub ShowCurrentProcess()
    ' This function displays the current debugger
    ' mode in the output window.
    Dim ow As OutputWindow
    ow = DTE2.Windows.Item(Constants.vsWindowKindOutput).Object

    Dim proc As EnvDTE.Process2
    proc = DTE2.Debugger.CurrentProcess

    If (proc Is Nothing) Then
        ow.ActivePane.OutputString("No process is being debugged")
    Else
        ow.ActivePane.OutputString("" + Str(proc.ProcessID) + ": " + _
        proc.Name + vbCrLf)
    End If
End Sub

Sicurezza di .NET Framework

Vedere anche

Riferimenti

Debugger3 Interfaccia

Overload CurrentStackFrame

Spazio dei nomi EnvDTE90