Depuración novasiva (modo de usuario)
Si ya se está ejecutando una aplicación en modo de usuario, el depurador puede depurarlo de forma novasiva. Con la depuración novasiva, no tiene tantas acciones de depuración. Sin embargo, puede minimizar la interferencia del depurador con la aplicación de destino. La depuración novasiva es útil si la aplicación de destino ha dejado de responder.
En la depuración novasiva, el depurador no se asocia realmente a la aplicación de destino. El depurador suspende todos los subprocesos del destino y tiene acceso a la memoria del destino, registra y otra información de este tipo. Sin embargo, el depurador no puede controlar el destino, por lo que los comandos como g (Go) no funcionan.
Si intenta ejecutar comandos que no están permitidos durante la depuración novasiva, recibirá un mensaje de error que indica que "El depurador no está asociado, por lo que no se puede supervisar la ejecución del proceso".
Selección del proceso para depurar
Puede especificar la aplicación de destino por el identificador de proceso (PID) o el nombre del proceso.
Si especifica la aplicación por nombre, debe usar el nombre completo del proceso, incluida la extensión de nombre de archivo. Si dos procesos tienen el mismo nombre, debe usar el identificador de proceso en su lugar.
Para obtener más información sobre cómo determinar el identificador de proceso y el nombre del proceso, consulte Búsqueda del identificador de proceso.
Para obtener información sobre cómo iniciar y detener una sesión de depuración novasiva, consulte los temas siguientes:
- Depuración de un proceso en modo de usuario mediante WinDbg
- Depuración de un proceso en modo de usuario mediante CDB
Línea de comandos de CDB
Para depurar de forma novasiva un proceso en ejecución desde la línea de comandos de CDB, especifique la opción -pv, la opción -p y el identificador de proceso, en la sintaxis siguiente.
cdb -pv -p ProcessID
O bien, para depurar de forma novasiva un proceso en ejecución especificando el nombre del proceso, use la sintaxis siguiente en su lugar.
cdb -pv -pn ProcessName
Hay otras opciones de línea de comandos útiles. Para obtener más información sobre la sintaxis de la línea de comandos, vea Opciones de la línea de comandos de CDB.
Línea de comandos de WinDbg
Para depurar de forma novasiva un proceso en ejecución desde la línea de comandos de WinDbg, especifique la opción -pv, la opción -p y el identificador de proceso, en la sintaxis siguiente.
windbg -pv -p ProcessID
O bien, para depurar de forma novasiva un proceso en ejecución especificando el nombre del proceso, use la sintaxis siguiente en su lugar.
windbg -pv -pn ProcessName
Hay otras opciones de línea de comandos útiles. Para obtener más información sobre la sintaxis de la línea de comandos, vea Opciones de línea de comandos de WinDbg.
Menú WinDbg
Cuando WinDbg está en modo inactivo, puede depurar de forma novasiva un proceso en ejecución haciendo clic en Asociar a un proceso en el menú Archivo o presionando F6.
Cuando aparezca el cuadro de diálogo Asociar al proceso, active la casilla Noninvasive . A continuación, seleccione la línea que contiene el identificador de proceso y el nombre que desee. (También puede escribir el identificador de proceso en el cuadro Id. de proceso). Por último, haga clic en Aceptar.
Ventana de comandos del depurador
Si el depurador ya está activo, puede depurar de forma novasiva un proceso en ejecución mediante el comando .attach -v (Asociar al proceso) en la ventana Comando del depurador.
Puede usar el comando .attach si el depurador ya está depurando uno o varios procesos de forma invasiva. Puede usar este comando en CDB si está inactivo, pero no en un WinDbg inactivo.
Si el comando .attach -v se ejecuta correctamente, el depurador depura el proceso especificado la próxima vez que el depurador emite un comando de ejecución. Dado que no se permite la ejecución durante la depuración novasiva, el depurador no puede depurar de forma novasiva más de un proceso a la vez. Esta restricción también significa que el uso del comando .attach -v podría hacer que una sesión de depuración invasiva existente sea menos útil.
Inicio de la sesión de depuración
Para obtener más información sobre cómo iniciar una sesión de depuración, consulte Operación del depurador.