检索用于计算在调用之前设置的注册到当前函数的程序字符串。
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。
获取在注册 ebp值从在 T0 存储的地址处的值和存储。
添加 8 到 T0 的值并存储该值在注册 esp。
请注意程序字符串是特定于 CPU 和到当前堆栈帧表示的函数的调用约定设置。