IXCLRDataProcess::FollowStub2 方法

给定一个地址,该地址是 CLR 存根(以及上一个后续的可能状态)确定下一个执行地址,检查存根是否已退出。

注意:仅当进程修订返回 IXCLRDataProcess::Request 至少为 7 时,此方法才可用。 对于较低的进程修订,调用方应使用过时 IXCLRDataProcess::FollowStub 的方法。

注意

此 API 最初旨在供运行时内部使用。 尽管现在支持第三方使用,但我们建议尽量使用 ICorDebugICorProfiler API。

语法

HRESULT FollowStub(
    [in] IXCLRDataTask *task,
    [in] ULONG32 inFlags,
    [in] CLRDATA_ADDRESS inAddr,
    [in] CLRDATA_FOLLOW_STUB_BUFFER *inBuffer,
    [out] CLRDATA_ADDRESS *outAddr,
    [out] CLRDATA_FOLLOW_STUB_BUFFER *outBuffer,
    [out] ULONG32 *outFlags
);

参数

task
[in]要遵循存根的任务。

inFlags
[in]描述如何遵循存根的一组标志。 这必须是当前仅包含一个值的枚举值 CLRDataFollowStubInFlag :CLRDATA_FOLLOW_STUB_DEFAULT (0)。

inAddr
[in]要遵循的存根的地址

inBuffer
[in]一个不透明的数据缓冲区,用于在内部维护走存根链的状态。 在对方法的初始调用 FollowStub 中,这应该是 NULL。

outAddr
[out]根据存根确定的下一个执行地址。

outBuffer
[out]一个不透明的数据缓冲区,用于在内部维护走存根链的状态。

outFlags
[out]描述遵循存根的结果的一组标志。 这是枚举的值 CLRDataFollowStubOutFlag 。 如果值为 CLRDATA_FOLLOW_STUB_INTERMEDIATE (0),则结果是遵循存根的中间步骤,调用方可以再次调用 FollowStub。 如果值为 CLRDATA_FOLLOW_STUB_EXIT (1),则这是存根链的末尾, outAddr 是链末尾的执行地址。

注解

给定地址可以通过返回类型CLRDATA_ADDRESS_RUNTIME_MANAGED_STUBCLRDATA_ADDRESS_RUNTIME_UNMANAGED_STUB的方法的使用IXCLRDataProcess::GetAddressType来确定为存根。

提供的方法是接口的 IXCLRDataProcess 一部分,对应于虚拟方法表的第 48 个槽。

要求

平台:请参阅系统要求。 标头:无;库:无;.NET Framework 版本:自 4.7 起可用

请参阅