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 Far 呼び出しの場合は TRUE です

Virtual

仮想フレームの場合、このメンバーは TRUE です

Reserved[3]

このメンバーは 、StackWalk 関数によって内部的に使用されます。

KdHelp

カーネル コールバック フレームを歩くヘルパー データを指定する KDHELP 構造体。

AddrBStore

Intel Itanium: バッキング ストア (RsBSP) を指定する ADDRESS 構造体。

注釈

この構造体は 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

要件

要件
Header dbghelp.h
再頒布可能パッケージ DbgHelp.dll 5.1 以降

こちらもご覧ください

アドレス

FPO_DATA

IMAGE_FUNCTION_ENTRY

KDHELP

StackWalk