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 epuiTextLength
não for nulo, a função retornará o comprimento da cadeia de caracteres empuiTextLength
.Se
wszTextOut
não for null, a função armazena texto atéwszTextOut
o local indicado porpuiTextLength
. 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
epuiTransitionContextCount
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 epuiTransitionContextCount
não for null, a função retornará o número necessário de entradas de contexto nopuiTransitionContextCount
.Se
pTransitionContexts
não for nulo, a função o trata como uma matriz de estruturas de comprimentopuiTransitionContextCount
. O tamanho da estrutura é dado poruiSizeOfContext
, e deve ser o tamanho de SimpleContext ouCONTEXT
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 cadamodule!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