Compartir a través de


_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 y puiTextLength no es null, la función devuelve la longitud de cadena en puiTextLength.

  • Si wszTextOut no es null, la función almacena texto en wszTextOut hasta la ubicación indicada por puiTextLength. 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 y puiTransitionContextCount 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 y puiTransitionContextCount no es NULL, la función devuelve el número necesario de entradas de contexto en puiTransitionContextCount.

  • Si pTransitionContexts no es null, la función la trata como una matriz de estructuras de longitud puiTransitionContextCount. El tamaño de la estructura lo asigna uiSizeOfContext, y debe ser el tamaño de SimpleContext o CONTEXT 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ínea module!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

Consulte también