ICorProfilerCallback::RootReferences 方法
垃圾回收后,向探查器通知有关根引用的信息。
语法
HRESULT RootReferences(
[in] ULONG cRootRefs,
[in, size_is(cRootRefs)] ObjectID rootRefIds[] );
参数
cRootRefs
[in] rootRefIds
数组中的引用数量。
rootRefIds
[in] 引用静态对象或堆栈对象的对象 ID 数组。
注解
同时调用 RootReferences
和 ICorProfilerCallback2::RootReferences2 以通知探查器。 探查器通常会实现其中一种方法(但不会两者同时实现)因为传入 RootReferences2
的信息是传入 RootReferences
的超集。
rootRefIds
数组可以包含空对象。 例如,在堆栈上声明的所有对象引用都被垃圾回收器视为根,并将始终报告。
RootReferences
返回的对象 ID 在回调过程中均是无效的,因为垃圾回收可能正处于将对象从旧地址移到新地址的阶段。 因此,探查器不应在 RootReferences
调用期间尝试检查对象。 调用 ICorProfilerCallback2::GarbageCollectionFinished 时,所有对象已移动到其新位置,可以安全地进行检查。
要求
平台:请参阅系统要求。
头文件: CorProf.idl、CorProf.h
库:CorGuids.lib
.NET Framework 版本:自 2.0 起可用