共用方式為


STACKFRAME 結構 (dbghelp.h)

代表堆疊框架。

語法

typedef struct _tagSTACKFRAME {
  ADDRESS AddrPC;
  ADDRESS AddrReturn;
  ADDRESS AddrFrame;
  ADDRESS AddrStack;
  PVOID   FuncTableEntry;
  DWORD   Params[4];
  BOOL    Far;
  BOOL    Virtual;
  DWORD   Reserved[3];
  KDHELP  KdHelp;
  ADDRESS AddrBStore;
} STACKFRAME, *LPSTACKFRAME;

成員

AddrPC

指定程式計數器的 ADDRESS 結構。

x86: 程式計數器為 EIP。

Intel Itanium: 程式計數器為 StIIP。

x64: 程式計數器為 RIP。

AddrReturn

指定傳回位址的 ADDRESS 結構。

AddrFrame

指定框架指標的 ADDRESS 結構。

x86: 畫面指標為 EBP。

Intel Itanium: 沒有框架指標,但會使用 AddrBStore

x64: 框架指標為 RBP 或 RDI。 這個值不一定會使用。

AddrStack

指定堆疊指標的 ADDRESS 結構。

x86: 堆疊指標為 ESP。

Intel Itanium: 堆疊指標為SP。

x64: 堆疊指標為 RSP。

FuncTableEntry

在 x86 計算機上,此成員是 FPO_DATA 結構。 如果沒有函式數據表專案,此成員為 NULL

Params[4]

函式的可能自變數。

Far

如果這是 WOW 遠距呼叫,則此成員為 TRUE

Virtual

如果這是虛擬框架,則此成員為 TRUE

Reserved[3]

StackWalk 函式會在內部使用此成員。

KdHelp

KDHELP 結構,指定逐步執行核心回呼框架的協助程序數據。

AddrBStore

Intel Itanium: ADDRESS 結構,指定 RsBSP) (備份儲存區。

備註

這個結構會取代 STACKFRAME 結構。 如需詳細資訊,請參閱 更新的平台支援STACKFRAME 的定義如下:Dbghelp.h。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define STACKFRAME STACKFRAME64
#define LPSTACKFRAME LPSTACKFRAME64
#else
typedef struct _tagSTACKFRAME {
    ADDRESS     AddrPC;               // program counter
    ADDRESS     AddrReturn;           // return address
    ADDRESS     AddrFrame;            // frame pointer
    ADDRESS     AddrStack;            // stack pointer
    PVOID       FuncTableEntry;       // pointer to pdata/fpo or NULL
    DWORD       Params[4];            // possible arguments to the function
    BOOL        Far;                  // WOW far call
    BOOL        Virtual;              // is this a virtual frame?
    DWORD       Reserved[3];
    KDHELP      KdHelp;
    ADDRESS     AddrBStore;           // backing store pointer
} STACKFRAME, *LPSTACKFRAME;
#endif

規格需求

需求
標頭 dbghelp.h
可轉散發套件 DbgHelp.dll 5.1 或更新版本

另請參閱

位址

FPO_DATA

IMAGE_FUNCTION_ENTRY

KDHELP

StackWalk