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 以降 |