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 epuiTextLength
não for nulo, a função devolve o comprimento da cadeia empuiTextLength
.Se
wszTextOut
não for nulo, a função armazena texto atéwszTextOut
à localização indicada porpuiTextLength
. 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
epuiTransitionContextCount
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 epuiTransitionContextCount
não for nulo, a função devolve o número necessário de entradas de contexto empuiTransitionContextCount
.Se
pTransitionContexts
não for nulo, a função trata-a como uma matriz de estruturas de comprimentopuiTransitionContextCount
. O tamanho da estrutura é fornecido poruiSizeOfContext
, e tem de ser o tamanho de SimpleContext ouCONTEXT
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 cadamodule!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