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 de Comando do Depurador

Você pode visualizar 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 Locals.

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 seleção será exibida ao lado de seu nome. Para expandir ou recolher a exibição dos membros da estrutura, marque ou desmarque a caixa de seleção.

  • 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 cortar, copiar e colar estão disponíveis 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 a base numérica atual, use o comando n (definir base numérica) na janela de 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 fizer duplo clique em "Inserir novo tipo", pode definir o tipo introduzindo um novo tipo de dados. Esta transmissão altera a exibição atual desta variável apenas 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 colona 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 expansíveis abaixo da linha corrente. Por exemplo, se o símbolo nesta 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 Localização (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á os Vtables e você poderá expandir os Vtables para mostrar os ponteiros de função. Se um Vtable estiver contido em uma classe base que aponta 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 expandem-se à semelhança do tipo de classe derivada.

  • O contexto local determina qual conjunto de variáveis locais será exibido na janela Locais. Quando o contexto local muda 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) a barra de título da janela ou selecione o ícone perto do 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) Typecast ativa e desativa a exibição da coluna Tipo .

  • (Barra de ferramentas e menu) Localizações ativa e desativa a apresentação da coluna Localização.

  • (Somente menu) Exibir valores de 16 bits como Unicode exibe cadeias de caracteres Unicode nesta janela. Este comando ativa e desativa uma configuração global que afeta a janela Locais, a janela Inspeção e a saída de comandos do depurador. Este comando é equivalente ao uso do comando.enable_unicode (Enable Unicode Display).

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

    Observação O comando Sempre mostrar números na base padrão não afeta números inteiros longos. Inteiros longos são exibidos em formato decimal, a menos que o comando .enable_long_status (Enable Long Integer Display) esteja definido. O comando .enable_long_status afeta a exibição na janela Locais, na janela Watch e na saída do comando do depurador; não há equivalente para este comando no menu na janela Locais.

  • (Somente menu) Abrir janela de memória para o valor selecionado abre uma nova janela de Memória acoplada 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 (Display Type) com o símbolo selecionado como parâmetro. O resultado aparece na janela de 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 na linha de comando, mas o formato é ligeiramente diferente.

  • (Somente menu) liga/desliga a barra de ferramentas.

  • (Apenas menu) Encaixar ou Libertar faz com que a janela entre ou saia do estado encaixado.

  • (Apenas menu) Mover para novo dock fecha a janela Locais e abre-a em um novo dock.

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

  • (Apenas menu) Sempre flutuante faz com que a janela permaneça desancorada, mesmo quando é arrastada para um local de acoplamento.

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

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

  • (Apenas menu) Fechar fecha esta janela.

A janela do relógio

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

Ao contrário da janela de Locais, a janela de 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 Ver. Você também pode pressionar ALT+2 ou selecionar o botão Watch na barra de ferramentas. ALT+SHIFT+2 fecha a janela de observação.

A captura de ecrã a seguir mostra um exemplo de uma janela de observação.

Captura de tela da janela Watch no WinDbg.

A janela Watch 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.

Ver também

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