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) |