IDiaFrameData::get_program
Načte řetězec programu, který se používá k výpočtu sady registru před voláním aktuální funkce.
Syntaxe
HRESULT get_program (
BSTR* pRetVal
);
Parametry
pRetVal
[ven] Vrátí řetězec programu.
Vrácená hodnota
V případě úspěchu vrátí hodnotu S_OK
. Vrátí S_FALSE
, pokud tato vlastnost není podporována. V opačném případě vrátí kód chyby.
Poznámky
Řetězec programu je posloupnost maker, která se interpretují za účelem vytvoření prologue. Například typický rámec zásobníku může použít řetězec "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + ="
programu . Formát je reverzní leštěný zápis, kde operátory následují operandy. T0
představuje dočasnou proměnnou v zásobníku. Tento příklad provede následující kroky:
Přesunout obsah registru
ebp
doT0
.Přidejte
4
k hodnotěT0
pro vytvoření adresy, získejte hodnotu z této adresy a uložte hodnotu v registrueip
.Získá hodnotu z adresy uložené v
T0
registru a uloží ji do registruebp
.Přidejte
8
k hodnotěT0
a uložte ji v registruesp
.Všimněte si, že řetězec programu je specifický pro procesor a konvence volání nastavené pro funkci reprezentovanou aktuálním rámcem zásobníku.