IDiaFrameData::get_program
Recupera la stringa di programma utilizzata per calcolare il set di registri prima della chiamata alla funzione corrente.
Sintassi
HRESULT get_program (
BSTR* pRetVal
);
Parametri
pRetVal
[out] Restituisce la stringa del programma.
Valore restituito
Se l'esito è positivo, restituisce S_OK
. Restituisce S_FALSE
se questa proprietà non è supportata. In caso contrario, verrà restituito un codice di errore.
Osservazioni:
La stringa del programma è una sequenza di macro interpretate per stabilire il prologo. Ad esempio, un tipico stack frame potrebbe usare la stringa "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + ="
di programma . Il formato è la notazione lucida inversa, in cui gli operatori seguono gli operandi. T0
rappresenta una variabile temporanea nello stack. L'esempio segue questa procedura:
Spostare il contenuto del registro
ebp
inT0
.Aggiungere
4
al valore inT0
per produrre un indirizzo, ottenere il valore da tale indirizzo e archiviare il valore nel registroeip
.Ottenere il valore dall'indirizzo archiviato in
T0
e archiviare tale valore nel registroebp
.Aggiungere
8
al valore inT0
e archiviare tale valore nel registroesp
.Si noti che la stringa del programma è specifica della CPU e della convenzione di chiamata configurata per la funzione rappresentata dal frame dello stack corrente.