Interfaces principais

As interfaces a seguir são as principais interfaces para estender o depurador usando o SDK do Visual Studio.

Discussão

Essas interfaces são usadas principalmente para criar o mecanismo de depuração (DE). Eles estão organizados aqui por categorias:

Pontos de interrupção

Essas interfaces estão relacionadas à implementação e ao rastreamento de pontos de interrupção.

Interface Implementado por Descrição
IDebugBoundBreakpoint2 DE Representa um ponto de interrupção vinculado a um local de memória.
IDebugBreakpointBoundEvent2 DE Enviado pelo DE quando um ponto de interrupção é vinculado a um local de memória.
IDebugBreakpointChecksumRequest2 VS Representa uma soma de verificação de documento para uma solicitação de ponto de interrupção.
IDebugBreakpointErrorEvent2 DE Enviado pelo DE quando um ponto de interrupção não consegue ser vinculado a um local de memória.
IDebugBreakpointEvent2 DE Enviado pelo DE quando um ponto de interrupção é atingido.
IDebugBreakpointRequest2 VS Representa uma solicitação de um ponto de interrupção; usado na criação de um ponto de interrupção pendente.
IDebugBreakpointRequest3 VS Representa uma solicitação de um ponto de interrupção; usado na criação de um ponto de interrupção pendente.
IDebugBreakpointResolution2 DE Representa as informações usadas para vincular um ponto de interrupção.
IDebugBreakpointUnboundEvent2 DE Enviado pelo DE quando um ponto de interrupção é desvinculado de um local de memória.
IDebugErrorBreakpoint2 DE Representa um ponto de interrupção inválido (retornado por IDebugBreakpointErrorEvent2).
IDebugErrorBreakpointResolution2 DE Representa as informações de resolução sobre um ponto de interrupção inválido.
IDebugFunctionPosition2 DE Representa uma posição em uma função onde um ponto de interrupção é definido.
IDebugPendingBreakpoint2 DE Representa um ponto de interrupção que deve ser vinculado; usado na criação de um ponto de interrupção acoplado.
IEnumDebugBoundBreakpoints2 DE Representa uma enumeração sobre um conjunto de pontos de interrupção acoplados.
IEnumDebugErrorBreakpoints2 DE Representa uma enumeração sobre um conjunto de pontos de interrupção que não puderam ser vinculados a um local de memória.

Contextos

Essas interfaces representam vários tipos de contextos dentro do programa que está sendo depurado.

Interface Implementado por Descrição
IDebugCodeContext2 DE Representa a posição inicial de uma instrução de código.
IDebugCodeContext3 DE Estende a interface IDebugCodeContext2 para habilitar a recuperação de interfaces de módulo e processo.
IDebugDocumentContext2 VS, DE Representa uma posição em um documento.
IDebugExpressionContext2 DE Representa o contexto no qual avaliar uma expressão.
IDebugMemoryContext2 DE Representa o local inicial na memória de uma coleção de bytes.
IDebugStackFrame2 DE Representa um contexto de quadro de pilha em um ponto de interrupção ou exceção.
IDebugStackFrame3 DE Representa um contexto de quadro de pilha em um ponto de interrupção ou exceção.
IEnumDebugCodeContexts2 DE Representa uma enumeração sobre um conjunto de contextos de código.

Servidor Núcleo

Essas interfaces representam a máquina na qual um programa está sendo depurado. Eles são implementados pelo Visual Studio, mas podem ser chamados por mecanismos de depuração.

Interface Implementado por Descrição
IDebugCoreServer2 VS Fornece acesso a portas e fornecedores de portas, bem como informações sobre o computador.
IDebugCoreServer3 VS Representa um IDebugCoreServer2 que oferece suporte à depuração remota.

Mecanismos de depuração

Essas interfaces representam mecanismos de depuração e seus eventos associados.

Interface Implementado por Descrição
IDebugEngine2 DE Representa um mecanismo de depuração personalizado.
IDebugEngine3 DE Representa um mecanismo de depuração personalizado que oferece suporte ao carregamento de símbolos, JustMyCode e exceções.
IDebugEngineCreateEvent2 DE Enviado por cada nova instância do DE para indicar que está pronto para lidar com tarefas de depuração.
IDebugEngineLaunch2 DE Representa um mecanismo de depuração personalizado que oferece suporte à inicialização de programas.
IDebugProgramEngines2 DE, PS Representa um nó de programa que manipula vários mecanismos de depuração.
IDebugQueryEngine2 DE Fornece uma maneira para o SDM obter uma interface para o mecanismo de depuração de um quadro de thread, programa ou pilha.

Documentos

Essas interfaces representam documentos (arquivos de origem) e seus elementos associados.

Interface Implementado por Descrição
IDebugActivateDocumentEvent2 DE Enviado pelo DE para solicitar a abertura de um documento.
IDebugDisassemblyStream2 DE Representa um fluxo de instruções desmontadas de um documento.
IDebugDocument2 VS, DE Representa um documento fornecido pelo DE, especificando um nome e uma ID de classe (CLSID).
IDebugDocumentChecksum2 DE, EE Representa uma soma de verificação para um documento de depuração e permite passar a soma de verificação entre componentes.
IDebugDocumentContext2 VS, DE Representa um contexto de documento, uma posição dentro de um documento correspondente a uma instrução específica e contexto de código.
IDebugDocumentPosition2 VS, DE Representa uma posição geral dentro de um documento.
IDebugDocumentPositionOffset2 VS Representa uma posição em um arquivo de origem como um deslocamento de caracteres.
IDebugDocumentText2 VS, DE Representa um documento de texto fornecido pelo DE (derivado de IDebugDocument2), fornecendo o texto real.
IDebugDocumentTextEvents2 DE Enviado pelo DE para especificar alterações em um arquivo de origem que está na memória.

Eventos

Essas interfaces representam todos os eventos enviados entre o DE e o gerenciador de depuração de sessão (SDM).

Interface Implementado por Descrição
IDebugActivateDocumentEvent2 DE Enviado pelo DE para solicitar a abertura de um documento.
IDebugBeforeSymbolSearchEvent2 DE O mecanismo de depuração (DE) envia essa interface para o gerenciador de depuração de sessão (SDM) para definir a mensagem da barra de status durante o carregamento de símbolos.
IDebugBreakEvent2 DE Enviado pelo DE quando uma pausa no programa foi concluída.
IDebugBreakpointBoundEvent2 DE Enviado pelo DE quando um ponto de interrupção é vinculado.
IDebugBreakpointErrorEvent2 DE Enviado pelo DE quando um ponto de interrupção não consegue ser vinculado.
IDebugBreakpointEvent2 DE Enviado pelo DE quando um ponto de interrupção é atingido.
IDebugBreakpointUnboundEvent2 DE Enviado pelo DE quando um ponto de interrupção é desvinculado.
IDebugCanStopEvent2 DE Enviado pelo DE para determinar se ele deve parar em um local específico.
IDebugDocumentTextEvents2 DE Enviado pelo DE para especificar alterações em um arquivo de origem que está na memória.
IDebugEngineCreateEvent2 DE Enviado por cada nova instância do DE para indicar que está pronto para lidar com tarefas de depuração.
IDebugEntryPointEvent2 DE Enviado pelo DE para indicar que o programa que está sendo depurado está pronto para executar a primeira instrução.
IDebugErrorEvent2 DE Uma interface usada por outras interfaces de evento, que podem retornar um erro, para fornecer mensagens de erro legíveis por humanos.
IDebugEvent2 DE, PS Interface base da qual todas as outras interfaces de eventos são derivadas.
IDebugEventCallback2 VS Representa uma interface implementada pelo SDM para a qual os eventos (expressos como objetos que implementam uma interface de evento específica) são enviados.
IDebugExceptionEvent2 DE Enviado pelo DE quando ocorreu uma exceção no programa que está sendo depurado.
IDebugExpressionEvaluationCompleteEvent2 DE Enviado pelo DE quando uma avaliação de expressão assíncrona é concluída.
IDebugFindSymbolEvent2 OBSOLETE. NÃO USE.
IDebugInterceptExceptionCompleteEvent2 DE Enviado pelo DE quando o processamento de uma exceção interceptada tiver sido concluído.
IDebugLoadCompleteEvent2 DE Enviado pelo DE quando um programa tiver concluído o carregamento.
IDebugMessageEvent2 DE Enviado pelo DE para que o IDE exiba uma mensagem informativa para o usuário.
IDebugModuleLoadEvent2 DE Enviado pelo DE quando um módulo é carregado ou descarregado.
IDebugNoSymbolsEvent2 DE Sinaliza a interface do usuário do depurador do Visual Studio para avisar o usuário que os símbolos não puderam ser localizados para o executável iniciado.
IDebugOutputStringEvent2 DE Enviado pelo DE para que o IDE exiba uma cadeia de caracteres arbitrária.
IDebugPortEvents2 VS, DE Enviado por uma porta para comunicar eventos de porta a qualquer ouvinte.
IDebugProcessCreateEvent2 DE, PS Enviado pelo DE ou porta quando um processo foi criado.
IDebugProcessDestroyEvent2 DE, PS Enviado pelo DE ou porta quando um processo foi destruído.
IDebugProgramCreateEvent2 DE, PS Enviado pelo DE ou porta quando um programa foi criado.
IDebugProgramDestroyEvent2 DE, PS Enviado pelo DE ou porta quando um programa foi destruído.
IDebugProgramDestroyEventFlags2 DE Permite que um mecanismo de depuração substitua o comportamento padrão da interface do usuário do Visual Studio quando você encerra uma sessão de depuração.
IDebugProgramNameChangedEvent2 DE Enviado do mecanismo de depuração (DE) para o gerenciador de depuração de sessão (SDM) quando o nome de um programa é alterado.
IDebugPropertyCreateEvent2 DE Enviado pelo DE quando uma nova propriedade (representada pela IDebugProperty2 interface) foi criada.
IDebugPropertyDestroyEvent2 DE Enviado pelo DE quando um imóvel foi destruído.
IDebugReturnValueEvent2 DE Enviado pelo DE ao sair de ou sobre uma função para que o valor de retorno possa ser exibido corretamente.
IDebugSettingsCallback2 VS Permite que os mecanismos de depuração leiam as configurações de métrica remotamente.
IDebugStepCompleteEvent2 DE Enviado pelo DE quando uma etapa de entrada, término ou saída de uma instrução foi concluída.
IDebugSymbolSearchEvent2 DE Enviado pelo DE para indicar o sucesso ou falha no carregamento de símbolos para um módulo.
IDebugThreadCreateEvent2 DE Enviado pelo DE quando um thread foi criado.
IDebugThreadDestroyEvent2 DE Enviado pelo DE quando um thread foi destruído.
IDebugThreadNameChangedEvent2 DE Enviado pelo DE quando um thread mudou de nome.

Expressões

Essas interfaces representam expressões a serem avaliadas em um contexto particular.

Interface Implementado por Descrição
IDebugExpression2 DE Representa uma expressão a ser avaliada. Obtido da interface IDebugExpressionContext2 .
IDebugExpressionContext2 DE Representa um contexto no qual uma expressão é avaliada. Obtido da interface IDebugStackFrame2 .
IDebugExpressionEvaluationCompleteEvent2 DE Enviado pelo DE quando uma avaliação de expressão assíncrona é concluída.

Memória

Essas interfaces representam sequências de bytes na memória.

Interface Implementado por Descrição
IDebugMemoryBytes2 DE Representa uma sequência de bytes na memória que pode ser lida ou gravada.
IDebugMemoryContext2 DE Representa um local na memória de uma sequência de bytes.

Módulos

Essas interfaces representam um módulo, que corresponde a um arquivo executável ou .DLL.

Interface Implementado por Descrição
IDebugModule2 DE Representa um único executável ou DLL.
IDebugModule3 DE Representa um IDebugModule2 que oferece suporte a símbolos.
IDebugModuleLoadEvent2 DE Enviado pelo DE quando um módulo é carregado ou descarregado.
IDebugSourceServerModule DE Representa as informações do servidor de origem contidas em um arquivo PDB.
IEnumDebugModules2 DE Representa uma enumeração sobre um conjunto de módulos que são conhecidos por um IDebugProgram2.

Portos

Essas interfaces representam portos e fornecedores portuários.

Interface Implementado por Descrição
IDebugDefaultPort2 VS, PS Representa a porta padrão no computador local.
IDebugFirewallConfigurationCallback2 VS Habilita um mecanismo de depuração que usa DCOM para pedir à interface do usuário do Visual Studio para certificar-se de que o firewall não bloqueará a depuração remota.
IDebugPort2 VS, PS Representa uma porta.
IDebugPortEvents2 PS Enviado por uma porta para comunicar eventos de porta a qualquer ouvinte.
IDebugPortEx2 PS Representa uma porta que pode iniciar e encerrar processos.
IDebugPortNotify2 PS Usado para registrar e cancelar o registro de programas com uma porta; permite que a porta rastreie programas que estão sendo depurados no momento.
IDebugPortPicker PS Representa uma interface do usuário personalizada para selecionar a porta.
IDebugPortRequest2 VS Representa uma solicitação para uma porta a partir da qual uma nova porta será criada ou localizada.
IDebugPortSupplier2 PS Representa um fornecedor de portos.
IDebugPortSupplier3 PS Representa um fornecedor de portas que pode persistir (salvar em disco) informações sobre as portas que ele criou.
IDebugPortSupplierDescription2 PS Permite que a interface do usuário do Visual Studio exiba texto dentro da seção Informações de Transporte da caixa de diálogo Anexar ao Processo .
IDebugWindowsComputerPort2 VS Permite consultar informações sobre o computador de destino.
IEnumDebugPorts2 VS, PS Representa uma enumeração sobre um conjunto de portas.
IEnumDebugPortSuppliers2 VS Representa uma enumeração sobre um conjunto de fornecedores de porta.

Processos

Essas interfaces representam processos, um único executável que contém um ou mais programas.

Interface Implementado por Descrição
IDebugProcess2 PS, DE Representa um processo que está em execução em um computador.
IDebugProcess3 PS, DE Representa um processo que oferece suporte ativo à depuração (usado para substituir os métodos Step, Continue e Execute na interface IDebugProgram2 ).
IDebugProcessCreateEvent2 DE, PS Enviado pelo DE ou porta quando um processo foi criado.
IDebugProcessDestroyEvent2 DE, PS Enviado pelo DE ou porta quando um processo foi destruído.
IDebugProcessEx2 PS Representa um processo que deve controlar qual sessão está anexada a ele.
IEnumDebugProcesses2 PS Representa uma enumeração de um conjunto de processos em uma porta.

Programas

Essas interfaces representam programas, unidades lógicas de execução que não correspondem necessariamente a um executável ou módulo físico.

Interface Implementado por Descrição
IDebugEngineProgram2 DE Representa um IDebugProgram2 que precisa trabalhar em conjunto com outros programas que estão sendo depurados ao mesmo tempo.
IDebugProgram2 DE, PS Representa uma unidade lógica de execução.
IDebugProgramCreateEvent2 DE, PS Enviado pelo DE ou porta quando um programa foi criado.
IDebugProgramDestroyEvent2 DE, PS Enviado pelo DE ou porta quando um programa foi destruído.
IDebugProgramEngines2 DE, PS Representa um IDebugProgramNode2 que pode ser manipulado por vários mecanismos de depuração.
IDebugProgramEx2 PS Representa um IDebugProgram2 que deve ser capaz de controlar qual sessão está anexada a ele.
IDebugProgramHost2 DE, PS Representa um IDebugProgram2 que pode retornar informações sobre o processo no qual ele está sendo executado.
IDebugProgramNode2 DE, PS Representa um programa que pode ser depurado.
IDebugProgramNodeAttach2 DE, PS Permite que um nó do programa seja notificado de uma tentativa de anexação ao programa associado.
IDebugProgramProvider2 DE Fornece uma maneira para o SDM consultar um DE sobre os programas controlados por esse DE.
IDebugProgramPublisher2 VS Usado por DEs para registrar programas com o SDM para mostrar que eles estão sendo depurados.
IDebugProviderProgramNode2 DE, PS Representa um IDebugProgramNode2 que pode marshal interfaces através de limites de thread ou processo.
IEnumDebugPrograms2 DE, PS Representa uma enumeração de um conjunto de programas.

Propriedades

Essas interfaces representam propriedades, um valor associado a um contexto específico, geralmente o resultado de uma avaliação de expressão.

Interface Implementado por Descrição
IDebugCustomViewer EE Representa um IDebugProperty2 que pode exibir seu valor de forma personalizada.
IDebugProperty2 DE Representa um valor de um quadro de pilha, documento ou o resultado de uma avaliação de expressão.
IDebugProperty3 DE Representa um IDebugProperty2 que oferece suporte a cadeias de caracteres arbitrariamente longas.
IDebugPropertyCreateEvent2 DE Enviado pelo DE quando uma nova propriedade (representada pela interface IDebugProperty2 ) foi criada.
IDebugPropertyDestroyEvent2 DE Enviado pelo DE quando um imóvel foi destruído.
IDebugReference2 DE Representa uma referência a uma propriedade que pode existir fora de qualquer quadro de pilha específico.
IEnumDebugPropertyInfo2 DE Representa uma enumeração sobre um conjunto de estruturas DEBUG_PROPERTY_INFO que descrevem variáveis, registros, parâmetros e expressões.
IEnumDebugReferenceInfo2 DE Representa uma enumeração sobre um conjunto de estruturas DEBUG_REFERENCE_INFO.

Quadros de pilhas

Essas interfaces representam um quadro de pilha, um contexto no qual ocorreu um ponto de interrupção ou exceção.

Interface Implementado por Descrição
IDebugStackFrame2 DE Representa um contexto no qual ocorreu um ponto de interrupção ou exceção.
IDebugStackFrame3 DE Representa um IDebugStackFrame2 que pode manipular exceções interceptadas.
IEnumCodePaths2 DE Representa uma enumeração sobre o conjunto de estruturas CODE_PATH que especificam a sequência de chamada de função usada para chegar a um quadro de pilha específico.
IEnumDebugFrameInfo2 DE Representa uma enumeração sobre um conjunto de estruturas FRAMEINFO, que descrevem quadros de pilha.

Threads

Essas interfaces representam threads e seus eventos associados.

Interface Implementado por Descrição
IDebugThread2 DE Representa um thread de execução.
IDebugThreadCreateEvent2 DE Enviado pelo DE quando um thread foi criado.
IDebugThreadDestroyEvent2 DE Enviado pelo DE quando um thread foi destruído.
IDebugThreadNameChangedEvent2 DE Enviado pelo DE quando um thread mudou de nome.
IEnumDebugThreads2 DE Representa uma enumeração sobre um conjunto de threads.

Visualizadores de tipo

Essas interfaces fornecem suporte para visualizadores de tipo. Essas interfaces são normalmente implementadas por um avaliador de expressão.

Interface Implementado por Descrição
IEEDataStorage EE Representa uma matriz de bytes a ser apresentada a um visualizador de tipo.
IPropertyProxyEESide EE Fornece métodos para obter acesso aos dados a serem passados para um visualizador de tipo.
IPropertyProxyProvider EE Representa uma propriedade que fornece acesso a implementações IPropertyProxyEESide .

Confira também