Condividi tramite


Interfaccia Debugger

Debugger l'oggetto viene utilizzato per interrogare e modificare lo stato del debugger e del programma in fase di debug.

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

Sintassi

'Dichiarazione
<GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")> _
Public Interface Debugger
[GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface Debugger
[GuidAttribute(L"338FB9A0-BAE5-11D2-8AD1-00C04F79E479")]
public interface class Debugger
[<GuidAttribute("338FB9A0-BAE5-11D2-8AD1-00C04F79E479")>]
type Debugger =  interface end
public interface Debugger

Il tipo Debugger espone i seguenti membri.

Proprietà

  Nome Descrizione
Proprietà pubblica AllBreakpointsLastHit Ottiene una raccolta di punti di interruzione associati contenuti contemporaneamente l'ultima riga eseguita.
Proprietà pubblica BreakpointLastHit ottiene l'ultimo passaggio punto di interruzione.
Proprietà pubblica Breakpoints Ottiene una raccolta di punti di interruzione.
Proprietà pubblica CurrentMode Ottiene la modalità corrente del debugger nel contesto dell'ambiente di sviluppo integrato (IDE) (IDE).
Proprietà pubblica CurrentProcess Imposta o ottiene il processo attivo.
Proprietà pubblica CurrentProgram Imposta o ottiene il programma attivo.
Proprietà pubblica CurrentStackFrame Imposta o ottiene lo stack frame corrente.
Proprietà pubblica CurrentThread Imposta o ottiene il thread corrente in fase di debug.
Proprietà pubblica DebuggedProcesses Ottiene l'elenco dei processi attualmente in corso di debug.
Proprietà pubblica DTE Ottiene l'oggetto estensibilità di primo livello.
Proprietà pubblica HexDisplayMode Ottiene o imposta se le espressioni vengono restituite in o in formato decimale.
Proprietà pubblica HexInputMode Ottiene o imposta se le espressioni vengono valutate in o in formato decimale.
Proprietà pubblica Languages Ottiene un elenco dei linguaggi che il debugger supporta.
Proprietà pubblica LastBreakReason Ottiene l'ultima motivo per cui un programma è stato interrotto.Se il programma è in esecuzione restituisce DBG_REASON_NONE.
Proprietà pubblica LocalProcesses Ottiene l'elenco dei processi attualmente in esecuzione sul computer.
Proprietà pubblica Parent Ottiene l'oggetto padre immediato di un oggetto Debugger oggetto.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Break Determina il processo specificato per sospendere la relativa esecuzione in modo da poter analizzare lo stato corrente.
Metodo pubblico DetachAll Rimuove da tutti i programmi connessi.
Metodo pubblico ExecuteStatement Esegue l'istruzione specificato.se TreatAsExpression il flag è true, la stringa viene interpretata come espressione e l'output viene inviato alla finestra di comando.
Metodo pubblico GetExpression Valuta un'espressione basata sullo stack frame corrente.Se l'espressione può essere analizzata ma non essere valutata, un oggetto viene restituito ma non contiene un valore valido.
Metodo pubblico Go Iniziare a eseguire il programma dall'istruzione corrente.
Metodo pubblico RunToCursor Esegue il programma nella posizione corrente del cursore del file di origine.
Metodo pubblico SetNextStatement Imposta l'istruzione successiva da eseguire, a seconda della posizione del cursore nel file di origine corrente.
Metodo pubblico StepInto Esegue la chiamata di funzione seguente, se possibile.
Metodo pubblico StepOut Esce dalla funzione corrente.
Metodo pubblico StepOver Esegue la chiamata di funzione seguente.
Metodo pubblico Stop Consente di interrompere l'esecuzione del debug, terminare, rimuovere da tutti i processi connessi.
Metodo pubblico TerminateAll Terminare tutti i processi.

In alto

Note

il debugger è disponibile con DTE oggetto mediante il relativo Debugger proprietà, come mostrato nell'esempio seguente.Un oggetto del debugger è disponibile per ogni istanza dell'ambiente di sviluppo.

Esempi

Nell'esempio seguente viene illustrato come utilizzare l'oggetto del debugger.

Imports EnvDTE
Imports System.Diagnostics

Public Module Module1
    ' This function returns true if the debugger is actively debugging.

    Function IsDebugging() As Boolean
        Dim debugger As EnvDTE.Debugger
        debugger = DTE.Debugger

        If (debugger Is Nothing) Then
            MsgBox("Debugger doesn't exist! Fatal error.")
            IsDebugging = false
        Else
            IsDebugging = (debugger.CurrentMode <> dbgDebugMode.dbgDesignMode)
        End If
    End Function
End Module
// The following small C++ program can be run from the command line.
// It detects whether an instance of Visual Studio is currently 
// running,and if so, prints a message stating whether its debugger
// is actively debugging.

#include <stdio.h>
#import "dte.olb" raw_interfaces_only named_guids

using namespace EnvDTE;

int main(void)
{
    int nRet = 0;

    CoInitialize(NULL);

    IUnknownPtr pUnk;
    GetActiveObject(CLSID_DTE, NULL, &pUnk);

    if (pUnk == NULL) {
        printf ("No instance of Visual Studio is running.\n");
    }
    else {
        _DTEPtr pDTE = pUnk;
        if (pDTE) {
            DebuggerPtr pDebugger;
            if (SUCCEEDED(pDTE->get_Debugger(&pDebugger)) && pDebugger != NULL){
                dbgDebugMode mode;
                if (SUCCEEDED(pDebugger->get_CurrentMode(&mode))) {
                    if (mode != dbgDesignMode) {
                        printf("Debugger is active.\n");
                        nRet = 1;
                    }
                    else {
                        printf("Debugger is not active.\n");
                    }
                }
            }
        }
    }

    CoUninitialize();

    return nRet;
}

Vedere anche

Riferimenti

Spazio dei nomi EnvDTE

Altre risorse

Grafico del modello a oggetti di automazione

Debug in Visual Studio