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:
-
Las entidades que pueden implementar las interfaces son:
Motor de depuración (DE)
Proveedor de puertos (PS)
Evaluador de expresiones (EE)
Visual Studio (VS)
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 . |