Compartilhar via


Método IDebugControl5::GetContextStackTraceEx (dbgeng.h)

O método GetContextStackTraceEx retorna os quadros na parte superior da pilha de chamadas, começando com um contexto de registro arbitrário e retornando o contexto de registro reconstruído para cada quadro de pilha. O método GetContextStackTraceEx fornece suporte a quadro embutido. Para obter mais informações sobre como trabalhar com funções embutidas, consulte Depurando código otimizado e funções embutidas.

Sintaxe

HRESULT GetContextStackTraceEx(
  [in, optional]  PVOID                 StartContext,
  [in]            ULONG                 StartContextSize,
  [out, optional] PDEBUG_STACK_FRAME_EX Frames,
  [in]            ULONG                 FramesSize,
  [out, optional] PVOID                 FrameContexts,
  [in]            ULONG                 FrameContextsSize,
  [in]            ULONG                 FrameContextsEntrySize,
  [out, optional] PULONG                FramesFilled
);

Parâmetros

[in, optional] StartContext

Especifica o contexto de registro para a parte superior da pilha.

[in] StartContextSize

Especifica o tamanho, em bytes, do contexto de registro StartContext .

[out, optional] Frames

Recebe os quadros de pilha. O número de elementos que essa matriz contém é FrameSize. Se Frames for NULL, essas informações não serão retornadas.

[in] FramesSize

Especifica o número de itens na matriz Frames.

[out, optional] FrameContexts

Recebe o contexto de registro reconstruído para cada quadro na pilha. As entradas nessa matriz correspondem às entradas na matriz Frames . O tipo do contexto de thread é a estrutura CONTEXT para o processador efetivo do destino. Se FrameContexts for NULL, essas informações não serão retornadas.

[in] FrameContextsSize

Especifica o tamanho, em bytes, da memória apontada por FrameContexts. O número de quadros de pilha retornados é igual ao número de contextos retornados e FrameContextsSize deve ser igual a FramesSize vezes FrameContextsEntrySize.

[in] FrameContextsEntrySize

Especifica o tamanho, em bytes, de cada contexto de quadro em FrameContexts.

[out, optional] FramesFilled

Recebe o número de quadros que foram colocados na matriz Quadros e contextos em FrameContexts. Se FramesFilled for NULL, essas informações não serão retornadas.

Retornar valor

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
 

Esse método também pode retornar valores de erro. Para obter mais informações, consulte Valores retornados.

Comentários

O rastreamento de pilha retornado a Frames e FrameContexts pode ser impresso usando OutputContextStackTraceEx.

É comum que os desenrolamentos de pilha restaurem apenas um subconjunto dos registros. Por exemplo, os desenrolamentos de pilha nem sempre restaurarão o estado de registro volátil porque os registros voláteis são registros de rascunho e o código não precisa preservá-los. Os registros que não são restaurados ao desenrolar são deixados como o último valor restaurado, portanto, deve-se tomar cuidado ao usar o estado de registro que pode não ser restaurado por um desenrolamento.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho dbgeng.h (inclua Dbgeng.h, Ntddk.h)

Confira também

GetStackTraceEx

IDebugControl5

OutputContextStackTraceEx

k, kb, kc, kd, kp, kP, kv (Exibir backtrace de pilha)