Compartilhar via


estrutura DEBUG_STACK_FRAME_EX (dbgeng.h)

A estrutura DEBUG_STACK_FRAME_EX descreve um quadro de pilha e o endereço da instrução atual para o quadro de pilha.

Sintaxe

typedef struct _DEBUG_STACK_FRAME_EX {
  ULONG64 InstructionOffset;
  ULONG64 ReturnOffset;
  ULONG64 FrameOffset;
  ULONG64 StackOffset;
  ULONG64 FuncTableEntry;
  ULONG64 Params[4];
  ULONG64 Reserved[6];
  BOOL    Virtual;
  ULONG   FrameNumber;
  ULONG   InlineFrameContext;
  ULONG   Reserved1;
} DEBUG_STACK_FRAME_EX, *PDEBUG_STACK_FRAME_EX;

Membros

InstructionOffset

O local no espaço de endereço virtual do processo da instrução relacionada para o quadro de pilha. Normalmente, esse é o endereço de retorno para o próximo quadro de pilha ou o ponteiro de instrução atual se o quadro estiver na parte superior da pilha.

ReturnOffset

O local no espaço de endereço virtual do processo do endereço de retorno para o quadro de pilha. Normalmente, essa é a instrução relacionada para o quadro de pilha anterior.

FrameOffset

O local no espaço de endereço virtual do processo do quadro de pilha, se conhecido. Algumas arquiteturas de processador não têm um quadro ou têm mais de um. Nesses casos, o mecanismo escolhe um valor mais representativo para o nível determinado da pilha.

StackOffset

O local no espaço de endereço virtual do processo da pilha do processador.

FuncTableEntry

O local no espaço de endereço virtual do destino da entrada de função para esse quadro, se disponível. Quando definido, não há garantia de que esse ponteiro permaneça válido indefinidamente e não deve ser mantido para uso futuro. Em vez disso, salve o valor de InstructionOffset e use-o com IDebugSymbols3::GetFunctionEntryByOffset para recuperar informações de entrada de função posteriormente.

Params[4]

Os valores dos quatro primeiros slots de pilha que são passados para a função, se disponíveis. Se houver menos de quatro argumentos, as entradas restantes serão definidas como zero. Esses slots de pilha não têm garantia de conter valores de parâmetro. Algumas convenções de chamada e otimizações do compilador podem interferir na identificação de informações de parâmetro. Para obter informações de argumento mais detalhadas e tratamento de localização adequado, use IDebugSymbols::GetScopeSymbolGroup para recuperar os símbolos de parâmetro reais.

Reserved[6]

Reservado para uso futuro. Definido como NULL.

Virtual

O valor será definido como TRUE se esse quadro de pilha tiver sido gerado pelo depurador desenrolando. Caso contrário, o valor será FALSE se ele tiver sido formado a partir do contexto atual de um thread. Normalmente, isso é TRUE para o quadro na parte superior da pilha, em que InstructionOffset é o ponteiro de instrução atual.

FrameNumber

O índice do quadro. Esse índice conta o número de quadros da parte superior da pilha de chamadas. O quadro na parte superior da pilha, representando a chamada atual, tem índice zero.

InlineFrameContext

Contexto de quadro embutido.

Reserved1

Usado para fins de alinhamento. Defina como 0.

Requisitos

Requisito Valor
Cabeçalho dbgeng.h (inclua DbgEng.h)