.frame (Definir Contexto Local)

O comando .frame especifica qual contexto local (escopo) é usado para interpretar variáveis locais ou exibe o contexto local atual.

.frame [/c] [/r] [FrameNumber] 
.frame [/c] [/r] = BasePtr [FrameIncrement] 
.frame [/c] [/r] = BasePtr StackPtr InstructionPtr 

Parâmetros

/C
Define o quadro especificado como o contexto de substituição local atual. Essa ação permite que um usuário acesse os registros nãovolatile para qualquer função na pilha de chamadas.

/r
Exibe registros e outras informações sobre o contexto local especificado.

FrameNumber
Especifica o número do quadro cujo contexto local você deseja. Se esse parâmetro for zero, o comando especificará o quadro atual. Se você omitir esse parâmetro, esse comando exibirá o contexto local atual.

BasePtr
Especifica o ponteiro base para o rastreamento de pilha usado para determinar o quadro, se você adicionar um sinal de igual (=) após o nome do comando (.frame). Em um processador baseado em x86, você adiciona outro argumento após BasePtr (que é interpretado como FrameIncrement) ou mais dois argumentos após BasePtr (que são interpretados como InstructionPtr e StackPtr).

FrameIncrement
(somente processador baseado em x86)

Especifica uma quantidade adicional de quadros além do ponteiro base. Por exemplo, se o ponteiro base 0x0012FF00 for o endereço do quadro 3, o comando .frame 12ff00 será equivalente a .frame 3 e .frame 12ff00 2 será equivalente a .frame 5.

StackPtr
(somente processador baseado em x86) Especifica o ponteiro de pilha para o rastreamento de pilha usado para determinar o quadro. Se você omitir StackPtr e InstructionPtr, o depurador usará o ponteiro de pilha especificado pelo registro esp e o ponteiro de instrução especificado pelo registro de eip .

InstructionPtr
(somente processador baseado em x86) Especifica o ponteiro de instrução para o rastreamento de pilha usado para determinar o quadro. Se você omitir StackPtr e InstructionPtr, o depurador usará o ponteiro de pilha especificado pelo registro esp e o ponteiro de instrução especificado pelo registro de eip .

Ambiente

Item Descrição
Modos Modo de usuário, modo kernel
Destinos Ao vivo, despejo de memória
Plataformas Tudo

Informações adicionais

Para obter mais informações sobre o contexto local e outras configurações de contexto, consulte Alterando contextos. Para obter mais informações sobre como exibir variáveis locais e outros comandos relacionados à memória, consulte Leitura e gravação de memória.

Comentários

Quando um aplicativo está em execução, o significado das variáveis locais depende da localização do contador do programa, pois o escopo dessas variáveis se estende apenas à função na qual elas são definidas. Se você não usar o comando .frame , o depurador usará o escopo da função atual (o quadro atual na pilha) como o contexto local.

Para alterar o contexto local, use o comando .frame e especifique o número de quadro desejado.

O número do quadro é a posição do quadro de pilha dentro do rastreamento de pilha. Você pode exibir esse rastreamento de pilha com o comando k (Exibir Backtrace de Pilha) ou a janela Chamadas. A primeira linha (o quadro atual) é o número do quadro 0. As linhas subsequentes representam os números de quadro 1, 2, 3 e assim por diante.

Se você usar o parâmetro n com o comando k , o comando k exibirá números de quadro junto com o rastreamento de pilha. Esses números de quadro são sempre exibidos em formato hexadecimal. Por outro lado, o comando .frame interpreta seu argumento no radix padrão, a menos que você substitua essa configuração por um prefixo como 0x. Para alterar o radix padrão, use o comando n (Definir Base numérica ).

Você pode definir o contexto local para um quadro de pilha diferente para permitir que você exiba novas informações de variável local. No entanto, as variáveis reais disponíveis dependem do código que está sendo executado.

O contexto local será redefinido para o escopo do contador do programa se ocorrer qualquer execução de aplicativo. O contexto local será redefinido para o quadro de pilha superior se o contexto de registro for alterado.