Partilhar via


Função _EFN_StackTrace

Fornece uma representação de texto de um rastreio de pilha gerida e uma matriz de CONTEXT registos, um para cada transição entre código não gerido e gerido.

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
[in] O cliente a ser depurado.

wszTextOut
[fora] A representação de texto do rastreio da pilha.

puiTextLength
[fora] Um ponteiro para o número de carateres em wszTextOut.

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

puiTransitionContextCount
[fora] 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 registo EBP e o ponteiro da pilha (ESP) à 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 devolve o comprimento da cadeia em puiTextLength.

  • Se wszTextOut não for nulo, a função armazena texto até wszTextOut à localização indicada por puiTextLength. Devolve com êxito se existir espaço suficiente na memória intermédia ou devolve E_OUTOFMEMORY se a memória intermédia não tiver sido suficientemente longa.

  • A parte de transição da função é ignorada se pTransitionContexts e puiTransitionContextCount ambas forem nulas. Neste caso, a função fornece aos chamadores a saída de texto apenas dos nomes das funções.

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

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

  • wszTextOut é escrito no seguinte formato:

    "<ModuleName>!<Function Name>[+<offset in hex>]  
    ...  
    (TRANSITION)  
    ..."  
    
  • Se o desvio no hexadecito for 0x0, não será escrito nenhum desvio.

  • Se não existir nenhum código gerido no thread atualmente em contexto, a função devolve SOS_E_NOMANAGEDCODE.

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

    #define SOS_STACKTRACE_SHOWADDRESSES   0x00000001  
    

Requisitos

Plataformas: Veja Requisitos do Sistema.

Cabeçalho: SOS_Stacktrace.h

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

Ver também