Share via


Uso de comandos del depurador

En este artículo se describe el uso de comandos del depurador. WinDbg es un depurador que se puede usar para analizar volcados de memoria, depurar código en modo de usuario activo y modo kernel, y examinar los registros de CPU y la memoria. Para obtener más información, consulte Información general sobre WinDbg.

Para instalar el depurador, consulte Instalación del depurador de Windows.

Para empezar a trabajar con WinDbg, consulte Introducción con la depuración de Windows.

Ventana de comandos del depurador de WinDbg

Para WinDbg, "Ventana de comandos del depurador" hace referencia a la ventana con la etiqueta "Comando" en la barra de título. Esta ventana contiene dos paneles:

  • En el panel inferior pequeño, escriba comandos.

  • En el panel superior grande, verá la salida del comando.

Esta ventana siempre está abierta al principio de una sesión de depuración. Para volver a abrir o cambiar a esta ventana, seleccione Comando en el menú Ver, presione ALT+1 o seleccione el botón Comando (Alt+1) (Captura de pantalla de la ventana Comando del depurador).

Puede usar las teclas FLECHA ARRIBA y FLECHA ABAJO para desplazarse por el historial de comandos. Cuando aparezca un comando anterior, puede editarlo y, a continuación, presionar ENTRAR para ejecutar el comando anterior (o la versión editada del comando anterior). El cursor no tiene que estar al final de la línea para que este procedimiento funcione correctamente.

KD o CDB

Para KD o CDB, "Ventana comando del depurador" hace referencia a toda la ventana. Escriba comandos en el símbolo del sistema en la parte inferior de la ventana. Si los comandos tienen algún resultado, la ventana muestra la salida y, a continuación, vuelve a mostrar el símbolo del sistema.

Símbolo de la ventana del sistema del depurador

Al realizar la depuración en modo de usuario, el símbolo del sistema en la ventana Comando del depurador tiene un aspecto similar al del ejemplo siguiente.

2:005>

En el ejemplo anterior, 2 es el número de proceso actual y 005 es el número de subproceso actual.

Si adjunta el depurador a más de un equipo, el número del sistema se incluye antes del proceso y el número de subproceso, como en el ejemplo siguiente.

3:2:005>

En este ejemplo, 3 es el número de sistema actual, 2 es el número de proceso actual y 005 es el número de subproceso actual.

Cuando se realiza la depuración en modo kernel en un equipo de destino que solo tiene un procesador, el símbolo del sistema tiene un aspecto similar al del ejemplo siguiente.

kd>

Sin embargo, si el equipo de destino tiene varios procesadores, el número del procesador actual aparece antes del símbolo del sistema, como en el ejemplo siguiente.

0: kd>

Si el depurador está ocupado procesando un comando emitido anteriormente, los nuevos comandos no se procesarán temporalmente, aunque se pueden agregar al búfer de comandos. Además, todavía puedes usar teclas de control en KD y CDB, y todavía puedes usar comandos de menú y teclas de método abreviado en WinDbg. Cuando KD o CDB se encuentra en este estado ocupado, no se muestra ningún mensaje. Cuando WinDbg se encuentra en este estado ocupado, aparecerá el siguiente indicador en lugar del símbolo del sistema:

*BUSY*

Puede usar el comando .pcmd (Set Prompt Command) para agregar texto a este símbolo del sistema.

Tipos de comandos

WinDbg, KD y CDB admiten una variedad de comandos. Algunos comandos se comparten entre los depuradores y algunos solo están disponibles en uno o dos de los depuradores.

Algunos comandos solo están disponibles en la depuración activa y otros comandos solo están disponibles cuando se depura un archivo de volcado de memoria.

Algunos comandos solo están disponibles durante la depuración en modo de usuario y otros comandos solo están disponibles durante la depuración en modo kernel.

Algunos comandos solo están disponibles cuando el destino se ejecuta en determinados procesadores. Para obtener más información sobre todos los comandos y sus restricciones, vea Comandos del depurador.

Edición, repetición y cancelación de comandos

Puede usar claves de edición estándar al escribir un comando:

  • Use las teclas FLECHA ARRIBA y FLECHA ABAJO para buscar comandos anteriores.

  • Edite el comando actual con las teclas BACKSPACE, DELETE, INSERT y LEFT ARROW y RIGHT ARROW.

  • Presione la tecla ESC para borrar la línea actual.

Puede presionar la tecla TAB para completar automáticamente la entrada de texto. En cualquiera de los depuradores, presione la tecla TAB después de escribir al menos un carácter para completar automáticamente un comando. Presione la tecla TAB varias veces para recorrer las opciones de finalización de texto y mantenga presionada la tecla MAYÚS y presione TAB para desplazarse hacia atrás. También puede usar caracteres comodín en el texto y presionar TAB para expandirse al conjunto completo de opciones de finalización de texto. Por ejemplo, si escribe fo*!ba y, a continuación, presiona TAB, el depurador se expande al conjunto de todos los símbolos que comienzan por "ba", en todos los módulos con nombres de módulo que comienzan por "fo". Como otro ejemplo, puede completar todos los comandos de extensión que tengan "prcb" en ellos escribiendo !*prcb y presionando TAB.

Cuando se usa la tecla TAB para realizar la finalización del texto, si el fragmento de texto comienza con un punto (.), el texto coincide con un comando dot. Si el fragmento de texto comienza con un signo de exclamación (!), el texto coincide con un comando de extensión. De lo contrario, el texto coincide con un símbolo. Cuando se usa la tecla TAB para escribir símbolos, al presionar la tecla TAB se completa el código y los símbolos de tipo y los nombres de módulo. Si no aparece ningún nombre de módulo, se completan los símbolos locales y los nombres de módulo. Si se da un patrón de módulo o módulo, la finalización de símbolos completa el código y los símbolos de tipo de todas las coincidencias.

Puede seleccionar y mantener presionado (o hacer clic con el botón derecho) en la ventana Comando del depurador para pegar automáticamente el contenido del Portapapeles en el comando que está escribiendo.

La longitud máxima del comando es de 4096 caracteres. Sin embargo, si controla el depurador en modo de usuario desde el depurador de kernel, la longitud máxima de línea es de 512 caracteres.

En CDB y KD, presione la tecla ENTRAR por sí misma para repetir el comando anterior. En WinDbg, puede habilitar o deshabilitar este comportamiento. Para obtener más información sobre este comportamiento, vea ENTRAR (Repetir último comando).

Si el último comando que emitió presenta una pantalla larga y desea cortarla, use la tecla CTRL+C en CDB o KD. En WinDbg, use Depurar | Interrumpa o presione CTRL+BREAK.

En la depuración en modo kernel, puede cancelar comandos desde el teclado del equipo de destino presionando CTRL+C.

Puede usar el comando .cls (Borrar pantalla) para borrar todo el texto de la ventana Comando del depurador. Este comando borra todo el historial de comandos. En WinDbg, puede borrar el historial de comandos mediante editar | Desactive el comando Salida del comando o seleccione Borrar salida del comando en el menú contextual de la ventana Comando del depurador.

Sintaxis de expresión

Muchos comandos y comandos de extensión aceptan expresiones como argumentos. El depurador evalúa estas expresiones antes de ejecutar el comando. Para obtener más información sobre las expresiones, vea Evaluación de expresiones.

Alias

Los alias son macros de texto que puede usar para evitar tener que volver a escribir frases complejas. Hay dos tipos de alias. Para obtener más información sobre los alias, consulte Uso de alias.

Comandos de Self-Repeating

Puede usar los siguientes comandos para repetir una acción o ejecutar condicionalmente otros comandos:

Para obtener más información sobre cada comando, consulte los temas de comandos individuales.

Control del desplazamiento

Puede usar la barra de desplazamiento para ver los comandos anteriores y su salida.

Cuando se usa CDB o KD, cualquier entrada de teclado se desplaza automáticamente hacia abajo en la ventana Comando del depurador hacia la parte inferior.

En WinDbg, la pantalla se desplaza automáticamente hacia abajo hasta la parte inferior cada vez que un comando genera la salida o presiona la tecla ENTRAR. Si desea deshabilitar este desplazamiento automático, active la casilla Opciones en el menú Ver y desactive la casilla Desplazamiento automático .

Características de texto de WinDbg

En WinDbg, puede usar varias características adicionales para cambiar cómo se muestra el texto en la ventana Comando del depurador. Puede acceder a algunas de estas características en la ventana WinDbg, algunas en el menú contextual de la ventana Comando del depurador y algunas seleccionando el icono de menú adecuado.

  • El comando Word encapsular en el menú contextual activa y desactiva el estado del ajuste de palabras. Este comando afecta a toda la ventana, no solo los comandos que se usan después de cambiar este estado. Dado que muchos comandos y extensiones producen pantallas con formato, normalmente no se recomienda ajustar palabras.

  • Editar | Agregar al comando del menú Salida de comandos agrega un comentario en la ventana Comando del depurador. El comando Agregar a la salida del comando en el menú contextual tiene el mismo efecto.

  • Puede personalizar los colores que se usan para el texto y el fondo de la ventana Comando del depurador. Puede especificar diferentes colores para diferentes tipos de texto. Por ejemplo, puede mostrar la salida de registro automática en un color, mensajes de error en otro color y mensajes dbgPrint en un tercer color.

  • Puedes usar todas las características comunes a las ventanas de información de depuración de WinDbg, como personalizar las fuentes y usar comandos de edición especiales.

Depuración remota

Al realizar la depuración remota a través del depurador, el cliente de depuración puede acceder a un número limitado de comandos. Para cambiar el número de comandos a los que puede acceder el cliente, use la opción de línea de comandos-clines o la variable de entorno _NT_DEBUG_HISTORY_SIZE.