Compartir a través de


Uso de la ventana Inspección: WinDbg (clásico)

La ventana Inspección muestra información sobre variables globales, variables locales y registros. Puede personalizar esta ventana para mostrar los elementos que está realizando el seguimiento.

Apertura de la ventana Inspección

Para abrir o cambiar a la ventana Inspección, en la ventana WinDbg, en el menú Ver , haga clic en Inspección.

También puede presionar ALT+2 o hacer clic en el botón Inspección (ALT+2) de la barra de herramientas: Captura de pantalla del botón Inspección de la barra de herramientas.

ALT+MAYÚS+2 cerrará la ventana Inspección.

En la captura de pantalla siguiente se muestra un ejemplo de una ventana Inspección.

Captura de pantalla de una ventana Inspección de ejemplo en WinDbg.

La ventana Inspección puede contener cuatro columnas. Las columnas Nombre y Valor siempre se muestran y las columnas Type y Location son opcionales. Para mostrar las columnas Tipo y Ubicación, haga clic en los botones Typecast y Locations, respectivamente, en la barra de herramientas.

En la ventana Inspección, puede hacer lo siguiente:

  • Para agregar una variable a la ventana Inspección, seleccione la primera celda vacía de la columna Nombre , escriba el nombre de la variable y presione ENTRAR. Separe el nombre del módulo de la variable con un signo de exclamación (!). Si no especifica un módulo, se usa el módulo actual. Para escribir una dirección en el campo Nombre , la dirección debe comenzar con un dígito decimal (si es necesario, use el prefijo 0x).

    Si el nombre de la variable que ha escrito se define en el ámbito de la función actual, su valor aparece en la columna Valor . Si no está definido, la columna Valormuestra "Error: No se puede obtener el valor".

    Incluso si no se define una variable, puede ser útil agregarla a la ventana Inspección. Si el contador de programa escribe una función en la que se define una variable de este nombre, su valor aparece en la ventana en ese momento.

  • Para quitar una variable de la ventana Inspección, haga doble clic en su nombre, presione DELETE y, a continuación, presione ENTRAR. También puede reemplazar un nombre antiguo por un nombre nuevo haciendo doble clic en el nombre anterior, escribiendo el nuevo nombre y presionando ENTRAR.

  • Si una variable es una estructura de datos, aparece una casilla junto a su nombre. Para expandir y contraer la presentación de los miembros de la estructura, active o desactive la casilla.

  • Los enteros de tipo int se muestran como valores decimales; los enteros de tipo UINT se muestran en el radix actual. Para cambiar el radix actual, use el comando n (Establecer base de número) en la ventana Comando del depurador.

  • Para cambiar el valor de una variable local, haga doble clic en su celda Value . Escriba el nuevo valor o edite el valor anterior. (Los comandos cortar, copiar y pegar están disponibles para su uso para su edición). El valor que escriba puede incluir cualquier expresión de C++. Después de escribir un nuevo valor o editar el valor anterior, puede presionar ENTRAR para almacenar el nuevo valor o presionar ESC para descartarlo. Si envía un valor no válido, volverá a aparecer el valor anterior después de presionar ENTRAR.

    Los enteros de tipo int se muestran como valores decimales; los enteros de tipo UINT se muestran en el radix actual. Para cambiar el radix actual, use el comando n (Establecer base de número) en la ventana Comando del depurador.

  • La columna Tipo (si se muestra en la ventana Inspección) muestra el tipo de datos actual de cada variable. Cada variable se muestra en el formato adecuado para su propio tipo de datos. Las estructuras de datos tienen sus nombres de tipo en la columna Tipo . Otros tipos de variables muestran "Entrar nuevo tipo" en esta columna.

    Si hace doble clic en "Entrar nuevo tipo", puede convertir el tipo escribiendo un nuevo tipo de datos. Esta conversión modifica la presentación actual de esta variable solo en la ventana Inspección; no cambia nada en el depurador ni en el equipo de destino. Además, si escribe un nuevo valor en la columna Valor , el texto que escriba se analizará en función del tipo real del símbolo, en lugar de cualquier tipo nuevo que haya escrito en la columna Tipo . Si cierra y vuelve a abrir la ventana Inspección, perderá los cambios en el tipo de datos.

    También puede escribir un comando de extensión en la columna Tipo . El depurador pasará la dirección del símbolo a esta extensión y mostrará la salida resultante en una serie de filas contraíbles debajo de la fila actual. Por ejemplo, si el símbolo de esta fila es una dirección válida para un bloque de entorno de subproceso, puede escribir !teb en la columna Tipo para ejecutar la extensión !teb en la dirección de este símbolo.

  • La columna Ubicación (si se muestra en la ventana Inspección) muestra el desplazamiento de cada miembro de una estructura de datos.

  • Además de las variables, también puede supervisar los siguientes elementos en la ventana Inspección:

    • Registros. Al agregar un registro a la ventana Inspección, anteponga su nombre con un signo (@). A diferencia de las variables, no se pueden cambiar los valores de registro a través de la ventana Inspección.
    • Tablas virtuales que contienen punteros de función. Cuando aparece una tabla virtual en la ventana Inspección, puede examinar las entradas de la función en la tabla. Si una Vtable está contenida en una clase base que apunta a una implementación derivada, se muestra la notación _vtcast_Class para indicar los miembros que se agregan debido a la clase derivada. Estos miembros se expanden como el tipo de clase derivada.
    • Valores devueltos de funciones de extensión, como _EFN_GetPoolData.

A diferencia de la ventana Variables locales, la ventana Inspección no se ve afectada por los cambios en el contexto de registro. En la ventana Inspección, solo puede ver y modificar las variables definidas en el ámbito del contador de programa actual.

Si abre un área de trabajo nueva, el contenido de la ventana Inspección se descarta y se reemplaza por los de la nueva área de trabajo.

Barra de herramientas y menú contextual

La ventana Inspección tiene una barra de herramientas que contiene dos botones (Typecast y Locations) y un menú contextual con comandos adicionales. Para acceder al menú, haga clic con el botón derecho en la barra de título de la ventana o haga clic en el icono situado cerca de la esquina superior derecha de la ventana: Captura de pantalla del icono del botón para acceder al menú contextual de la barra de herramientas Inspección de la ventana.

La barra de herramientas y el menú contienen los siguientes botones y comandos:

  • (Barra de herramientas y menú) La difusión de tipos activa y desactiva la presentación de la columna Tipo .

  • (Barra de herramientas y menú) Las ubicaciones activan y desactivan la presentación de la columna Ubicación .

  • (Solo menú) Mostrar valores de 16 bits como Unicode muestra cadenas Unicode en esta ventana. Este comando activa y desactiva una configuración global que afecta a la ventana Variables locales, la ventana Inspección y la salida del comando del depurador. Este comando equivale a usar el comando .enable_unicode (Habilitar pantalla Unicode).

  • (Solo menú) Mostrar siempre los números en el radix predeterminado hace que los enteros se muestren en el radix predeterminado en lugar de mostrarlos siempre en formato decimal. Este comando activa y desactiva una configuración global que afecta a la ventana Variables locales, la ventana Inspección y la salida del comando del depurador. Este comando equivale a usar el comando .force_radix_output (Usar Radix para enteros).

    Nota Los números para mostrar siempre en el comando radix predeterminado no afectan a los enteros largos. Los enteros largos se muestran en formato decimal a menos que se use el comando .enable_long_status (Habilitar visualización de enteros largos). El comando .enable_long_status afecta a la presentación en la ventana Variables locales, la ventana Inspección y la salida del comando del depurador. No hay ningún equivalente para este comando en el menú de la ventana Inspección.

  • (Solo menú) La ventana Abrir memoria para el valor seleccionado abre una nueva ventana Memoria acoplada que muestra la memoria que comienza en la dirección de la expresión seleccionada.

  • (Solo menú) Invocar dt para el valor de memoria seleccionado ejecuta el comando dt (Display Type) con el símbolo seleccionado como parámetro. El resultado aparece en la ventana Comando del depurador. La opción -n se usa automáticamente para diferenciar el símbolo de una dirección hexadecimal. No se usan otras opciones. Tenga en cuenta que el contenido generado con esta selección de menú es idéntico al contenido generado al ejecutar el comando dt desde la línea de comandos, pero el formato es ligeramente diferente.

  • (Solo menú) La barra de herramientas activa y desactiva la barra de herramientas.

  • (Solo menú) Acoplar o Desacoplar hace que la ventana entre o deje el estado acoplado.

  • (Solo menú) Move to new docks closes the Watch window and opens it in a new dock.

  • (Solo menú) Establecer como destino de acoplamiento de tabulación para el tipo de ventana no está disponible para la ventana Inspección. Esta opción solo está disponible para las ventanas Origen o Memoria .

  • (Solo menú) Siempre flotante hace que la ventana permanezca desacoplado incluso si se arrastra a una ubicación de acoplamiento.

  • (Solo menú) Mover con marco hace que la ventana se mueva cuando se mueve el marco WinDbg, incluso si la ventana está desactivada.

  • (Solo menú) Ayuda abre este tema en la documentación herramientas de depuración para Windows.

  • (Solo menú) Cerrar cierra esta ventana.

Consulte también

Para obtener más información sobre cómo controlar variables y una descripción de otros comandos relacionados con la memoria, vea Lectura y escritura de memoria. Para obtener más información sobre los registros y su manipulación, vea Visualización y edición de registros en WinDbg (clásico).