Bagikan melalui


IDiaFrameData::get_program

Mengambil string program yang digunakan untuk menghitung set register sebelum panggilan ke fungsi saat ini.

Sintaks

HRESULT get_program ( 
   BSTR* pRetVal
);

Parameter

pRetVal

[out] Mengembalikan string program.

Tampilkan Nilai

Jika berhasil, mengembalikan S_OK. Mengembalikan S_FALSE jika properti ini tidak didukung. Jika tidak, kembalikan kode galat.

Keterangan

String program adalah urutan makro yang ditafsirkan untuk membangun prolog. Misalnya, bingkai tumpukan umum mungkin menggunakan string program "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =". Formatnya adalah notasi poles terbalik, di mana operator mengikuti operand. T0 mewakili variabel sementara pada tumpukan. Contoh ini melakukan langkah-langkah berikut:

  1. Pindahkan konten register ebp ke T0.

  2. Tambahkan 4 ke nilai di T0 untuk menghasilkan alamat, dapatkan nilai dari alamat tersebut, dan simpan nilai dalam register eip.

  3. Dapatkan nilai dari alamat yang disimpan di T0 dan simpan nilai tersebut di register ebp.

  4. Tambahkan 8 ke nilai di T0 dan simpan nilai tersebut di register esp.

    Perhatikan bahwa string program khusus untuk CPU dan konvensi panggilan yang disiapkan untuk fungsi yang diwakili oleh bingkai tumpukan saat ini.

Baca juga