目前,我可以使用以下代码使用 ClrMD 获取堆中存在的所有对象。是否可以仅获取目标进程中使用的对象集(即仅在目标进程的源代码中的对象)。
var types = heap.EnumerateObjectAddresses()
.GroupBy(obj => heap.GetObjectType(obj).Name)
.Select(group => new { Key = group.Key, Count = group.Count() })
.OrderBy(type => type.Count);
foreach (var type in types)
Console.WriteLine("{0} {1}", type.Key, type.Count);
Console.ReadLine();