Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengekspos properti bingkai tumpukan.
Sintaks
IDiaStackFrame : IUnknown
Metode dalam Urutan Vtable
Berikut ini adalah metode yang didukung oleh antarmuka ini:
| Metode | Deskripsi |
|---|---|
| IDiaStackFrame::get_allocatesBasePointer | Mengambil bendera yang menunjukkan bahwa penunjuk dasar dialokasikan untuk kode dalam rentang alamat ini. Metode ini tidak digunakan lagi. |
| IDiaStackFrame::get_base | Mengambil basis alamat bingkai. |
| IDiaStackFrame::get_cplusplusExceptionHandling | Mengambil bendera yang menunjukkan bahwa penanganan pengecualian C++ berlaku. |
| IDiaStackFrame::get_functionStart | Mengambil bendera yang menunjukkan bahwa blok berisi titik masuk fungsi. |
| IDiaStackFrame::get_lengthLocals | Mengambil jumlah byte variabel lokal yang didorong pada tumpukan. |
| IDiaStackFrame::get_lengthParams | Mengambil jumlah byte parameter yang didorong pada tumpukan. |
| IDiaStackFrame::get_lengthProlog | Mengambil jumlah byte kode prolog dalam blok |
| IDiaStackFrame::get_lengthSavedRegisters | Mengambil jumlah byte register tersimpan yang didorong pada tumpukan. |
| IDiaStackFrame::get_localsBase | Mengambil basis alamat lokal. |
| IDiaStackFrame::get_maxStack | Mengambil jumlah maksimum byte yang didorong pada tumpukan dalam bingkai. |
| IDiaStackFrame::get_rawLVarInstanceValue | Mengambil nilai variabel lokal yang ditentukan sebagai byte mentah. |
| IDiaStackFrame::get_registerValue | Mengambil nilai register yang ditentukan. |
| IDiaStackFrame::get_returnAddress | Mengambil alamat pengembalian bingkai. |
| IDiaStackFrame::get_size | Mengambil ukuran bingkai dalam byte. |
| IDiaStackFrame::get_systemExceptionHandling | Mengambil bendera yang menunjukkan bahwa penanganan pengecualian sistem berlaku. |
| IDiaStackFrame::get_type | Mengambil jenis bingkai. |
Keterangan
Bingkai tumpukan adalah abstraksi panggilan fungsi selama eksekusinya.
Catatan untuk Penelepon
Dapatkan antarmuka ini dengan memanggil metode IDiaEnumStackFrames::Next. Lihat antarmuka IDiaEnumStackFrames untuk contoh tentang mendapatkan antarmuka IDiaStackFrame.
Contoh
Contoh ini menampilkan berbagai atribut bingkai tumpukan.
void PrintStackFrame(IDiaStackFrame* pFrame)
{
if (pFrame != NULL)
{
ULONGLONG bottom = 0;
ULONGLONG top = 0;
if (pFrame->get_base(&bottom) == S_OK &&
pFrame->get_registerValue( CV_REG_ESP, &top ) == S_OK )
{
printf("range = 0x%08I64x - 0x%08I64x\n", bottom, top);
}
ULONGLONG returnAddress = 0;
if (pFrame->get_returnAddress(&returnAddress) == S_OK)
{
printf("return address = 0x%08I64x\n", returnAddress);
}
DWORD lengthFrame = 0;
DWORD lengthLocals = 0;
DWORD lengthParams = 0;
DWORD lengthProlog = 0;
DWORD lengthSavedRegs = 0;
if (pFrame->get_size(&lengthFrame) == S_OK &&
pFrame->get_lengthLocals(&lengthLocals) == S_OK &&
pFrame->get_lengthParams(&lengthParams) == S_OK &&
pFrame->get_lengthProlog(&lengthProlog) == S_OK &&
pFrame->get_lengthSavedRegisters(&lengthSavedRegs) == S_OK)
{
printf("stack frame size = 0x%08lx bytes\n", lengthFrame);
printf("length of locals = 0x%08lx bytes\n", lengthLocals);
printf("length of parameters = 0x%08lx bytes\n", lengthParams);
printf("length of prolog = 0x%08lx bytes\n", lengthProlog);
printf("length of saved registers = 0x%08lx bytes\n", lengthSavedRegs);
}
}
}
Persyaratan
Header: Dia2.h
Library: diaguids.lib
DLL: msdia80.dll