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 | |
---|---|---|
AllBreakpointsLastHit | Obtém uma coleção de pontos de interrupção acoplados que ocorreram por último simultaneamente. | |
BreakpointLastHit | Obtém a última ocorrência de ponto de interrupção. | |
Breakpoints | Obtém uma coleção de pontos de interrupção. | |
CurrentMode | Obtém o modo atual do depurador dentro do contexto do ambiente de desenvolvimento integrado (IDE). | |
CurrentProcess | Define ou obtém o processo ativo. | |
CurrentProgram | Define ou obtém o programa ativo. | |
CurrentStackFrame | Define ou obtém o quadro de pilha atual. | |
CurrentThread | Define ou obtém o segmento atual que está sendo depurado. | |
DebuggedProcesses | Obtém a lista de processos está atualmente sendo depurado. | |
DTE | Obtém o objeto de extensibilidade de nível superior. | |
HexDisplayMode | Obtém ou define se as expressões são a saída no formato hexadecimal ou decimal. | |
HexInputMode | Obtém ou define se as expressões são avaliadas em formato hexadecimal ou decimal. | |
Languages | Obtém uma lista dos idiomas suportados pelo depurador. | |
LastBreakReason | Obtém o último motivo pelo qual um programa foi interrompido.Se o programa é executado ele retorna DBG_REASON_NONE. | |
LocalProcesses | Obtém a lista de processos em execução nesta máquina. | |
Parent | Obtém o objeto pai imediato de um Debugger objeto. |
Superior
Métodos
Nome | Descrição | |
---|---|---|
Break | Faz com que o processo determinado pausar sua execução, para que o estado atual pode ser analisado. | |
DetachAll | Desconecta-se de todos os programas conectados. | |
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. | |
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. | |
Go | Inicia a execução do programa a partir da instrução atual. | |
RunToCursor | Executa o programa na posição atual do cursor do arquivo de origem. | |
SetNextStatement | Define a próxima instrução a ser executada, de acordo com a posição do cursor no arquivo de origem atual. | |
StepInto | Etapas para a próxima chamada de função, se possível. | |
StepOut | Etapas fora da função atual. | |
StepOver | Dirige-se a próxima chamada de função. | |
Stop | Interrompe a depuração, finalizando ou desconectando todos os processos anexados. | |
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;
}