Partilhar via


Função de _EFN_StackTrace

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

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
    [in] O cliente que está sendo depurado.

  • wszTextOut
    [out] A representação de texto de rastreamento de pilha.

  • puiTextLength
    [out] Um ponteiro para o número de caracteres na wszTextOut.

  • pTransitionContexts
    [out] A matriz de contextos de transição.

  • puiTransitionContextCount
    [out] Um ponteiro para o número de contextos de transição na matriz.

  • uiSizeOfContext
    [in] O tamanho da estrutura de contexto.

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

Comentários

O _EFN_StackTrace estrutura pode ser chamada a partir de uma interface de programação WinDbg. Parâmetros são usados como segue:

  • Se wszTextOut é nulo e puiTextLength é não nulo, a função retorna o comprimento da seqüência de caracteres em puiTextLength.

  • Se wszTextOut é não nulo, a função armazena o texto em wszTextOut até o local indicado pelo puiTextLength. Retorna com êxito se não havia espaço suficiente no buffer, ou retorna E_OUTOFMEMORY se o buffer não era longa o suficiente.

  • A parte da transição da função será ignorada se pTransitionContexts e puiTransitionContextCount são os dois null. Nesse caso, a função fornece os chamadores com saída de texto, apenas os nomes de função.

  • Se pTransitionContexts é nulo e puiTransitionContextCount é não nulo, a função retorna o número necessário de entradas de contexto em puiTransitionContextCount.

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

  • wszTextOuté escrito no seguinte formato:

    "<ModuleName>!<Function Name>[+<offset in hex>]
    ...
    (TRANSITION)
    ..."
    
  • Se o deslocamento em hex 0x0, o deslocamento não é gravado.

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

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

    #define SOS_STACKTRACE_SHOWADDRESSES   0x00000001
    

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: SOS_Stacktrace.h

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Outros recursos

Funções estáticas globais de depuração.