ICorDebugCode3::GetReturnValueLiveOffset 方法
对于指定的 IL 偏移量,获取应放置断点的本机偏移量,以便调试程序可以从函数获取返回值。
语法
HRESULT GetReturnValueLiveOffset(
[in] ULONG32 ILoffset,
[in] ULONG32 bufferSize,
[out] ULONG32 *pFetched,
[out, size_is(buffersize), length_is(*pFetched)] ULong32 pOffsets[]
);
参数
ILoffset
IL 偏移量。 它必须是函数调用站点,否则函数调用将失败。
bufferSize
可用于存储 pOffsets
的字节数。
pFetched
指向实际返回的偏移量的指针。 通常,其值为1,但单个 IL 指令可以映射到多个 CALL
程序集指令。
pOffsets
本机偏移量的数组。 通常,pOffsets
包含单个偏移量,尽管单个 IL 指令可以映射到多个 CALL
程序集指令。
备注
此方法与 ICorDebugILFrame3::GetReturnValueForILOffset 方法配合使用,以获取返回引用类型的方法的返回值。 将函数调用站点的 IL 偏移量传递给此方法会返回一个或多个本机偏移量。 然后,调试程序可以在函数中的这些本机偏移量上设置断点。 当调试程序遇到其中一个断点时,你可以将传递给此方法的同一 IL 偏移量传递给 ICorDebugILFrame3::GetReturnValueForILOffset 以获取返回值。 然后,调试程序应清除它设置的所有断点。
警告
ICorDebugCode3::GetReturnValueLiveOffset
和 ICorDebugILFrame3::GetReturnValueForILOffset 仅允许你获取引用类型的返回值信息。 不支持从值类型(即派生自 ValueType 的所有类型)检索返回值信息。
函数将返回下表中显示的 HRESULT
值。
HRESULT 值 |
说明 |
---|---|
S_OK |
成功。 |
CORDBG_E_INVALID_OPCODE |
给定的 IL 偏移量站点不是调用指令,或该函数返回 void 。 |
CORDBG_E_UNSUPPORTED |
给定的 IL 偏移量是正确的调用,但返回类型不支持获取返回值。 |
ICorDebugCode3::GetReturnValueLiveOffset
方法仅适用于基于 x86 的系统和 AMD64 系统。
要求
平台:请参阅系统要求。
标头:CorDebug.idl、CorDebug.h
库:CorGuids.lib
.NET Framework 版本:自 4.5.1 起可用
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈