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:
-
As entidades que podem implementar as interfaces são:
Mecanismo de depuração (DE)
Fornecedor Portuário (PS)
Avaliador de Expressão (EE)
Visual Studio (VS)
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 . |