Visualización y edición de variables locales en WinDbg (clásico)
En WinDbg, puede ver variables locales escribiendo comandos, mediante la ventana Variables locales o mediante la ventana Inspección.
Ventana de comandos del depurador
Para ver variables y parámetros locales, escriba el comando dv o el comando dt en la ventana Comando del depurador.
Apertura de la ventana Variables locales
La ventana Variables locales muestra información sobre todas las variables locales en el ámbito actual.
Para abrir o cambiar a la ventana Variables locales, en la ventana WinDbg, en el menú Ver , seleccione Variables locales. (También puede presionar ALT+3 o seleccionar el botón Variables locales de la barra de herramientas. ALT+MAYÚS+3 cierra la ventana Variables locales).
En la captura de pantalla siguiente se muestra un ejemplo de una ventana Variables locales.
La ventana Variables locales 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, seleccione los botones Typecast y Locations, respectivamente, en la barra de herramientas.
Uso de la ventana Variables locales
En la ventana Variables locales, puede hacer lo siguiente:
La columna Nombre muestra el nombre de cada variable local. Si una variable es una estructura de datos, aparece una casilla junto a su nombre. Para expandir o contraer la presentación de los miembros de la estructura, active o desactive la casilla.
La columna Valor muestra el valor actual de cada variable.
- Para escribir un nuevo valor para la variable, haga doble clic en el valor actual y 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). Puede escribir cualquier expresión de C++.
- Para guardar el nuevo valor, presione ENTRAR.
- Para descartar el nuevo valor, presione ESC.
- Si escribe un valor no válido, volverá a aparecer el valor anterior al 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 Variables locales) 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 Variables locales; 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 Variables locales, 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 Variables locales) muestra el desplazamiento de cada miembro de una estructura de datos.
Si una variable local es una instancia de una clase que contiene tablas virtuales, la columna Nombre muestra las tablas virtuales y puede expandir las tablas virtuales para mostrar los punteros de función. Si una tabla virtual 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.
El contexto local determina qué conjunto de variables locales se mostrarán en la ventana Variables locales. Cuando cambia el contexto local por cualquier motivo, la ventana Variables locales se actualiza automáticamente. De forma predeterminada, el contexto local coincide con la posición actual del contador del programa. Para obtener más información sobre cómo cambiar el contexto local, vea Contexto local.
La ventana Variables locales tiene una barra de herramientas que contiene dos botones (Typecast y Locations) y un menú contextual con comandos adicionales. Para acceder al menú, seleccione y mantenga presionado (o haga clic con el botón derecho) en la barra de título de la ventana o seleccione el icono situado cerca de la esquina superior derecha 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 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 establezca 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 en la salida del comando del depurador; no hay ningún equivalente para este comando en el menú de la ventana Variables locales.
(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 que se genera mediante 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 Locals 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 Variables locales. 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.
Ventana Inspección
En WinDbg, puede usar la ventana Inspección para mostrar y cambiar variables locales. La ventana Inspección puede mostrar cualquier lista de variables que desee. Estas variables pueden incluir variables globales y variables locales desde cualquier función. En cualquier momento, la ventana Inspección muestra los valores de esas variables que coinciden con el ámbito de la función actual. También puede cambiar los valores de estas variables a través de la ventana Inspección.
A diferencia de la ventana Variables locales, la ventana Inspección no se ve afectada por los cambios en el contexto local. Solo las variables definidas en el ámbito del contador de programa actual pueden tener sus valores mostrados o modificados.
Para abrir la ventana Inspección, elija Ver en el menú Ver . También puede presionar ALT+2 o seleccionar el botón Inspección de la barra de herramientas. ALT+MAYÚS+2 cierra la ventana Inspección.
En la captura de pantalla siguiente se muestra un ejemplo de una ventana Inspección.
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, seleccione los botones Typecast y Locations, respectivamente, en la barra de herramientas.
Consulte también
Para obtener más información sobre el control de variables locales, información general sobre el uso de variables y el cambio del ámbito y una descripción de otros comandos relacionados con la memoria, vea Lectura y escritura de memoria.