Partilhar via


Função _EFN_StackTrace

Fornece uma representação de texto de um rastreamento de pilha gerenciado e uma matriz de CONTEXT registros, um para cada transição entre código não gerenciado e gerenciado.

Sintaxe

HRESULT CALLBACK _EFN_StackTrace(
    [in]  PDEBUG_CLIENT  Client,
    [out] WCHAR          wszTextOut[],
    [out] size_t         *puiTextLength,
    [out] LPVOID         pTransitionContexts,
    [out] size_t         *puiTransitionContextCount,
    [in]  size_t         uiSizeOfContext,
    [in]  DWORD          Flags
);

Parâmetros

Client [em] O cliente que está sendo depurado.

wszTextOut [saídas] A representação de texto do rastreamento de pilha.

puiTextLength [saídas] Um ponteiro para o número de caracteres em wszTextOut.

pTransitionContexts [saídas] A matriz de contextos de transição.

puiTransitionContextCount [saídas] Um ponteiro para o número de contextos de transição na matriz.

uiSizeOfContext [em] O tamanho da estrutura de contexto.

Flags [em] Defina como 0 ou SOS_STACKTRACE_SHOWADDRESSES (0x01) para mostrar o registro EBP e o ponteiro de pilha enter (ESP) na frente de cada module!functionname linha.

Observações

A _EFN_StackTrace estrutura pode ser chamada a partir de uma interface programática WinDbg. Os parâmetros são utilizados da seguinte forma:

  • Se wszTextOut for nulo e puiTextLength não for nulo, a função retornará o comprimento da cadeia de caracteres em puiTextLength.

  • Se wszTextOut não for null, a função armazena texto até wszTextOut o local indicado por puiTextLength. Ele retorna com êxito se houver espaço suficiente no buffer ou retorna E_OUTOFMEMORY se o buffer não foi longo o suficiente.

  • A parte de transição da função é ignorada se pTransitionContexts e puiTransitionContextCount são ambos nulos. Nesse caso, a função fornece aos chamadores uma saída de texto apenas dos nomes das funções.

  • Se pTransitionContexts for null e puiTransitionContextCount não for null, a função retornará o número necessário de entradas de contexto no puiTransitionContextCount.

  • Se pTransitionContexts não for nulo, a função o trata como uma matriz de estruturas de comprimento puiTransitionContextCount. O tamanho da estrutura é dado por uiSizeOfContext, e deve ser o tamanho de SimpleContext ou CONTEXT para a arquitetura.

  • wszTextOut está escrito no seguinte formato:

    "<ModuleName>!<Function Name>[+<offset in hex>]
    ...
    (TRANSITION)
    ..."
    
  • Se o deslocamento em hexadecimal for 0x0, nenhum deslocamento será gravado.

  • Se não houver nenhum código gerenciado no thread atualmente no contexto, a função retornará SOS_E_NOMANAGEDCODE.

  • O Flags parâmetro é 0 ou SOS_STACKTRACE_SHOWADDRESSES para ver EBP e ESP na frente de cada module!functionname linha. Por padrão, é 0.

    #define SOS_STACKTRACE_SHOWADDRESSES   0x00000001
    

Requisitos

Plataformas: Consulte Requisitos do sistema.

Cabeçalho: SOS_Stacktrace.h

Versões do .NET Framework: Disponível desde 2.0

Consulte também