Condividi tramite


Interfaccia Debugger3

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

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

Sintassi

'Dichiarazione
<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")> _
Public Interface Debugger3 _
    Inherits Debugger2
[GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface Debugger3 : Debugger2
[GuidAttribute(L"87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface class Debugger3 : Debugger2
[<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")>]
type Debugger3 =  
    interface
        interface Debugger2
    end
public interface Debugger3 extends Debugger2

Il tipo Debugger3 espone i seguenti membri.

Proprietà

  Nome Descrizione
Proprietà pubblica AllBreakpointsLastHit (Ereditato da Debugger2)
Proprietà pubblica AllBreakpointsLastHit Ottiene un insieme di punti di interruzione associati raggiunti per ultimi contemporaneamente.
Proprietà pubblica BreakpointLastHit (Ereditato da Debugger2)
Proprietà pubblica BreakpointLastHit Ottiene l'ultimo punto di interruzione raggiunto.
Proprietà pubblica Breakpoints (Ereditato da Debugger2)
Proprietà pubblica Breakpoints Ottiene un insieme di punti di interruzione.
Proprietà pubblica CurrentMode (Ereditato da Debugger2)
Proprietà pubblica CurrentMode Ottiene la modalità corrente del debugger nel contesto dell'IDE.
Proprietà pubblica CurrentProcess (Ereditato da Debugger2)
Proprietà pubblica CurrentProcess Ottiene o imposta il processo attivo.
Proprietà pubblica CurrentProgram (Ereditato da Debugger2)
Proprietà pubblica CurrentProgram Imposta o restituisce il programma attivo.
Proprietà pubblica CurrentStackFrame (Ereditato da Debugger2)
Proprietà pubblica CurrentStackFrame Ottiene o imposta lo stack frame corrente.
Proprietà pubblica CurrentThread (Ereditato da Debugger2)
Proprietà pubblica CurrentThread Ottiene o imposta il thread corrente di cui è in corso il debug.
Proprietà pubblica DebuggedProcesses (Ereditato da Debugger2)
Proprietà pubblica DebuggedProcesses Ottiene l'elenco dei processi di cui è in corso il debug.
Proprietà pubblica DTE (Ereditato da Debugger2)
Proprietà pubblica DTE Ottiene l'oggetto estensibilità di primo livello.
Proprietà pubblica ExceptionGroups Ottiene le impostazioni di eccezione per il debugger.Per ogni eccezione le impostazioni stabiliscono se il debugger consente al codice di gestire l'eccezione prima che il debugger interrompa l'esecuzione.
Proprietà pubblica ForceContinue Ottiene o imposta un valore che stabilisce se il debugger si interrompe o continua quando un punto di analisi o un punto di interruzione termina l'esecuzione di una macro.Il comportamento predefinito viene impostato dall'utente nella finestra di dialogo al momento della creazione del punto di analisi o del punto di interruzione.Questa proprietà consente di modificare il comportamento predefinito.
Proprietà pubblica HexDisplayMode (Ereditato da Debugger2)
Proprietà pubblica HexDisplayMode Ottiene o imposta un valore che indica se le espressioni sono generate in formato decimale o esadecimale.
Proprietà pubblica HexInputMode (Ereditato da Debugger2)
Proprietà pubblica HexInputMode Ottiene o imposta un valore che indica se le espressioni sono valutate in formato decimale o esadecimale.
Proprietà pubblica Languages (Ereditato da Debugger2)
Proprietà pubblica Languages Ottiene un elenco di linguaggi supportati dal debugger.
Proprietà pubblica LastBreakReason (Ereditato da Debugger2)
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 Debugger2)
Proprietà pubblica LocalProcesses Ottiene l'elenco dei processi attualmente in esecuzione nel computer.
Proprietà pubblica OnlyLoadSymbolsManually Ottiene un valore che determina se i simboli sono caricati manualmente o automaticamente.L'utente di Visual Studio può definire questa impostazione nella finestra di dialogo Opzioni.Per ulteriori informazioni su come impostare tale valore in Visual Studio, vedere Procedura: specificare percorsi di simboli e comportamento di caricamento.
Proprietà pubblica Parent (Ereditato da Debugger2)
Proprietà pubblica Parent Ottiene l'oggetto padre diretto dell'oggetto Debugger3 (DTE2).
Proprietà pubblica SymbolCachePath Ottiene una stringa contenente il percorso alla cache dei simboli utilizzata in Visual Studio quando si scaricano simboli da un server di simboli.Per specificare il percorso della cache dei simboli è possibile utilizzare la finestra di dialogo Opzioni.Per ulteriori informazioni, vedere How to: Use a Symbol Server.
Proprietà pubblica SymbolPath Ottiene una stringa contenente percorsi di file di simboli PDB utilizzati in Visual Studio per l'esecuzione del debug.L'utente di Visual Studio può specificare i percorsi dei simboli nella finestra di dialogo Opzioni.Per ulteriori informazioni, vedere la classe Procedura: specificare percorsi di simboli e comportamento di caricamento.
Proprietà pubblica SymbolPathState Ottiene una stringa che rappresenta lo stato di tutti i percorsi dei file di simboli PDB utilizzati in Visual Studio per l'esecuzione del debug.
Proprietà pubblica Transports (Ereditato da Debugger2)
Proprietà pubblica Transports Ottiene un insieme di trasporti di debug supportati.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Break(Boolean) (Ereditato da Debugger2)
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 Debugger2)
Metodo pubblico DetachAll() Disconnette da tutti i programmi collegati.
Metodo pubblico ExecuteStatement(String, Int32, Boolean) (Ereditato da Debugger2)
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 Debugger2)
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(String, Boolean, Boolean, Int32) (Ereditato da Debugger2)
Metodo pubblico GetExpression2(String, Boolean, 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.Questa funzione membro è simile a GetExpression ma con un parametro booleano aggiuntivo che può essere impostato su true per indicare che l'espressione deve essere valutata come un'istruzione.
Metodo pubblico GetProcesses(Transport, String) (Ereditato da Debugger2)
Metodo pubblico GetProcesses(Transport, String)
Metodo pubblico Go(Boolean) (Ereditato da Debugger2)
Metodo pubblico Go(Boolean) Avvia l'esecuzione del programma dall'istruzione corrente.
Metodo pubblico RunToCursor(Boolean) (Ereditato da Debugger2)
Metodo pubblico RunToCursor(Boolean) Esegue il programma nella posizione corrente del cursore del file di origine.
Metodo pubblico SetNextStatement() (Ereditato da Debugger2)
Metodo pubblico SetNextStatement() Imposta la successiva istruzione da eseguire in base alla posizione corrente del cursore nel file di origine.
Metodo pubblico SetSymbolSettings Definisce varie impostazioni per i simboli PDB utilizzati in Visual Studio per il debug e impone il nuovo caricamento di tutti i simboli.
Metodo pubblico StepInto(Boolean) (Ereditato da Debugger2)
Metodo pubblico StepInto(Boolean) Esegue la chiamata di funzione successiva, se possibile.
Metodo pubblico StepOut(Boolean) (Ereditato da Debugger2)
Metodo pubblico StepOut(Boolean) Esce dalla funzione corrente.
Metodo pubblico StepOver(Boolean) (Ereditato da Debugger2)
Metodo pubblico StepOver(Boolean) Esegue la chiamata di funzione successiva.
Metodo pubblico Stop(Boolean) (Ereditato da Debugger2)
Metodo pubblico Stop(Boolean) Interrompe il debug e termina o disconnette tutti i processi collegati.
Metodo pubblico TerminateAll() (Ereditato da Debugger2)
Metodo pubblico TerminateAll() Termina tutti i processi di debug in esecuzione.
Metodo pubblico WriteMinidump(String, dbgMinidumpOption) (Ereditato da Debugger2)
Metodo pubblico WriteMinidump(String, dbgMinidumpOption)

In alto

Note

Il debugger è accessibile dall'oggetto DTE2 tramite la proprietà Debugger, come illustrato nell'esempio seguente. Un oggetto debugger è disponibile per ogni istanza dell'ambiente di sviluppo interattivo (IDE).

Esempi

Imports System
Imports EnvDTE
Imports EnvDTE90
Imports EnvDTE90
Imports System.Diagnostics

Public Module Module1
    'This function returns true if the debugger is actively debugging.
    Function IsDebugging() As Boolean
        Dim debugger As EnvDTE90.Debugger3
        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 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 "dte90.olb" raw_interfaces_only named_guids
using namespace EnvDTE90;
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(&pDebugger3)) && 
            pDebugger3
            != NULL){
                dbgDebugMode mode;
                if (SUCCEEDED(pDebugger3->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 EnvDTE90