Condividi tramite


Interfaccia Debugger2

L'oggetto Debugger2 viene utilizzato per interrogare e modificare lo stato del debugger e del programma sottoposto a debug. L'oggetto Debugger2 sostituisce l'oggetto Debugger.

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

Sintassi

'Dichiarazione
<GuidAttribute("8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")> _
Public Interface Debugger2 _
    Inherits Debugger
[GuidAttribute("8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")]
public interface Debugger2 : Debugger
[GuidAttribute(L"8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")]
public interface class Debugger2 : Debugger
[<GuidAttribute("8B5E2BFD-4642-4EFE-8AF4-0B2DA9AAA23C")>]
type Debugger2 =  
    interface
        interface Debugger
    end
public interface Debugger2 extends Debugger

Il tipo Debugger2 espone i seguenti membri.

Proprietà

  Nome Descrizione
Proprietà pubblica AllBreakpointsLastHit (Ereditato da Debugger)
Proprietà pubblica AllBreakpointsLastHit Ottiene un insieme di punti di interruzione associati raggiunti per ultimi contemporaneamente.
Proprietà pubblica BreakpointLastHit (Ereditato da Debugger)
Proprietà pubblica BreakpointLastHit Ottiene l'ultimo punto di interruzione raggiunto.
Proprietà pubblica Breakpoints (Ereditato da Debugger)
Proprietà pubblica Breakpoints Ottiene un insieme di punti di interruzione.
Proprietà pubblica CurrentMode (Ereditato da Debugger)
Proprietà pubblica CurrentMode Ottiene la modalità corrente del debugger nel contesto dell'IDE.
Proprietà pubblica CurrentProcess (Ereditato da Debugger)
Proprietà pubblica CurrentProcess Ottiene o imposta il processo attivo.
Proprietà pubblica CurrentProgram (Ereditato da Debugger)
Proprietà pubblica CurrentProgram Imposta o restituisce il programma attivo.
Proprietà pubblica CurrentStackFrame (Ereditato da Debugger)
Proprietà pubblica CurrentStackFrame Ottiene o imposta lo stack frame corrente.
Proprietà pubblica CurrentThread (Ereditato da Debugger)
Proprietà pubblica CurrentThread Ottiene o imposta il thread corrente di cui è in corso il debug.
Proprietà pubblica DebuggedProcesses (Ereditato da Debugger)
Proprietà pubblica DebuggedProcesses Ottiene l'elenco di processi di cui è in corso il debug.
Proprietà pubblica DTE (Ereditato da Debugger)
Proprietà pubblica DTE Ottiene l'oggetto estensibilità di primo livello.
Proprietà pubblica HexDisplayMode (Ereditato da Debugger)
Proprietà pubblica HexDisplayMode Ottiene o imposta un valore che indica se le espressioni vengono generate in formato decimale o esadecimale.
Proprietà pubblica HexInputMode (Ereditato da Debugger)
Proprietà pubblica HexInputMode Ottiene o imposta un valore che indica se le espressioni vengono valutate in formato decimale o esadecimale.
Proprietà pubblica Languages (Ereditato da Debugger)
Proprietà pubblica Languages Ottiene un elenco di linguaggi supportati dal debugger.
Proprietà pubblica LastBreakReason (Ereditato da Debugger)
Proprietà pubblica LastBreakReason Ottiene l'ultima causa dell'interruzione di un programma.Se il programma è in esecuzione, viene restituito DBG_REASON_NONE.
Proprietà pubblica LocalProcesses (Ereditato da Debugger)
Proprietà pubblica LocalProcesses Ottiene l'elenco dei processi in esecuzione nel computer in uso.
Proprietà pubblica Parent (Ereditato da Debugger)
Proprietà pubblica Parent Ottiene l'oggetto padre immediato dell'oggetto Debugger2 (DTE2).
Proprietà pubblica Transports Ottiene un insieme di trasporti di debug supportati.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Break(Boolean) (Ereditato da Debugger)
Metodo pubblico Break(Boolean) Provoca la sospensione dell'esecuzione del processo specificato in modo da consentire l'analisi del suo stato corrente.
Metodo pubblico DetachAll() (Ereditato da Debugger)
Metodo pubblico DetachAll() Disconnette da tutti i programmi collegati.
Metodo pubblico ExecuteStatement(String, Int32, Boolean) (Ereditato da Debugger)
Metodo pubblico ExecuteStatement(String, Int32, Boolean) Esegue l'istruzione specificata.Se il flag TreatAsExpression è true, la stringa viene interpretata come un'espressione e l'output viene inviato a Finestra di comando.
Metodo pubblico GetExpression(String, Boolean, Int32) (Ereditato da Debugger)
Metodo pubblico GetExpression(String, Boolean, Int32) Valuta un'espressione in base allo stack frame corrente.Se l'espressione può essere analizzata, ma non valutata, viene restituito un oggetto, ma il valore in esso contenuto non sarà valido.
Metodo pubblico GetExpression2 Valuta un'espressione in base allo stack frame corrente.Se l'espressione può essere analizzata, ma non valutata, viene restituito un oggetto, ma il valore in esso contenuto non sarà valido.
Metodo pubblico GetProcesses Consente al chiamante di ottenere un insieme di processi da un computer remoto.
Metodo pubblico Go(Boolean) (Ereditato da Debugger)
Metodo pubblico Go(Boolean) Avvia l'esecuzione del programma dall'istruzione corrente.
Metodo pubblico RunToCursor(Boolean) (Ereditato da Debugger)
Metodo pubblico RunToCursor(Boolean) Esegue il programma nella posizione corrente del cursore del file di origine.
Metodo pubblico SetNextStatement() (Ereditato da Debugger)
Metodo pubblico SetNextStatement() Imposta la successiva istruzione da eseguire in base alla posizione corrente del cursore nel file di origine.
Metodo pubblico StepInto(Boolean) (Ereditato da Debugger)
Metodo pubblico StepInto(Boolean) Esegue la chiamata di funzione successiva, se possibile.
Metodo pubblico StepOut(Boolean) (Ereditato da Debugger)
Metodo pubblico StepOut(Boolean) Esce dalla funzione corrente.
Metodo pubblico StepOver(Boolean) (Ereditato da Debugger)
Metodo pubblico StepOver(Boolean) Esegue la chiamata di funzione successiva.
Metodo pubblico Stop(Boolean) (Ereditato da Debugger)
Metodo pubblico Stop(Boolean) Interrompe il debug e termina o disconnette tutti i processi collegati.
Metodo pubblico TerminateAll() (Ereditato da Debugger)
Metodo pubblico TerminateAll() Termina tutti i processi di debug in esecuzione.
Metodo pubblico WriteMinidump Se è in corso il debug di un programma ed è attivata la modalità di interruzione, questa funzione crea un minidump della sessione di debug corrente.

In alto

Note

Come illustrato nell'esempio riportato di seguito, il debugger è disponibile attraverso l'oggetto DTE2 mediante la relativa proprietà Debugger. È disponibile un oggetto debugger per ogni istanza dell'ambiente di sviluppo.

Esempi

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 EnvDTE80.Debugger2
        debugger = DTE2.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 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 EnvDTE80;
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(&pDebugger2)) && 
            pDebugger2
            != NULL){
                dbgDebugMode mode;
                if (SUCCEEDED(pDebugger2->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 EnvDTE80