struktur DEBUG_STACK_FRAME (dbgeng.h)

Struktur DEBUG_STACK_FRAME menjelaskan bingkai tumpukan dan alamat instruksi saat ini untuk bingkai tumpukan.

Sintaks

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;

Anggota

InstructionOffset

Lokasi di ruang alamat virtual proses dari instruksi terkait untuk bingkai tumpukan. Ini biasanya alamat pengembalian untuk bingkai tumpukan berikutnya, atau penunjuk instruksi saat ini jika bingkai berada di bagian atas tumpukan.

ReturnOffset

Lokasi di ruang alamat virtual proses dari alamat pengembalian untuk bingkai tumpukan. Ini biasanya merupakan instruksi terkait untuk bingkai tumpukan sebelumnya.

FrameOffset

Lokasi di ruang alamat virtual proses dari bingkai tumpukan, jika diketahui. Beberapa arsitektur prosesor tidak memiliki bingkai atau memiliki lebih dari satu. Dalam kasus ini, mesin memilih nilai yang paling representatif untuk tingkat tumpukan yang diberikan.

StackOffset

Lokasi di ruang alamat virtual proses tumpukan prosesor.

FuncTableEntry

Lokasi di ruang alamat virtual target dari entri fungsi untuk bingkai ini, jika tersedia. Ketika diatur, pointer ini tidak dijamin akan tetap valid tanpa batas waktu dan tidak boleh ditahan untuk digunakan di masa mendatang. Sebagai gantinya, simpan nilai InstructionOffset dan gunakan dengan IDebugSymbols3::GetFunctionEntryByOffset untuk mengambil informasi entri fungsi nanti.

Params[4]

Nilai empat slot tumpukan pertama yang diteruskan ke fungsi, jika tersedia. Jika ada kurang dari empat argumen, entri yang tersisa diatur ke nol. Slot tumpukan ini tidak dijamin berisi nilai parameter. Beberapa konvensi panggilan dan pengoptimalan pengkompilasi mungkin mengganggu identifikasi informasi parameter. Untuk informasi argumen yang lebih rinci dan penanganan lokasi yang tepat, gunakan IDebugSymbols::GetScopeSymbolGroup untuk mengambil simbol parameter aktual.

Reserved[6]

Disiapkan untuk penggunaan masa mendatang.

Virtual

Nilai diatur ke TRUE jika bingkai tumpukan ini dihasilkan oleh debugger dengan melepas penat. Jika tidak, nilainya adalah FALSE jika dibentuk dari konteks utas saat ini. Biasanya, ini TRUE untuk bingkai di bagian atas tumpukan, di mana InstructionOffset adalah penunjuk instruksi saat ini.

FrameNumber

Indeks bingkai. Indeks ini menghitung jumlah bingkai dari bagian atas tumpukan panggilan. Bingkai di bagian atas tumpukan, mewakili panggilan saat ini, memiliki nol indeks.

Persyaratan

Persyaratan Nilai
Header dbgeng.h (termasuk DbgEng.h)