Volver a adjuntar a la aplicación de destino

Si el depurador se inmoviliza o deja de responder (es decir, se bloquea) mientras realiza la depuración en modo de usuario, puede asociar un nuevo depurador al proceso existente.

Nota Este método solo se admite en Microsoft Windows XP y versiones posteriores de Windows. Este método no depende de si el depurador creó originalmente el proceso o se adjuntó a un proceso existente. Este método no depende de si ha usado la opción -pd .

Para volver a adjuntar un depurador a una aplicación de destino existente, haga lo siguiente:

  1. Determine el identificador de proceso de la aplicación de destino.

  2. Inicie una nueva instancia de CDB o WinDbg. Use la opción de línea de comandos -pe .

    Debugger -pe -p PID 
    

    También puede usar otras opciones de línea de comandos.

    También puede conectarse desde un depurador inactivo mediante el comando .attach (Asociar al proceso) junto con la opción -e .

  3. Una vez completada la asociación, finalice el proceso del depurador original.

  4. Si el proceso no responde correctamente, es posible que tenga un recuento de suspensiones demasiado alto. Puede usar el comando ~m (Reanudar subproceso) para reducir el recuento de suspensiones. Para obtener más información sobre los recuentos de suspensión, consulte Control de procesos y subprocesos.

Si el depurador original sigue funcionando correctamente, es posible que este método no funcione. Los dos depuradores compiten por eventos de depuración y el sistema operativo Windows no asigna necesariamente todos los eventos de depuración al nuevo depurador.

Si el depurador original finaliza antes de adjuntar el nuevo depurador, también se cierra la aplicación de destino. (Sin embargo, si el depurador asociado a la opción -pd y, a continuación, se cierra normalmente, la aplicación de destino continúa ejecutándose. En esta situación, un segundo depurador puede asociarse a la aplicación de destino sin usar la opción -pe ).

Si ya está depurando un proceso y desea desasociar del proceso, pero dejarlo inmovilizado en un estado de depuración, puede usar el comando .abandon (Abandonar proceso). Después de este comando, cualquier depurador de Windows puede volver a asociarse al proceso mediante el procedimiento que se describe en este tema.