Compartir a través de


Comienza con la depuración de Windows

En este artículo se explica cómo empezar a trabajar con la depuración de Windows mediante 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 prefiere analizar un volcado de memoria por fallo en vez de esto, consulte Análisis de archivos de volcado de memoria por fallo mediante WinDbg.

Para comenzar con la depuración de Windows, comience con los siguientes pasos.

1. Instalar el depurador de Windows

Instale WinDbg para empezar a depurar las 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 la ejecución de instrucciones en el procesador se pausa normalmente durante el proceso. El depurador se ejecuta en el sistema host y el código que desea depurar se ejecuta en el sistema de destino .

Host <--------------------------------------------------> Target

Captura de pantalla de un diagrama que muestra una doble flecha que conecta el host y el sistema de depuración objetivo.

En algunas situaciones, es posible usar una máquina virtual como segundo sistema. Por ejemplo, un PC virtual podría ejecutarse en el mismo PC donde se encuentra 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, debe determinar si usar la depuración en modo núcleo o 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 de 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

Pasos siguientes para la depuración en modo de usuario

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:

6. Elija herramientas de depuración de 32 o 64 bits

Si necesita un depurador de 32 o 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, consulte Símbolos para la depuración de Windows.

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 la depuración de Plug and Play, la depuración de KMDF y la depuración RPC.

11. Usar los comandos de referencia del depurador

Puede usar distintos comandos de depuración a medida que 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

Puede usar 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.

En esta documentación se da por supuesto que tiene conocimientos sobre los elementos internos principales de Windows. Para obtener más información sobre los aspectos internos de Windows, incluido el uso de memoria, el contexto, los subprocesos y los procesos, puede revisar recursos como Windows Internals by 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 desde dentro: estrategias prácticas de depuración y seguimiento de Tarik Soulami
  • Depuración avanzada de Windows por 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):

Depuración en modo de usuario (para aplicaciones):

Guía de configuración adicional: