Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esta sección incluye:
Información general del motor de depurador de
uso de la API del motor de depurador
escribir extensiones de DbgEng
personalizar la salida del depurador mediante DML
usar JavaScript para ampliar las funcionalidades del depurador
Desarrollo de módulos de extensibilidad de transporte de KDNET
En esta documentación se describe cómo usar interfaces como las proporcionadas por el motor del depurador para escribir extensiones que se ejecutarán en WinDbg, KD, CDB y NTSD. Estas extensiones del depurador se pueden usar al realizar la depuración en modo de usuario o en modo kernel.
motor de depurador de
El motor del depurador proporciona una interfaz para examinar y manipular destinos de depuración en modo de usuario y modo kernel.
El motor del depurador puede adquirir destinos, establecer puntos de interrupción, supervisar eventos, símbolos de consulta, leer y escribir memoria, y controlar subprocesos y procesos en un destino.
Puede usar el motor del depurador para escribir bibliotecas de extensiones del depurador y aplicaciones independientes. Estas aplicaciones son aplicaciones del motor de depurador. Una aplicación de motor de depurador que usa la funcionalidad completa del motor del depurador es una depurador. Por ejemplo, WinDbg, CDB, NTSD y KD son depuradores; El motor del depurador proporciona el núcleo de su funcionalidad.
La API del motor de depurador se especifica mediante los prototipos del archivo de encabezado dbgeng.h.
Para obtener más información, consulte información general del motor de depurador y using the Debugger Engine API.
extensiones de
Puede crear sus propios comandos de depuración escribiendo y creando un archivo DLL de extensión. Por ejemplo, es posible que quiera escribir un comando de extensión para mostrar una estructura de datos compleja.
Hay tres tipos diferentes de archivos DLL de extensión del depurador:
archivos DLL de extensión DbgEng. Se basan en los prototipos del archivo de encabezado dbgeng.h. Cada DLL de este tipo puede exportar comandos de extensión dbgEng. Estos comandos de extensión usan la API del motor de depurador y también pueden usar la API WdbgExts.
Para obtener más información, consulte Escritura de extensiones de DbgEng.
archivos DLL de extensión EngExtCpp. Se basan en los prototipos de los archivos de encabezado engextcpp.h y dbgeng.h. Cada DLL de este tipo puede exportar comandos de extensión dbgEng. Estos comandos de extensión usan la API del motor de depurador y el marco de extensión EngExtCpp, y también pueden usar la API WdbgExts.
archivos DLL de extensión WdbgExts. Se basan en los prototipos del archivo de encabezado wdbgexts.h. Cada DLL de este tipo exporta uno o varios comandos de extensión WdbgExts. Estos comandos de extensión usan exclusivamente la API WdbgExts. Para obtener más información, vea Escritura de extensiones WdbgExts.
La API de DbgEng se puede usar para crear extensiones o aplicaciones independientes. La API WdbgExts contiene un subconjunto de la funcionalidad de la API del motor de depurador y solo las extensiones pueden usarse.
Todas las extensiones del depurador deben compilarse y compilarse con Visual Studio.
Los ejemplos de código de extensión se instalan como parte del paquete Herramientas de depuración para Windows si realiza una instalación personalizada y selecciona el componente SDK de y todos sus subcomponentes. Se pueden encontrar en el subdirectorio sdk\samples del directorio de instalación herramientas de depuración para Windows.
La manera más fácil de escribir nuevas extensiones del depurador es estudiar las extensiones de ejemplo. Cada extensión de ejemplo incluye archivos makefile y sources para su uso con la utilidad Build. Ambos tipos de extensiones se representan en los ejemplos.
escribir extensiones del depurador de análisis personalizado
Puede ampliar las funcionalidades del comando de !analyze depurador escribiendo un complemento de extensión de análisis. Al proporcionar un complemento de extensión de análisis, puede participar en el análisis de una comprobación de errores o una excepción de una manera específica de su propio componente o aplicación. Al escribir un complemento de extensión de análisis, también escribe un archivo de metadatos que describe las situaciones en las que desea que se llame al complemento. Cuando !analyze se ejecuta, localiza, carga y ejecuta los complementos de extensión de análisis adecuados. Para obtener más información, consulte Escritura de extensiones de depurador de análisis personalizado
personalizar la salida del depurador mediante DML
Puede personalizar la salida del depurador mediante DML. Para obtener más información, vea Personalización de la salida del depurador mediante DML.
usar JavaScript para ampliar las funcionalidades del depurador
Use JavaScript para crear scripts que comprendan los objetos del depurador y amplíen y personalicen las funcionalidades del depurador. Los proveedores de JavaScript puenten un lenguaje de scripting al modelo de objetos interno del depurador. El proveedor de scripting del depurador de JavaScript permite el uso de JavaScript con el depurador. Para obtener más información, consulte scripting del depurador de JavaScript.
Desarrollo de módulos de extensibilidad de transporte de KDNET
El transporte de KDNET se puede extender para ejecutarse en cualquier hardware mediante el uso de un archivo DLL del módulo de extensibilidad del controlador de hardware independiente. Los proveedores de tarjetas de red desarrollan módulos de extensibilidad de transporte KDNET para agregar compatibilidad de depuración de kernel a tarjetas de red específicas.
KDNET es un transporte de depuración de kernel que permite la depuración de kernel de ventanas a través de una red. Está diseñado para que la capa de compatibilidad de hardware esté integrada en un módulo independiente del procesamiento de paquetes de red y la capa de interfaz de kernel. Esta capa de compatibilidad con controladores de hardware se denomina módulo de extensibilidad KDNET. Para obtener más información, consulte Desarrollo de módulos de extensibilidad de transporte de KDNET.