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.
En este artículo se explica cómo empezar con la depuración de Windows utilizando WinDbg y otras herramientas de depuración. Aprenderá a:
- Instalación del depurador y configuración de sistemas de host y destino
- Configura tu entorno de depuración
- Master essential debugging techniques for kernel-mode and user-mode scenarios (Técnicas de depuración esenciales maestras para escenarios en modo kernel y modo de usuario)
Nota:
Si desea analizar un volcado de memoria en su lugar, consulte Extracción de información de un archivo de volcado de memoria.
Para empezar con la depuración de Windows, complete los siguientes pasos.
1. Instalar el depurador de Windows
Instale WinDbg para empezar a depurar aplicaciones y controladores de Windows. Para ver los pasos de instalación detallados, consulte Instalación de WinDbg.
2. Identificar los sistemas host y de destino
Normalmente, se usan dos sistemas informáticos independientes para la depuración porque el proceso suele pausar la ejecución de instrucciones en el procesador. El depurador se ejecuta en el sistema host y el código que desea depurar se ejecuta en el sistema de destino .
Host <--------------------------------------------------> Target
En algunas situaciones, puede usar una máquina virtual como segundo sistema. Por ejemplo, una PC virtual se puede ejecutar en la misma PC que el código que necesita depurar. Sin embargo, si el código se comunica con hardware de bajo nivel, es posible que el uso de un equipo virtual no sea el mejor enfoque. Para obtener más información, consulte Configurar la depuración de red de una máquina virtual - KDNET.
3. Determinación del tipo del depurador: modo kernel o modo de usuario
A continuación, determine si se va a usar el modo kernel o la depuración en modo de usuario.
El sistema operativo y los programas con privilegios se ejecutan en modo kernel. El código en modo kernel tiene permiso para acceder a cualquier parte del sistema y no está restringido como el código en modo de usuario. El código en modo kernel puede acceder a cualquier parte de cualquier otro proceso que se ejecute en modo de usuario o en modo kernel. Gran parte de la funcionalidad principal del sistema operativo y muchos controladores de dispositivos de hardware se ejecutan en modo kernel.
Las aplicaciones y subsistemas del equipo se ejecutan en modo de usuario. Los procesos que se ejecutan en modo de usuario lo hacen dentro de sus propios espacios de direcciones virtuales. Están restringidos a obtener acceso directo a muchas partes del sistema, incluido el hardware del sistema, la memoria que no está asignada para su uso y otras partes del sistema que podrían poner en peligro la integridad del sistema. Los procesos que se ejecutan en modo de usuario están aislados eficazmente del sistema y de otros procesos en modo de usuario, por lo que no pueden interferir con estos recursos.
Si el objetivo es depurar un controlador, determine si el controlador es un controlador en modo kernel o un controlador en modo de usuario. los controladores Windows Driver Model (WDM) y Kernel-Mode Driver Framework (KMDF) son controladores en modo kernel. Como sugiere el nombre, los controladores de User-Mode Driver Framework (UMDF) son controladores en modo de usuario.
Para algunos problemas, puede ser difícil determinar en qué modo se ejecuta el código. En ese caso, es posible que tenga que elegir un modo y ver qué información está disponible en ese modo. Algunos problemas requieren el uso del depurador tanto en modo de usuario como en modo kernel.
Dependiendo de en qué modo depure, es posible que tenga que configurar y usar los depuradores de diferentes maneras. Algunos comandos de depuración funcionan igual en ambos modos y algunos comandos funcionan de forma diferente.
Pasos siguientes para la depuración en modo kernel
- Introducción a WinDbg (modo kernel): configuración completa y primera sesión de depuración
- Depurar controladores universales: laboratorio paso a paso (modo kernel de eco) - Taller práctico con controlador de eco
- Depuración de controladores: laboratorio paso a paso (modo de kernel Sysvad) - laboratorio práctico sobre controladores de audio
Pasos siguientes para la depuración en modo de usuario
- Introducción a WinDbg (modo de usuario): configuración completa y primera sesión de depuración
4. Elegir el entorno del depurador
El depurador de WinDbg funciona bien en la mayoría de las situaciones, pero hay ocasiones en las que es posible que quiera usar otro depurador, como depuradores de consola para la automatización o Visual Studio. Para obtener más información, consulte Entornos de depuración.
5. Determinar cómo conectar el destino y el host
Normalmente, se conectan los sistemas de destino y host mediante una red Ethernet. Si está realizando un trabajo de incorporación temprana o no tiene una conexión Ethernet en un dispositivo, hay disponibles otras opciones de conexión de red. Para obtener más información, consulte estos artículos:
- Configurar automáticamente la depuración del kernel de red KDNET
- Configurar la depuración de red de una máquina virtual - KDNET
6. Elija herramientas de depuración de 32 o 64 bits
Tanto si necesita un depurador de 32 bits como de 64 bits depende de la versión de Windows que se ejecute en los sistemas host y de destino y si está depurando código de 32 o 64 bits. Para obtener más información, consulte Elección de herramientas de depuración de 32 o 64 bits.
7. Configurar símbolos
Para usar todas las funciones avanzadas que proporciona WinDbg, debe cargar los símbolos adecuados. Si no configura correctamente los símbolos, recibirá mensajes que indican que los símbolos no están disponibles al intentar usar la funcionalidad que depende de los símbolos. Para obtener más información, vea Symbols for Windows debugging.
8. Configuración del código fuente
Si el objetivo es depurar su propio código fuente, debe configurar una ruta de acceso al código fuente. Para obtener más información, consulte Ruta de acceso de origen.
9. Familiarícese con el funcionamiento del depurador
En la sección Operación del depurador de esta documentación se describe la operación del depurador para varias tareas. Por ejemplo, Mantener un archivo de registro en WinDbg describe cómo WinDbg puede escribir un archivo de registro que registra la sesión de depuración.
10. Familiarícese con las técnicas de depuración
Las técnicas de depuración estándar se aplican a la mayoría de los escenarios de depuración y ejemplos incluyen establecer puntos de interrupción, inspeccionar la pila de llamadas y buscar una pérdida de memoria. Las técnicas de depuración especializadas se aplican a determinadas tecnologías o tipos de código. Entre los ejemplos se incluyen depuración de Plug and Play, depuración de KMDF y depuración de RPC.
11. Usar los comandos de referencia del depurador
Utiliza distintos comandos de depuración mientras trabaja en el depurador. Para obtener ayuda sobre cualquier comando durante la depuración, use el comando .hh seguido del nombre del comando.
Ejemplos:
.hh bp # Get help on breakpoint commands
.hh k # Get help on call stack commands
Para obtener una lista completa de los comandos disponibles, consulte Referencia del depurador.
12. Uso de extensiones de depuración para tecnologías específicas
Use varias extensiones de depuración para analizar estructuras de datos específicas del dominio. Para obtener más información, consulte Extensiones especializadas. Para obtener información sobre cómo cargar extensiones del depurador, consulte Carga de los archivos DLL de extensión del depurador.
13. Obtenga información sobre los fundamentos internos de Windows relacionados
En esta documentación se da por supuesto que tiene conocimientos sobre los componentes fundamentales del sistema Windows. Para obtener más información sobre Windows internos, incluido el uso de memoria, el contexto, los subprocesos y los procesos, revise recursos como Windows Internals por Pavel Yosifovich, Mark E. Russinovich, David A. Solomon y Alex Ionescu.
14. Revisión de recursos de depuración adicionales
Otros recursos incluyen los siguientes libros y vídeos:
- Depuración de Windows por Dentro: Estrategias prácticas de depuración y seguimiento por Tarik Soulami
- Advanced Windows Debugging de Mario Hewardt y Daniel Pravat
- Serie de vídeos de Defrag Tools, episodios de 13 a 29, todo sobre WinDbg
Pasos siguientes
Elija el modo de depuración para continuar:
Depuración en modo kernel (para controladores y componentes del sistema operativo):
- Introducción a WinDbg (modo kernel)
- Depuración de controladores universales: laboratorio guiado paso a paso (modo de núcleo echo)
Depuración en modo de usuario (para aplicaciones):
Guía de configuración adicional: