Compartir a través de


Depuración remota mediante WinDbg

La depuración remota implica dos depuradores que se ejecutan en dos ubicaciones diferentes. El depurador que realiza la depuración se denomina servidor de depuración. El segundo depurador, denominado cliente de depuración, controla la sesión de depuración desde una ubicación remota. Para establecer una sesión remota, primero debe configurar el servidor de depuración y, a continuación, activar el cliente de depuración.

El código que se está depurando podría ejecutarse en el mismo equipo que ejecuta el servidor de depuración o podría ejecutarse en un equipo independiente. Si el servidor de depuración realiza la depuración en modo de usuario, el proceso que se está depurando se puede ejecutar en el mismo equipo que el servidor de depuración. Si el servidor de depuración realiza la depuración en modo kernel, el código que se depura normalmente se ejecutaría en un equipo de destino independiente.

En el diagrama siguiente se muestra una sesión remota en la que el servidor de depuración, que se ejecuta en un equipo host, está realizando la depuración en modo kernel del código que se ejecuta en un equipo de destino independiente.

Diagrama que ilustra los equipos remotos, host y de destino conectados para la depuración en modo kernel.

Hay varios protocolos de transporte que puede usar para una conexión de depuración remota: TCP, NPIPE, SPIPE, SSL y puerto COM. Supongamos que ha elegido usar TCP como protocolo y ha elegido usar WinDbg como el cliente de depuración y el servidor de depuración. Puede usar el procedimiento siguiente para establecer una sesión de depuración remota en modo kernel:

  1. En el equipo host, abra WinDbg y establezca una sesión de depuración en modo kernel con un equipo de destino. (Consulte Live Kernel-Mode Debugging using WinDbg (Classic)).

  2. Interrumpa eligiendo Interrumpir en el menú Depurar o presionando CTRL-Break.

  3. En la ventana Comandos del depurador, escriba el siguiente comando.

    .server tcp:port=5005

    Nota El número de puerto 5005 es arbitrario. El número de puerto es su elección.

  4. WinDbg responderá con una salida similar a la siguiente.

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. En el equipo remoto, abra WinDbg y elija Conectar a sesión remota en el menú Archivo .

  6. En Cadena de conexión, escriba la siguiente cadena.

    tcp:Port=5005,Server=YourHostComputer

    donde YourHostComputer es el nombre del equipo host, que ejecuta el servidor de depuración.

    Seleccione Aceptar.

Uso de la línea de comandos

Como alternativa al procedimiento proporcionado en la sección anterior, puede configurar una sesión de depuración remota en la línea de comandos. Supongamos que está configurado para establecer una sesión de depuración en modo kernel, entre un equipo host y un equipo de destino, a través de un cable 1394 en el canal 32. Puede usar el procedimiento siguiente para establecer una sesión de depuración remota:

  1. En el equipo host, escriba el siguiente comando en una ventana del símbolo del sistema.

    windbg -server tcp:port=5005 -k 1394:channel=32

  2. En el equipo remoto, escriba el siguiente comando en una ventana del símbolo del sistema.

    windbg -remote tcp:Port=5005,Server=YourHostComputer

    donde YourHostComputer es el nombre del equipo host, que ejecuta el servidor de depuración.

Información adicional

Hay muchas maneras de establecer la depuración remota distinta de las que se muestran en este tema. Para obtener información completa sobre cómo configurar un servidor de depuración en la ventana de comandos del depurador de WinDbg, vea .server (Crear servidor de depuración) . Para obtener información completa sobre cómo iniciar WinDbg (y establecer la depuración remota) en la línea de comandos, vea WinDbg Command-Line Options.