_EFN_StackTrace (Función)
Proporciona una representación de texto de un seguimiento de pila administrado y una matriz de registros CONTEXT
, uno por cada transición entre código no administrado y código administrado.
Sintaxis
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] El cliente que se está depurando.
wszTextOut
[out] Representación de texto del seguimiento de la pila.
puiTextLength
[out] Puntero al número de caracteres de wszTextOut
.
pTransitionContexts
[out] Matriz de contextos de transición.
puiTransitionContextCount
[out] Puntero al número de contextos de transición de la matriz.
uiSizeOfContext
[in] Tamaño de la estructura de contexto.
Flags
[in] Establezca en 0 o SOS_STACKTRACE_SHOWADDRESSES (0x01) para mostrar el registro EBP y el puntero de pila de entrada (ESP) delante de cada module!functionname
línea.
Comentarios
Se puede llamar a la estructura _EFN_StackTrace
desde una interfaz de programación de WinDbg. Los parámetros se usan de la siguiente manera:
Si
wszTextOut
es null ypuiTextLength
no es null, la función devuelve la longitud de cadena enpuiTextLength
.Si
wszTextOut
no es null, la función almacena texto enwszTextOut
hasta la ubicación indicada porpuiTextLength
. Devuelve correctamente si había suficiente espacio en el búfer o devuelve E_OUTOFMEMORY si el búfer no era lo suficientemente largo.La parte de transición de la función se omite si
pTransitionContexts
ypuiTransitionContextCount
son null. En este caso, la función proporciona a los llamadores la salida de texto solo de los nombres de función.Si
pTransitionContexts
es null ypuiTransitionContextCount
no es NULL, la función devuelve el número necesario de entradas de contexto enpuiTransitionContextCount
.Si
pTransitionContexts
no es null, la función la trata como una matriz de estructuras de longitudpuiTransitionContextCount
. El tamaño de la estructura lo asignauiSizeOfContext
, y debe ser el tamaño de SimpleContext oCONTEXT
para la arquitectura.wszTextOut
se escribe en el siguiente formato:"<ModuleName>!<Function Name>[+<offset in hex>] ... (TRANSITION) ..."
Si el desplazamiento en hexadecimal es 0x0, no se escribe ningún desplazamiento.
Si no hay código administrado en el subproceso actualmente en contexto, la función devuelve SOS_E_NOMANAGEDCODE.
El parámetro
Flags
es 0 o SOS_STACKTRACE_SHOWADDRESSES para ver EBP y ESP delante de cada líneamodule!functionname
. De manera predeterminada, es 0.#define SOS_STACKTRACE_SHOWADDRESSES 0x00000001
Requisitos
Plataformas: Vea Requisitos de sistema.
Encabezado: SOS_Stacktrace.h
Versiones de .NET Framework: disponible a partir de la versión 2.0