Condividi tramite


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:

  1. Spostare il contenuto del registro ebp in T0.

  2. Aggiungere 4 al valore in T0 per produrre un indirizzo, ottenere il valore da tale indirizzo e archiviare il valore nel registro eip.

  3. Ottenere il valore dall'indirizzo archiviato in T0 e archiviare tale valore nel registro ebp.

  4. Aggiungere 8 al valore in T0 e archiviare tale valore nel registro esp.

    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.

Vedi anche