ICorProfilerInfo9::GetCodeInfo4 方法

给定本机代码开始地址,返回存储此代码的虚拟内存块。

语法

HRESULT GetCodeInfo4( [in]  UINT_PTR pNativeCodeStartAddress,
                      [in]  ULONG32 cCodeInfos,
                      [out] ULONG32* pcCodeInfos,
                      [out] COR_PRF_CODE_INFO codeInfos[]);

参数

pNativeCodeStartAddress
[in]指向本机函数开头的指针。

cCodeInfos
[in]数组的大小 codeInfos

pcCodeInfos
[out]指向可用 COR_PRF_CODE_INFO 结构的总数的指针。

codeInfos
[out]调用方提供的缓冲区。 方法返回后,它包含一个结构数组 COR_PRF_CODE_INFO ,每个结构都描述本机代码块。

注解

该方法 GetCodeInfo4 类似于 GetCodeInfo3,不同之处在于它可以查找不同本机版本的方法的代码信息。

注释

GetCodeInfo4 可以触发垃圾回收。

盘区按增加公共中间语言 (CIL) 偏移量的顺序排序。

返回后 GetCodeInfo4 ,必须验证 codeInfos 缓冲区是否足够大,以包含所有 COR_PRF_CODE_INFO 结构。 为此,请将其值 cCodeInfos 与参数的值 cchName 进行比较。 如果 cCodeInfos 除以 COR_PRF_CODE_INFO 结构的大小小于 pcCodeInfos、分配更大的 codeInfos 缓冲区、使用新的、更大的大小进行更新 cCodeInfos ,然后再次调用 GetCodeInfo4

或者,可以使用零长度codeInfos缓冲区首次调用GetCodeInfo4以获取正确的缓冲区大小。 然后,可以将缓冲区大小设置为 codeInfos 返回 pcCodeInfos的值,乘以 COR_PRF_CODE_INFO 结构的大小,然后再次调用 GetCodeInfo4

要求

平台: 请参阅 .NET 支持的作系统

页眉: CorProf.idl、CorProf.h

库:CorGuids.lib

.NET 版本: 自 .NET Core 2.1 起可用

另请参阅