public IEnumerable <MemoryRegion> EnumerateHeaps(IAppDomainData appDomain) { Debug.Assert(appDomain != null); _appDomain = appDomain.Address; _regions.Clear(); // Standard heaps. _type = ClrMemoryRegionType.LowFrequencyLoaderHeap; _runtime.TraverseHeap(appDomain.LowFrequencyHeap, _delegate); _type = ClrMemoryRegionType.HighFrequencyLoaderHeap; _runtime.TraverseHeap(appDomain.HighFrequencyHeap, _delegate); _type = ClrMemoryRegionType.StubHeap; _runtime.TraverseHeap(appDomain.StubHeap, _delegate); // Stub heaps. _type = ClrMemoryRegionType.IndcellHeap; _runtime.TraverseStubHeap(_appDomain, (int)InternalHeapTypes.IndcellHeap, _delegate); _type = ClrMemoryRegionType.LookupHeap; _runtime.TraverseStubHeap(_appDomain, (int)InternalHeapTypes.LookupHeap, _delegate); _type = ClrMemoryRegionType.ResolveHeap; _runtime.TraverseStubHeap(_appDomain, (int)InternalHeapTypes.ResolveHeap, _delegate); _type = ClrMemoryRegionType.DispatchHeap; _runtime.TraverseStubHeap(_appDomain, (int)InternalHeapTypes.DispatchHeap, _delegate); _type = ClrMemoryRegionType.CacheEntryHeap; _runtime.TraverseStubHeap(_appDomain, (int)InternalHeapTypes.CacheEntryHeap, _delegate); return(_regions); }