Partilhar via


Exibindo e editando variáveis locais no WinDbg (clássico)

No WinDbg, você pode exibir variáveis locais inserindo comandos, usando a janela Locais ou usando a janela Inspeção.

Janela Comando do Depurador

Você pode exibir variáveis e parâmetros locais inserindo o comando dv ou o comando dt na janela Comando do Depurador.

Abrindo a janela Locais

A janela Locais exibe informações sobre todas as variáveis locais no escopo atual.

Para abrir ou alternar para a janela Locais, na janela WinDbg, no menu Exibir , selecione Locais. (Você também pode pressionar ALT+3 ou selecionar o botão Locais na barra de ferramentas . ALT+SHIFT+3 fecha a janela Locais.)

A captura de tela a seguir mostra um exemplo de uma janela Locais.

Captura de tela da janela Locais no WinDbg.

A janela Locais pode conter quatro colunas. As colunas Nome e Valor são sempre exibidas e as colunas Tipo e Local são opcionais. Para exibir as colunas Tipo e Local , selecione os botões Typecast e Locations , respectivamente, na barra de ferramentas.

Usando a janela Locais

Na janela Locais, você pode fazer o seguinte:

  • A coluna Nome exibe o nome de cada variável local. Se uma variável for uma estrutura de dados, uma caixa de marcar aparecerá ao lado de seu nome. Para expandir ou recolher a exibição de membros da estrutura, selecione ou desmarque a caixa marcar.

  • A coluna Valor exibe o valor atual de cada variável.

    • Para inserir um novo valor para a variável, clique duas vezes no valor atual e digite o novo valor ou edite o valor antigo. (Os comandos recortar, copiar e colar estão disponíveis para uso para edição.) Você pode digitar qualquer expressão C++.
    • Para salvar o novo valor, pressione ENTER.
    • Para descartar o novo valor, pressione ESC.
    • Se você digitar um valor inválido, o valor antigo reaparecerá quando você pressionar ENTER.

    Inteiros do tipo int são exibidos como valores decimais; inteiros do tipo UINT são exibidos no radix atual. Para alterar o radix atual, use o comando n (Definir Base numérica) na janela Comando do Depurador.

  • A coluna Tipo (se for exibida na janela Locais) mostra o tipo de dados atual de cada variável. Cada variável é exibida no formato adequado para seu próprio tipo de dados. As estruturas de dados têm seus nomes de tipo na coluna Tipo . Outros tipos de variáveis exibem "Inserir novo tipo" nesta coluna.

    Se você clicar duas vezes em "Inserir novo tipo", poderá converter o tipo inserindo um novo tipo de dados. Essa conversão altera a exibição atual dessa variável somente na janela Locais; ele não altera nada no depurador ou no computador de destino. Além disso, se você inserir um novo valor na coluna Valor , o texto inserido será analisado com base no tipo real do símbolo, em vez de qualquer novo tipo que você possa ter inserido na coluna Tipo . Se você fechar e reabrir a janela Locais, perderá as alterações de tipo de dados.

    Você também pode inserir um comando de extensão na coluna Tipo . O depurador passará o endereço do símbolo para essa extensão e exibirá a saída resultante em uma série de linhas recolhidas abaixo da linha atual. Por exemplo, se o símbolo nessa linha for um endereço válido para um bloco de ambiente de thread, você poderá inserir !teb na coluna Tipo para executar a extensão !teb no endereço desse símbolo.

  • A coluna Local (se for exibida na janela Locais) mostra o deslocamento de cada membro de uma estrutura de dados.

  • Se uma variável local for uma instância de uma classe que contém Vtables, a coluna Name exibirá as Vtables e você poderá expandir as Vtables para mostrar os ponteiros da função. Se uma Vtable estiver contida em uma classe base que aponte para uma implementação derivada, a notação _vtcast_Class será exibida para indicar os membros que estão sendo adicionados devido à classe derivada. Esses membros se expandem como o tipo de classe derivada.

  • O contexto local determina qual conjunto de variáveis locais será exibido na janela Locais. Quando o contexto local é alterado por qualquer motivo, a janela Locais é atualizada automaticamente. Por padrão, o contexto local corresponde à posição atual do contador do programa. Para obter mais informações sobre como alterar o contexto local, consulte Contexto Local.

A janela Locais tem uma barra de ferramentas que contém dois botões (Typecast e Locations) e um menu de atalho com comandos adicionais. Para acessar o menu, selecione e segure (ou clique com o botão direito do mouse) na barra de título da janela ou selecione o ícone próximo ao canto superior direito da janela. A barra de ferramentas e o menu contêm os seguintes botões e comandos.

  • (Barra de ferramentas e menu) O Typecast ativa e desativa a exibição da coluna Tipo .

  • (Barra de ferramentas e menu) Os locais ativam e desativam a exibição da coluna Localização .

  • (Somente menu) Exiba valores de 16 bits enquanto Unicode exibe cadeias de caracteres Unicode nesta janela. Esse comando ativa e desativa uma configuração global que afeta a janela Locais, a janela Inspeção e a saída do comando do depurador. Esse comando é equivalente a usar o comando .enable_unicode (Habilitar Exibição Unicode).

  • (Somente menu) Sempre exibir números no radix padrão faz com que inteiros sejam exibidos no radix padrão em vez de exibi-los em formato decimal. Esse comando ativa e desativa uma configuração global que afeta a janela Locais, a janela Inspeção e a saída do comando do depurador. Esse comando é equivalente a usar o comando .force_radix_output (Usar Radix para Inteiros).

    Nota O comando Sempre exibir números no radix padrão não afeta inteiros longos. Inteiros longos são exibidos em formato decimal, a menos que o comando .enable_long_status (Habilitar Exibição de Inteiro Longo) esteja definido. O comando .enable_long_status afeta a exibição na janela Locais, na janela Inspeção e na saída do comando do depurador; não há equivalente para esse comando no menu na janela Locais.

  • (Somente menu) Abrir a janela de memória para o valor selecionado abre uma nova janela Memória encaixada que exibe a memória começando no endereço da expressão selecionada.

  • (Somente menu) Invocar dt para o valor de memória selecionado executa o comando dt (Tipo de Exibição) com o símbolo selecionado como seu parâmetro. O resultado aparece na janela Comando do Depurador. A opção -n é usada automaticamente para diferenciar o símbolo de um endereço hexadecimal. Nenhuma outra opção é usada. Observe que o conteúdo produzido usando essa seleção de menu é idêntico ao conteúdo produzido ao executar o comando dt da linha de comando, mas o formato é ligeiramente diferente.

  • (Somente menu) A barra de ferramentas ativa e desativa a barra de ferramentas.

  • (Somente menu) Encaixar ou Desencaixar faz com que a janela entre ou deixe o estado encaixado.

  • (Somente menu) Mover para o novo encaixe fecha a janela Locais e a abre em um novo encaixe.

  • (Somente menu) Definir como destino de encaixe de tabulação para o tipo de janela não está disponível para a janela Locais. Essa opção só está disponível para janelas de origem ou memória.

  • (Somente menu) Sempre flutuante faz com que a janela permaneça desencaixada mesmo que ela seja arrastada para um local de encaixe.

  • (Somente menu) Mover com quadro faz com que a janela se mova quando o quadro WinDbg é movido, mesmo que a janela esteja desencaixada.

  • (Somente menu) A Ajuda abre este tópico na documentação das Ferramentas de Depuração para Windows.

  • (Somente menu) Fechar fecha esta janela.

A janela Inspeção

No WinDbg, você pode usar a janela Inspeção para exibir e alterar variáveis locais. A janela Inspeção pode exibir qualquer lista de variáveis desejadas. Essas variáveis podem incluir variáveis globais e variáveis locais de qualquer função. A qualquer momento, a janela Inspeção exibe os valores dessas variáveis que correspondem ao escopo da função atual. Você também pode alterar os valores dessas variáveis por meio da janela Inspeção.

Ao contrário da janela Locais, a janela Inspeção não é afetada por alterações no contexto local. Somente as variáveis definidas no escopo do contador do programa atual podem ter seus valores exibidos ou modificados.

Para abrir a janela Inspeção, escolha Inspeção no menu Exibir . Você também pode pressionar ALT+2 ou selecionar o botão Inspeção na barra de ferramentas. ALT+SHIFT+2 fecha a janela Inspeção.

A captura de tela a seguir mostra um exemplo de uma janela Inspeção.

Captura de tela da janela Inspeção no WinDbg.

A janela Inspeção pode conter quatro colunas. As colunas Nome e Valor são sempre exibidas e as colunas Tipo e Local são opcionais. Para exibir as colunas Tipo e Local , selecione os botões Typecast e Locations , respectivamente, na barra de ferramentas.

Confira também

Para obter mais informações sobre como controlar variáveis locais, uma visão geral do uso de variáveis e a alteração do escopo e uma descrição de outros comandos relacionados à memória, consulte Leitura e gravação de memória.