IDiaFrameData::get_program
Recupera la cadena de programa que se usa para calcular el conjunto de registros antes de la llamada a la función actual.
Sintaxis
HRESULT get_program (
BSTR* pRetVal
);
Parámetros
pRetVal
[out] Devuelve la cadena de programa.
Valor devuelto
Si la operación se realiza correctamente, devuelve S_OK
. Devuelve S_FALSE
si no se admite esta propiedad. De lo contrario, devuelve un código de error.
Observaciones
La cadena de programa es una secuencia de macros que se interpreta para establecer el prólogo. Por ejemplo, un marco de pila típico podría usar la cadena de programa "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + ="
. El formato es la notación polaca inversa, donde los operadores siguen a los operandos. T0
representa una variable temporal en la pila. En este ejemplo se realizan los siguientes pasos:
Mueva el contenido del registro
ebp
aT0
.Agregue
4
al valor enT0
para producir una dirección, obtenga el valor de esa dirección y almacene el valor en el registroeip
.Obtenga el valor de la dirección almacenada en
T0
y almacene ese valor en el registroebp
.Agregue
8
al valor deT0
y almacene ese valor en el registroesp
.Tenga en cuenta que la cadena de programa es específica de la CPU y de la convención de llamada configurada para la función representada por el marco de pila actual.