Interfaces básicas

Las interfaces siguientes son las interfaces principales para extender el depurador mediante el SDK de Visual Studio.

Debate

Estas interfaces se usan principalmente para crear el motor de depuración (DE). Se organizan aquí por categorías:

Puntos de interrupción

Estas interfaces están relacionadas con la implementación y el seguimiento de puntos de interrupción.

Interfaz Implementado por Descripción
IDebugBoundBreakpoint2 DE Representa un punto de interrupción enlazado a una ubicación de memoria.
IDebugBreakpointBoundEvent2 DE Enviado por el DE cuando un punto de interrupción está enlazado a una ubicación de memoria.
IDebugBreakpointChecksumRequest2 VS Representa una suma de comprobación de documento para una solicitud de punto de interrupción.
IDebugBreakpointErrorEvent2 DE Enviado por el DE cuando no se puede enlazar un punto de interrupción a una ubicación de memoria.
IDebugBreakpointEvent2 DE Enviado por el DE cuando se alcanza un punto de interrupción.
IDebugBreakpointRequest2 VS Representa una solicitud para un punto de interrupción; se usa para crear un punto de interrupción pendiente.
IDebugBreakpointRequest3 VS Representa una solicitud para un punto de interrupción; se usa para crear un punto de interrupción pendiente.
IDebugBreakpointResolution2 DE Representa la información utilizada para enlazar un punto de interrupción.
IDebugBreakpointUnboundEvent2 DE Enviado por el DE cuando un punto de interrupción está desenlazándose de una ubicación de memoria.
IDebugErrorBreakpoint2 DE Representa un punto de interrupción no válido (devuelto por IDebugBreakpointErrorEvent2).
IDebugErrorBreakpointResolution2 DE Representa la información de resolución sobre un punto de interrupción no válido.
IDebugFunctionPosition2 DE Representa una posición en una función donde se establece un punto de interrupción.
IDebugPendingBreakpoint2 DE Representa un punto de interrupción que se va a enlazar; se usa para crear un punto de interrupción enlazado.
IEnumDebugBoundBreakpoints2 DE Representa una enumeración sobre un conjunto de puntos de interrupción enlazados.
IEnumDebugErrorBreakpoints2 DE Representa una enumeración sobre un conjunto de puntos de interrupción que no se pudieron enlazar a una ubicación de memoria.

Contextos

Estas interfaces representan varios tipos de contextos dentro del programa que se está depurando.

Interfaz Implementado por Descripción
IDebugCodeContext2 DE Representa la posición inicial de una instrucción de código.
IDebugCodeContext3 DE Amplía la interfaz IDebugCodeContext2 para habilitar la recuperación de interfaces de módulo y proceso.
IDebugDocumentContext2 VS, DE Representa una posición en un documento.
IDebugExpressionContext2 DE Representa el contexto en el que se va a evaluar una expresión.
IDebugMemoryContext2 DE Representa la ubicación inicial en la memoria de una colección de bytes.
IDebugStackFrame2 DE Representa un contexto de marco de pila en un punto de interrupción o una excepción.
IDebugStackFrame3 DE Representa un contexto de marco de pila en un punto de interrupción o una excepción.
IEnumDebugCodeContexts2 DE Representa una enumeración sobre un conjunto de contextos de código.

Servidor principal

Estas interfaces representan la máquina en la que se está depurando un programa. Visual Studio implementa estos elementos, pero los motores de depuración pueden llamar a ellos.

Interfaz Implementado por Descripción
IDebugCoreServer2 VS Proporciona acceso a puertos y proveedores de puertos, así como información sobre el equipo.
IDebugCoreServer3 VS Representa un IDebugCoreServer2 que admite la depuración remota.

Motores de depuración

Estas interfaces representan motores de depuración y sus eventos asociados.

Interfaz Implementado por Descripción
IDebugEngine2 DE Representa un motor de depuración personalizado.
IDebugEngine3 DE Representa un motor de depuración personalizado que admite la carga de símbolos, JustMyCode y excepciones.
IDebugEngineCreateEvent2 DE Enviado por cada nueva instancia del DE para indicar que está listo para controlar las tareas de depuración.
IDebugEngineLaunch2 DE Representa un motor de depuración personalizado que admite el inicio de programas.
IDebugProgramEngines2 DE, PS Representa un nodo de programa que controla varios motores de depuración.
IDebugQueryEngine2 DE Proporciona una manera de que el SDM obtenga una interfaz al motor de depuración desde un subproceso, programa o marco de pila.

Documentos

Estas interfaces representan documentos (archivos de origen) y sus elementos asociados.

Interfaz Implementado por Descripción
IDebugActivateDocumentEvent2 DE Enviado por el DE para solicitar que se abra un documento.
IDebugDisassemblyStream2 DE Representa una secuencia de instrucciones desensambbladas de un documento.
IDebugDocument2 VS, DE Representa un documento proporcionado por el DE, especificando un nombre y un identificador de clase (CLSID).
IDebugDocumentChecksum2 DE, EE Representa una suma de comprobación de un documento de depuración y permite pasar la suma de comprobación entre los componentes.
IDebugDocumentContext2 VS, DE Representa un contexto de documento, una posición dentro de un documento correspondiente a una instrucción y contexto de código concretos.
IDebugDocumentPosition2 VS, DE Representa una posición general dentro de un documento.
IDebugDocumentPositionOffset2 VS Representa una posición en un archivo de origen como desplazamiento de caracteres.
IDebugDocumentText2 VS, DE Representa un documento de texto proporcionado por el DE (derivado de IDebugDocument2), proporcionando el texto real.
IDebugDocumentTextEvents2 DE Enviado por el DE para especificar los cambios en un archivo de origen que está en memoria.

Eventos

Estas interfaces representan todos los eventos que se envían entre el DE y el administrador de depuración de sesión (SDM).

Interfaz Implementado por Descripción
IDebugActivateDocumentEvent2 DE Enviado por el DE para solicitar que se abra un documento.
IDebugBeforeSymbolSearchEvent2 DE El motor de depuración (DE) envía esta interfaz al administrador de depuración de sesión (SDM) para establecer el mensaje de la barra de estado durante las cargas de símbolos.
IDebugBreakEvent2 DE Enviado por el DE cuando se ha completado una interrupción en el programa.
IDebugBreakpointBoundEvent2 DE Enviado por el DE cuando se enlaza un punto de interrupción.
IDebugBreakpointErrorEvent2 DE Enviado por el DE cuando no se puede enlazar un punto de interrupción.
IDebugBreakpointEvent2 DE Enviado por el DE cuando se alcanza un punto de interrupción.
IDebugBreakpointUnboundEvent2 DE Enviado por el DE cuando un punto de interrupción está desenlazado.
IDebugCanStopEvent2 DE Enviado por el DE para determinar si debe detenerse en una ubicación determinada.
IDebugDocumentTextEvents2 DE Enviado por el DE para especificar los cambios en un archivo de origen que está en memoria.
IDebugEngineCreateEvent2 DE Enviado por cada nueva instancia del DE para indicar que está listo para controlar las tareas de depuración.
IDebugEntryPointEvent2 DE Enviado por el DE para indicar que el programa que se está depurando está listo para ejecutar la primera instrucción.
IDebugErrorEvent2 DE Interfaz que usan otras interfaces de eventos, que pueden devolver un error, para proporcionar mensajes de error legibles.
IDebugEvent2 DE, PS Interfaz base a partir de la cual se derivan todas las demás interfaces de eventos.
IDebugEventCallback2 VS Representa una interfaz implementada por el SDM en la que se envían eventos (expresados como objetos que implementan una interfaz de eventos determinada).
IDebugExceptionEvent2 DE Enviado por el DE cuando se ha producido una excepción en el programa que se está depurando.
IDebugExpressionEvaluationCompleteEvent2 DE Enviado por el DE cuando se completa una evaluación de expresiones asincrónicas.
IDebugFindSymbolEvent2 OBSOLETO. NO USE.
IDebugInterceptExceptionCompleteEvent2 DE Enviado por el DE cuando se ha completado el procesamiento de una excepción interceptada.
IDebugLoadCompleteEvent2 DE Enviado por el DE cuando se ha completado la carga de un programa.
IDebugMessageEvent2 DE Enviado por el DE para que el IDE muestre un mensaje informativo al usuario.
IDebugModuleLoadEvent2 DE Enviado por el DE cuando se carga o descarga un módulo.
IDebugNoSymbolsEvent2 DE Indica a la interfaz de usuario del depurador de Visual Studio que advierte al usuario de que no se pudieron encontrar símbolos para el ejecutable iniciado.
IDebugOutputStringEvent2 DE Enviado por el DE para que el IDE muestre una cadena arbitraria.
IDebugPortEvents2 VS, DE Enviado por un puerto para comunicar eventos de puerto a cualquier agente de escucha.
IDebugProcessCreateEvent2 DE, PS Enviado por el DE o el puerto cuando se ha creado un proceso.
IDebugProcessDestroyEvent2 DE, PS Enviado por el DE o el puerto cuando se ha destruido un proceso.
IDebugProgramCreateEvent2 DE, PS Enviado por el DE o el puerto cuando se ha creado un programa.
IDebugProgramDestroyEvent2 DE, PS Enviado por el DE o el puerto cuando se ha destruido un programa.
IDebugProgramDestroyEventFlags2 DE Permite que un motor de depuración invalide el comportamiento predeterminado de la interfaz de usuario de Visual Studio al finalizar una sesión de depuración.
IDebugProgramNameChangedEvent2 DE Se envía desde el motor de depuración (DE) al administrador de depuración de sesión (SDM) cuando cambia el nombre de un programa.
IDebugPropertyCreateEvent2 DE Enviado por el DE cuando se ha creado una nueva propiedad (representada por la IDebugProperty2 interfaz).
IDebugPropertyDestroyEvent2 DE Enviado por el DE cuando se ha destruido una propiedad.
IDebugReturnValueEvent2 DE Enviado por el DE al salir o encima de una función para que el valor devuelto se pueda mostrar correctamente.
IDebugSettingsCallback2 VS Permite a los motores de depuración leer la configuración de métricas de forma remota.
IDebugStepCompleteEvent2 DE Enviado por el DE cuando se ha completado una instrucción paso a paso por encima o fuera de una instrucción.
IDebugSymbolSearchEvent2 DE Enviado por el DE para indicar el éxito o error de carga de símbolos para un módulo.
IDebugThreadCreateEvent2 DE Enviado por el DE cuando se ha creado un subproceso.
IDebugThreadDestroyEvent2 DE Enviado por el DE cuando se ha destruido un subproceso.
IDebugThreadNameChangedEvent2 DE Enviado por el DE cuando un subproceso ha cambiado su nombre.

Expresiones

Estas interfaces representan expresiones que se van a evaluar en un contexto determinado.

Interfaz Implementado por Descripción
IDebugExpression2 DE Representa una expresión que se va a evaluar. Obtenido de la interfaz IDebugExpressionContext2 .
IDebugExpressionContext2 DE Representa un contexto en el que se evalúa una expresión. Obtenido de la interfaz IDebugStackFrame2 .
IDebugExpressionEvaluationCompleteEvent2 DE Enviado por el DE cuando se completa una evaluación de expresiones asincrónicas.

Memoria

Estas interfaces representan secuencias de bytes en memoria.

Interfaz Implementado por Descripción
IDebugMemoryBytes2 DE Representa una secuencia de bytes en la memoria en la que se puede leer o escribir.
IDebugMemoryContext2 DE Representa una ubicación en memoria de una secuencia de bytes.

Módulos

Estas interfaces representan un módulo, que corresponde a un archivo ejecutable o .DLL.

Interfaz Implementado por Descripción
IDebugModule2 DE Representa un único archivo ejecutable o DLL.
IDebugModule3 DE Representa un IDebugModule2 que admite símbolos.
IDebugModuleLoadEvent2 DE Enviado por el DE cuando se carga o descarga un módulo.
IDebugSourceServerModule DE Representa la información del servidor de origen contenida en un archivo PDB.
IEnumDebugModules2 DE Representa una enumeración sobre un conjunto de módulos conocidos por IDebugProgram2.

Puertos

Estas interfaces representan puertos y proveedores de puertos.

Interfaz Implementado por Descripción
IDebugDefaultPort2 VS, PS Representa el puerto predeterminado en el equipo local.
IDebugFirewallConfigurationCallback2 VS Habilita un motor de depuración que usa DCOM para pedir a la interfaz de usuario de Visual Studio que asegúrese de que el firewall no bloqueará la depuración remota.
IDebugPort2 VS, PS Representa un puerto.
IDebugPortEvents2 PS Enviado por un puerto para comunicar eventos de puerto a cualquier agente de escucha.
IDebugPortEx2 PS Representa un puerto que puede iniciar y finalizar procesos.
IDebugPortNotify2 PS Se usa para registrar y anular el registro de programas con un puerto; permite que el puerto realice un seguimiento de los programas que se están depurando actualmente.
IDebugPortPicker PS Representa una interfaz de usuario personalizada para seleccionar el puerto.
IDebugPortRequest2 VS Representa una solicitud de un puerto desde el que se creará o ubicará un puerto nuevo.
IDebugPortSupplier2 PS Representa un proveedor de puertos.
IDebugPortSupplier3 PS Representa un proveedor de puertos que pueden conservar (guardar en disco) información sobre los puertos que creó.
IDebugPortSupplierDescription2 PS Permite que la interfaz de usuario de Visual Studio muestre texto dentro de la sección Información de transporte del cuadro de diálogo Asociar al proceso .
IDebugWindowsComputerPort2 VS Permite consultar información sobre el equipo de destino.
IEnumDebugPorts2 VS, PS Representa una enumeración sobre un conjunto de puertos.
IEnumDebugPortSuppliers2 VS Representa una enumeración sobre un conjunto de proveedores de puertos.

Procesos

Estas interfaces representan procesos, un único ejecutable que contiene uno o varios programas.

Interfaz Implementado por Descripción
IDebugProcess2 PS, DE Representa un proceso que se ejecuta en un equipo.
IDebugProcess3 PS, DE Representa un proceso que admite activamente la depuración (se usa para reemplazar los métodos Step, Continue y Execute en la interfaz IDebugProgram2 ).
IDebugProcessCreateEvent2 DE, PS Enviado por el DE o el puerto cuando se ha creado un proceso.
IDebugProcessDestroyEvent2 DE, PS Enviado por el DE o el puerto cuando se ha destruido un proceso.
IDebugProcessEx2 PS Representa un proceso que debe realizar un seguimiento de la sesión que está asociada.
IEnumDebugProcesses2 PS Representa una enumeración de un conjunto de procesos en un puerto.

Programas

Estas interfaces representan programas, unidades lógicas de ejecución que no corresponden necesariamente a un ejecutable físico o módulo.

Interfaz Implementado por Descripción
IDebugEngineProgram2 DE Representa un IDebugProgram2 que debe funcionar en conjunto con otros programas que se depuran al mismo tiempo.
IDebugProgram2 DE, PS Representa una unidad lógica de ejecución.
IDebugProgramCreateEvent2 DE, PS Enviado por el DE o el puerto cuando se ha creado un programa.
IDebugProgramDestroyEvent2 DE, PS Enviado por el DE o el puerto cuando se ha destruido un programa.
IDebugProgramEngines2 DE, PS Representa un IDebugProgramNode2 que varios motores de depuración pueden controlar.
IDebugProgramEx2 PS Representa un IDebugProgram2 que debe ser capaz de realizar un seguimiento de la sesión que está asociada a ella.
IDebugProgramHost2 DE, PS Representa un IDebugProgram2 que puede devolver información sobre el proceso en el que se ejecuta.
IDebugProgramNode2 DE, PS Representa un programa que se puede depurar.
IDebugProgramNodeAttach2 DE, PS Permite que se notifique a un nodo de programa un intento de adjuntar al programa asociado.
IDebugProgramProvider2 DE Proporciona una manera de que el SDM consulte un DE sobre los programas controlados por ese DE.
IDebugProgramPublisher2 VS Lo usan los DE para registrar programas con el SDM para mostrar que se están depurando.
IDebugProviderProgramNode2 DE, PS Representa un IDebugProgramNode2 que puede serializar interfaces entre límites de subprocesos o procesos.
IEnumDebugPrograms2 DE, PS Representa una enumeración de un conjunto de programas.

Propiedades

Estas interfaces representan propiedades, un valor asociado a un contexto determinado, normalmente el resultado de una evaluación de expresiones.

Interfaz Implementado por Descripción
IDebugCustomViewer EE Representa un IDebugProperty2 que puede mostrar su valor de forma personalizada.
IDebugProperty2 DE Representa un valor de un marco de pila, un documento o el resultado de una evaluación de expresiones.
IDebugProperty3 DE Representa un IDebugProperty2 que admite cadenas arbitrariamente largas.
IDebugPropertyCreateEvent2 DE Enviado por el DE cuando se ha creado una nueva propiedad (representada por la interfaz IDebugProperty2 ).
IDebugPropertyDestroyEvent2 DE Enviado por el DE cuando se ha destruido una propiedad.
IDebugReference2 DE Representa una referencia a una propiedad que puede existir fuera de cualquier marco de pila determinado.
IEnumDebugPropertyInfo2 DE Representa una enumeración sobre un conjunto de estructuras de DEBUG_PROPERTY_INFO que describen variables, registros, parámetros y expresiones.
IEnumDebugReferenceInfo2 DE Representa una enumeración sobre un conjunto de estructuras de DEBUG_REFERENCE_INFO .

Marcos de pila

Estas interfaces representan un marco de pila, un contexto en el que se ha producido un punto de interrupción o una excepción.

Interfaz Implementado por Descripción
IDebugStackFrame2 DE Representa un contexto en el que se ha producido un punto de interrupción o una excepción.
IDebugStackFrame3 DE Representa un IDebugStackFrame2 que puede controlar las excepciones interceptadas.
IEnumCodePaths2 DE Representa una enumeración sobre el conjunto de estructuras de CODE_PATH que especifican la secuencia de llamadas de función usada para llegar a un marco de pila determinado.
IEnumDebugFrameInfo2 DE Representa una enumeración sobre un conjunto de estructuras FRAMEINFO, que describen los marcos de pila.

Subprocesos

Estas interfaces representan subprocesos y sus eventos asociados.

Interfaz Implementado por Descripción
IDebugThread2 DE Representa un subproceso de ejecución.
IDebugThreadCreateEvent2 DE Enviado por el DE cuando se ha creado un subproceso.
IDebugThreadDestroyEvent2 DE Enviado por el DE cuando se ha destruido un subproceso.
IDebugThreadNameChangedEvent2 DE Enviado por el DE cuando un subproceso ha cambiado su nombre.
IEnumDebugThreads2 DE Representa una enumeración sobre un conjunto de subprocesos.

Visualizadores de tipos

Estas interfaces proporcionan compatibilidad con los visualizadores de tipos. Normalmente, estas interfaces se implementan mediante un evaluador de expresiones.

Interfaz Implementado por Descripción
IEEDataStorage EE Representa una matriz de bytes que se va a presentar a un visualizador de tipos.
IPropertyProxyEESide EE Proporciona métodos para obtener acceso a los datos que se van a pasar a un visualizador de tipos.
IPropertyProxyProvider EE Representa una propiedad que proporciona acceso a las implementaciones de IPropertyProxyEESide .

Consulte también