Cambiar de un modo a otro
Al controlar la depuración en modo de usuario desde el depurador de kernel, se encuentran cuatro modos diferentes y se pueden cambiar entre ellos de varias maneras.
Nota En la descripción de este escenario, la aplicación de destino hace referencia a la aplicación en modo de usuario que se está depurando, el equipo de destino hace referencia al equipo que contiene la aplicación de destino y el proceso CDB o NTSD, y el equipo host hace referencia al equipo que contiene el depurador de kernel.
Se encontrarán los cuatro modos siguientes:
Depuración en modo de usuario
El equipo de destino y la aplicación de destino están inmovilizados. El símbolo del sistema de depuración en modo de usuario aparece en la ventana Comando del depurador del kernel. En WinDbg, el símbolo del sistema en el panel inferior de la ventana winDbg muestra Entrada>. Puede escribir comandos en este símbolo del sistema, como si se especificaran durante la depuración en modo de usuario, para analizar el estado de la aplicación de destino o hacer que se ejecute o recorra su ejecución. Los archivos de símbolos, los archivos DLL de extensión y otros archivos a los que accede el depurador serán esos archivos en el equipo de destino, no en el equipo host.
Ejecución de la aplicación de destino
El equipo de destino se está ejecutando, la aplicación de destino se está ejecutando y el depurador está esperando. Este modo es el mismo que permitir que el destino se ejecute en la depuración normal.
Modo de suspensión
El equipo de destino se está ejecutando, pero la aplicación de destino está inmovilizada y ambos depuradores están inmovilizados. Este modo es útil si tiene que hacer algo en el equipo de destino, pero no desea cambiar el estado de la sesión de depuración.
Depuración en modo kernel
El equipo de destino y la aplicación de destino están inmovilizados. El símbolo del sistema de depuración en modo kernel kd> aparece en la ventana Comando del depurador del depurador de kernel. Este modo es el estado típico de depuración en modo kernel.
La sesión comienza en modo de depuración en modo de usuario. Las siguientes acciones y eventos hacen que el modo cambie:
Para cambiar de la depuración en modo de usuario a la ejecución de la aplicación de destino, use el comando g (Go) en el símbolo del
Input>
sistema.Para cambiar temporalmente de la depuración en modo de usuario a la ejecución de la aplicación de destino y, a continuación, volver a la depuración en modo de usuario, use un paso, un seguimiento u otro comando de ejecución temporal. Para obtener una lista de estos comandos, vea Controlar el destino.
Para cambiar de depuración en modo de usuario al modo de suspensión, use el comando .sleep (Pausar depurador). Se ha temporizador este comando. Cuando expira el tiempo, el sistema vuelve a la depuración en modo de usuario.
Para cambiar de depuración en modo de usuario a depuración en modo kernel, use el comando .breakin (Interrumpir al depurador de kernel). Tenga en cuenta que .breakin puede producir un error de acceso denegado si el proceso de llamada no tiene derechos de administrador. En este caso, cambie a KD emitiendo un comando .sleep corto y presionando CTRL+C.
Puede cambiar de la ejecución de la aplicación de destino a la depuración en modo de usuario solo en determinados entornos. Si el equipo de destino ejecuta Microsoft Windows XP o una versión posterior del sistema operativo Windows, puede usar el comando de extensión !bpid . Si usa CDB (no NTSD), puede activar la ventana de CDB en el equipo de destino y presionar CTRL+C.
Si la aplicación de destino alcanza un punto de interrupción, encuentra una excepción, encuentra algún otro evento controlado o finaliza, el sistema cambia de la ejecución de la aplicación de destino a la depuración en modo de usuario. Debe planear estos eventos de antemano, especialmente cuando se usa NTSD. Para obtener más información sobre estos eventos, vea Uso de puntos de interrupción y Control de excepciones y eventos.
Para cambiar de la ejecución de la aplicación de destino a la depuración en modo kernel, presione CTRL+C en la ventana KD, presione CTRL+BREAK o haga clic en Interrumpir en el menú Depurar de la ventana WinDbg, o presione SYSRQ o ALT+SYSRQ en el teclado del equipo de destino. (Si el depurador de kernel es KD y presiona CTRL+C al mismo tiempo que el depurador de kernel se comunica con el depurador en modo de usuario, el depurador en modo usuario podría capturarle presionando CTRL+C).
Si el depurador encuentra un error de kernel o si usa la herramienta de Breakin.exe, el sistema cambia de la ejecución de la aplicación de destino a la depuración en modo kernel.
Para cambiar del modo de suspensión a la depuración en modo de usuario, espere a que expire el tiempo de suspensión, inicie un nuevo proceso de CDB en el equipo de destino mediante la opción de línea de comandos -wake o use el comando .wake (Wake Debugger) en una copia diferente de CDB o NTSD en el equipo de destino.
Para salir de la depuración en modo kernel, use el comando g (Go) en el símbolo del
kd>
sistema. Este comando vuelve a la depuración en modo de usuario o a la ejecución de la aplicación de destino (cualquiera de los dos era el estado usado más recientemente).