Поделиться через


IDiaFrameData::get_program

Извлекает строку программы, которая используется для вычисления набор регистров перед вызовом текущей функции.

HRESULT get_program ( 
   BSTR* pRetVal
);

Параметры

  • pRetVal
    [out] возвращает строку программы.

Возвращаемое значение

В случае успеха возвращает S_OK. Возвращает S_FALSE если это свойство не поддерживается. В противном случае возвращает код ошибки.

Заметки

Строка интерпретируется программы последовательность макросов, чтобы задать прологе. Например, конечный кадр стека может использовать строку программы "$T0 $ebp = $eip $T0 4 + ^ = $ebp $T0 ^ = $esp $T0 8 + =". Формат обратная польская нотация, в котором операторы, за которым следует операндами. T0 представляет временную переменную в стеке. Этот пример выполняет следующие шаги:

  1. Содержимое перемещения регистров ebp В T0.

  2. Добавить 4 значения в T0 создать адрес, получите значение из этого адреса и сохраните значение в регистре eip.

  3. Получите значение из адреса, расположенных в T0 и хранилище то значение в регистре ebp.

  4. Добавить 8 значения в T0 и хранилище то значение в регистре esp.

Обратите внимание, что строка программы относится к ЦП и вызывающему установке соглашения для функции, представленной текущим кадром стека.

См. также

Ссылки

IDiaFrameData