Share via


DkmManagedHeapSampler 类

定义

DkmManagedHeapSampler 表示托管堆中对象的采样器。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

public ref class DkmManagedHeapSampler : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("14537042-a674-0f63-20ba-a9fab411d46a")]
public class DkmManagedHeapSampler : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("14537042-a674-0f63-20ba-a9fab411d46a")>]
type DkmManagedHeapSampler = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmManagedHeapSampler
Inherits DkmDataContainer
Implements IDisposable
继承
DkmManagedHeapSampler
继承
DkmManagedHeapSampler
属性
实现

属性

IsUnloaded

如果为此对象引发了“unloaded”事件,则返回 true (示例:DkmThread::Unload 被调用) 或对象已关闭。 请注意,检查此状态时必须小心,因为如果不进行同步,返回的状态在读取指令后可能不再准确。

(继承自 DkmDataContainer)
RuntimeInstance

DkmRuntimeInstance 类表示加载到 DkmProcess 中的执行环境,其中包含要调试的代码。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

UniqueId

唯一标识此 DkmManagedHeapSampler 的 Guid。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

WorkerConnection

[可选]指定与将处理堆采样器操作的工作进程的连接。

此 API 是在 Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) 中引入的。

方法

AnalyzeDuplicateStrings()

分析在堆上找到的重复字符串,而不返回它们。 应在对象遍历后调用,并且永远不会在根遍历之后调用,因为该过程可能已恢复。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引入的。

AnalyzeEventHandlerLeaks(String[])

分析在堆上发现的事件处理程序泄漏,而不返回它们。 应在对象遍历后调用,并且永远不会在根遍历之后调用,因为该过程可能已恢复。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。

AnalyzeSparseArrays()

分析稀疏数组。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) 中引入的。

Close()

关闭 DkmManagedHeapSampler 对象实例。 这将跨所有组件释放与此对象关联的任何资源。 这包括跨计算机或托管/本机封送边界的资源。

关闭关联的 DkmRuntimeInstance 对象时,DkmManagedHeapSampler 对象会自动关闭。

此方法只能由创建 对象的组件调用。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

Create(DkmRuntimeInstance, DkmDataItem)

Create新的 DkmManagedHeapSampler 对象实例。 调用方负责在创建的对象完成后关闭这些对象。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

Create(DkmRuntimeInstance, DkmWorkerProcessConnection, DkmDataItem)

Create新的 DkmManagedHeapSampler 对象实例。 调用方负责在创建的对象完成后关闭这些对象。

此 API 是在 Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) 中引入的。

DeferRootsAnalysis()

向堆采样器指示根分析应延迟,并且应在未识别实时对象的情况下返回结果。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) 中引入的。

GetAddressesForDuplicatedStringValue(String)

检索为给定重复字符串值找到的所有地址。 仅返回通过 GetNextDuplicateStrings 获取的字符串的有效结果。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。

GetDataItem<T>()

获取已添加到此容器实例的“T”的实例。 如果此容器不包含“T”,则此函数将返回 null。

(继承自 DkmDataContainer)
GetNextDuplicateStrings(UInt32)

尝试从托管堆检索重复字符串的下一个请求部分的值。 不应在堆演练完成之前调用 。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 中引入的。

GetNextEventHandlerLeaks(UInt32)

尝试从托管堆中检索事件处理程序的实例的下一个请求部分的值。 不应在堆演练完成之前调用 。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。

GetNextEventHandlerLeaksJMC(UInt32)

尝试从托管堆中检索事件处理程序实例的下一个请求部分的值,并筛选出已排除的类型。不应在堆演练完成之前调用 。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。

GetNextSparseArrayDetails(DkmManagedTypeId, UInt32)

尝试检索稀疏数组实例对象的下一个请求部分的值。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) 中引入的。

GetNextSparseArraySummaries(UInt32)

尝试检索稀疏数组摘要对象的下一个请求部分的值。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) 中引入的。

GetRoots()

从采样堆返回根。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

GetSampledHeapData(UInt32)

返回序列化对象图数据的下一个请求部分。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

GetSampledHeapDataWithoutRoots(UInt32)

返回序列化对象图数据的下一个请求部分,不包括根信息。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 4 (DkmApiVersion.VS17Update4) 中引入的。

GetSampledHeapTypeStats()

返回堆类型统计信息。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

GetSampledHeapTypeStats176(Boolean)

返回堆类型统计信息,可以选择在计数中包含死对象。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) 中引入的。

GetSegments()

获取堆中段的列表。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7) 中引入的。

GetTotalBytesWastedByEventHandlerLeaks()

返回托管堆上的事件处理程序泄漏的总字节数。 此计算独立于每个泄漏信息结构的 BytesWasted 值。 这是因为泄漏的子树可能会重叠,从而导致重复计数保留的对象。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。

GetTotalBytesWastedByEventHandlerLeaksJMC()

返回托管堆上的事件处理程序泄漏的总字节数,其中已筛选出排除的类型。此计算独立于每个泄漏信息结构的 BytesWasted 值。 这是因为泄漏的子树可能会重叠,从而导致重复计数保留的对象。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 17 Update 8 (DkmApiVersion.VS17Update8) 中引入的。

InitializeHeapObjectWalk(UInt32, Boolean)

初始化堆采样器。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

NextObjects(UInt32)

遍走堆上给定数量的对象。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

NextReferences(UInt32)

在堆上遍走给定的引用数。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

NextRoots(UInt32)

遍走堆上给定数量的 GC 根。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 中引入的。

RemoveDataItem<T>()

从此容器中删除“T”的实例。 通常不需要调用此方法,因为数据容器会在对象关闭时自动清空。

(继承自 DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

在数据容器中放置一个新项。

(继承自 DkmDataContainer)

显式接口实现

IDisposable.Dispose()

内容待定。

适用于