Interface Debugger

O Debugger objeto é usado para interrogar e manipular o estado do depurador e o programa que está sendo depurado.

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

Sintaxe

'Declaração
<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

O tipo Debugger expõe os membros a seguir.

Propriedades

  Nome Descrição
Propriedade pública AllBreakpointsLastHit Obtém uma coleção de pontos de interrupção acoplados que ocorreram por último simultaneamente.
Propriedade pública BreakpointLastHit Obtém a última ocorrência de ponto de interrupção.
Propriedade pública Breakpoints Obtém uma coleção de pontos de interrupção.
Propriedade pública CurrentMode Obtém o modo atual do depurador dentro do contexto do ambiente de desenvolvimento integrado (IDE).
Propriedade pública CurrentProcess Define ou obtém o processo ativo.
Propriedade pública CurrentProgram Define ou obtém o programa ativo.
Propriedade pública CurrentStackFrame Define ou obtém o quadro de pilha atual.
Propriedade pública CurrentThread Define ou obtém o segmento atual que está sendo depurado.
Propriedade pública DebuggedProcesses Obtém a lista de processos está atualmente sendo depurado.
Propriedade pública DTE Obtém o objeto de extensibilidade de nível superior.
Propriedade pública HexDisplayMode Obtém ou define se as expressões são a saída no formato hexadecimal ou decimal.
Propriedade pública HexInputMode Obtém ou define se as expressões são avaliadas em formato hexadecimal ou decimal.
Propriedade pública Languages Obtém uma lista dos idiomas suportados pelo depurador.
Propriedade pública LastBreakReason Obtém o último motivo pelo qual um programa foi interrompido.Se o programa é executado ele retorna DBG_REASON_NONE.
Propriedade pública LocalProcesses Obtém a lista de processos em execução nesta máquina.
Propriedade pública Parent Obtém o objeto pai imediato de um Debugger objeto.

Superior

Métodos

  Nome Descrição
Método público Break Faz com que o processo determinado pausar sua execução, para que o estado atual pode ser analisado.
Método público DetachAll Desconecta-se de todos os programas conectados.
Método público ExecuteStatement Executa a instrução especificada.Se a TreatAsExpression o sinalizador será true, em seguida, a seqüência de caracteres é interpretada como uma expressão e saída é enviada para a janela de comando.
Método público GetExpression Avalia uma expressão baseada no quadro de pilha atual.Se a expressão pode ser analisada, mas não será avaliada, um objeto é retornado mas não conterá um valor válido.
Método público Go Inicia a execução do programa a partir da instrução atual.
Método público RunToCursor Executa o programa na posição atual do cursor do arquivo de origem.
Método público SetNextStatement Define a próxima instrução a ser executada, de acordo com a posição do cursor no arquivo de origem atual.
Método público StepInto Etapas para a próxima chamada de função, se possível.
Método público StepOut Etapas fora da função atual.
Método público StepOver Dirige-se a próxima chamada de função.
Método público Stop Interrompe a depuração, finalizando ou desconectando todos os processos anexados.
Método público TerminateAll Encerra todos os processos.

Superior

Comentários

O depurador está disponível através do DTE objeto por meio de sua Debugger propriedade, conforme mostrado no exemplo a seguir.Um objeto do depurador está disponível para cada instância do ambiente de desenvolvimento.

Exemplos

O exemplo a seguir demonstra como usar o objeto do depurador.

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;
}

Consulte também

Referência

Namespace EnvDTE

Outros recursos

Gráfico de modelo de objeto de automação

Depuração no Visual Studio