共用方式為


DEBUG_STACK_FRAME結構 (dbgeng.h)

DEBUG_STACK_FRAME 結構描述堆疊框架的堆疊框架和目前指令的位址。

語法

typedef struct _DEBUG_STACK_FRAME {
  ULONG64 InstructionOffset;
  ULONG64 ReturnOffset;
  ULONG64 FrameOffset;
  ULONG64 StackOffset;
  ULONG64 FuncTableEntry;
  ULONG64 Params[4];
  ULONG64 Reserved[6];
  BOOL    Virtual;
  ULONG   FrameNumber;
} DEBUG_STACK_FRAME, *PDEBUG_STACK_FRAME;

成員

InstructionOffset

處理程式虛擬位址空間中堆疊框架相關指示的位置。 這通常是下一個堆疊框架的傳回位址,如果框架位於堆疊頂端,則為目前的指令指標。

ReturnOffset

進程虛擬位址空間中堆疊框架之傳回位址的位置。 這通常是上一個堆疊框架的相關指示。

FrameOffset

如果已知,處理程式的堆疊框架虛擬位址空間中的位置。 某些處理器架構沒有框架或有一個以上的架構。 在這些情況下,引擎會為堆疊的指定層級選擇最具代表性的值。

StackOffset

處理程式虛擬位址空間中處理器堆疊的位置。

FuncTableEntry

如果有的話,目標虛擬位址空間中此框架之函式專案的虛擬位址空間中的位置。 設定時,此指標不保證會無限期維持有效,且不應保留以供日後使用。 請改為儲存 InstructionOffset 的值,並將其與 IDebugSymbols3::GetFunctionEntryByOffset 搭配使用,稍後擷取函式項目資訊。

Params[4]

如果有的話,傳遞至函式的前四個堆疊位置值。 如果少於四個自變數,其餘項目會設定為零。 這些堆疊位置不保證包含參數值。 某些呼叫慣例和編譯程式優化可能會干擾參數信息的識別。 如需更詳細的自變數資訊和適當的位置處理,請使用 IDebugSymbols::GetScopeSymbolGroup 來擷取實際的參數符號。

Reserved[6]

保留供日後使用。

Virtual

如果調試程式透過回溯產生這個堆疊框架,此值會設定為 TRUE。 否則,如果值是從線程的目前內容形成,則會 FALSE。 一般而言,這是堆疊頂端框架 TRUE,其中 InstructionOffset 是目前的指令指標。

FrameNumber

框架的索引。 此索引會計算呼叫堆疊頂端的框架數目。 堆疊頂端的框架,代表目前呼叫,具有索引零。

要求

要求 價值
標頭 dbgeng.h (include DbgEng.h)