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