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
代表堆疊上的暫存變數。 此範例會執行下列步驟:
將暫存器
ebp
的內容移至T0
。將
4
新增至T0
中的值,以產生位址、從該位址取得值,並將值儲存在暫存器eip
中。從儲存在
T0
中的位址取得值,並將該值儲存在暫存器ebp
中。將
8
新增至T0
中的值,並將該值儲存在暫存器esp
中。請注意,程式字串專屬於 CPU 和針對目前堆疊框架所表示之函式所設定的呼叫慣例。