Megosztás a következőn keresztül:


_EFN_StackTrace függvény

Szöveges ábrázolást biztosít egy felügyelt verem nyomkövetéséről és egy rekordtömbről CONTEXT , egyet a nem felügyelt és a felügyelt kód közötti átmenetekhez.

Syntax

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
);

Paraméterek

Client [in] A hibakeresés alatt álló ügyfél.

wszTextOut [kifelé] A verem nyomkövetésének szöveges ábrázolása.

puiTextLength [kifelé] Mutató a karakterek számához a fájlban wszTextOut.

pTransitionContexts [kifelé] Az áttűnési környezetek tömbje.

puiTransitionContextCount [kifelé] Mutató a tömb áttűnési környezeteinek számára.

uiSizeOfContext [in] A környezetstruktúra mérete.

Flags [in] Állítsa be 0 vagy SOS_STACKTRACE_SHOWADDRESSES (0x01) értékre az EBP-regisztráció megjelenítéséhez, valamint az egyes module!functionname sorok előtt lévő veremmutató (ESP) megjelenítéséhez.

Megjegyzések

A _EFN_StackTrace struktúra meghívható egy WinDbg programozott felületről. A paraméterek a következők:

  • Ha wszTextOut null, és puiTextLength nem null, akkor a függvény a sztring hosszát adja vissza a következőben puiTextLength: .

  • Ha wszTextOut nem null, a függvény a szöveget wszTextOut a megadott puiTextLengthhelyre tárolja. Sikeresen visszaáll, ha elegendő hely volt a pufferben, vagy E_OUTOFMEMORY ad vissza, ha a puffer nem volt elég hosszú.

  • A függvény áttűnési részét figyelmen kívül hagyja, ha pTransitionContexts és puiTransitionContextCount mindkettő null értékű. Ebben az esetben a függvény csak a függvénynevek szöveges kimenetét biztosítja a hívóknak.

  • Ha pTransitionContexts null, és puiTransitionContextCount nem null, akkor a függvény a szükséges számú környezeti bejegyzést adja vissza a következőben puiTransitionContextCount: .

  • Ha pTransitionContexts nem null, akkor a függvény hosszstruktúrák puiTransitionContextCounttömbjeként kezeli. A struktúra méretét a SimpleContext CONTEXT vagy az architektúra adja uiSizeOfContextmeg.

  • wszTextOut írása a következő formátumban történik:

    "<ModuleName>!<Function Name>[+<offset in hex>]
    ...
    (TRANSITION)
    ..."
    
  • Ha a hatszög eltolása 0x0, akkor nincs eltolás megírva.

  • Ha a folyamatban lévő szálon nincs felügyelt kód, a függvény SOS_E_NOMANAGEDCODE ad vissza.

  • A Flags paraméter 0 vagy SOS_STACKTRACE_SHOWADDRESSES az EBP és az ESP minden module!functionname sor előtt való megjelenítéséhez. Alapértelmezés szerint 0.

    #define SOS_STACKTRACE_SHOWADDRESSES   0x00000001
    

Követelmények

Platformok: Lásd a rendszerkövetelményeket.

Fejléc: SOS_Stacktrace.h

.NET-keretrendszer verziók: 2.0 óta elérhető

Lásd még