Skip to content

[cDAC] Support API's used by CLRMD #124535

@steveisok

Description

@steveisok

CLRMD with Unimplemented APIs

Total Implemented: 57 out of 112 (50.9%)

These APIs are called by CLRMD but not directly by any SOS command. Many managed-delegated SOS commands (!DumpHeap, !GCRoot, !EEHeap, !VerifyHeap, !FinalizeQueue, !ThreadPool, etc.) depend on these indirectly via CLRMD.

GC Heap / Sub-Heap Info

Used by DacHeap.CreateSubHeapInfo() — blocks !EEHeap, !DumpHeap, !FinalizeQueue, etc.

  • ISOSDacInterface8::GetGenerationTable — GC generation table, workstation (HIGH)
  • ISOSDacInterface8::GetGenerationTableSvr — GC generation table, server (HIGH)
  • ISOSDacInterface8::GetFinalizationFillPointers — Finalization queue pointers, workstation (HIGH)
  • ISOSDacInterface8::GetFinalizationFillPointersSvr — Finalization queue pointers, server (HIGH)

Handle Enumeration

  • ISOSDacInterface::GetHandleEnumForTypes — Dependent handle enumeration via DacHeap.EnumerateDependentHandles() (HIGH)

Sync Block Enumeration

  • ISOSDacInterface::GetSyncBlockCleanupData — via DacNativeHeaps.EnumerateSyncBlockCleanupData() (MEDIUM)

JIT Manager / Code Heaps

  • ISOSDacInterface::GetJitManagerList — via DacRuntime.EnumerateClrJitManagers() (MEDIUM)
  • ISOSDacInterface::GetCodeHeapList — via DacNativeHeaps.EnumerateJitManagerHeaps() (MEDIUM)

Loader / Native Heap Traversal

  • ISOSDacInterface::TraverseLoaderHeap — via DacNativeHeaps.TraverseLoaderHeap() (MEDIUM)
  • ISOSDacInterface::TraverseVirtCallStubHeap — via DacNativeHeaps.LegacyEnumerateStubHeaps() (LOW)
  • ISOSDacInterface13::TraverseLoaderHeap — via DacNativeHeaps.EnumerateLoaderAllocatorNativeHeaps() (MEDIUM)
  • ISOSDacInterface13::GetLoaderAllocatorHeapNames — via DacNativeHeaps.GetNativeHeaps() (MEDIUM)
  • ISOSDacInterface13::GetLoaderAllocatorHeaps — via DacNativeHeaps.EnumerateLoaderAllocatorNativeHeaps() (MEDIUM)
  • ISOSDacInterface13::GetHandleTableMemoryRegions — via DacNativeHeaps.EnumerateHandleTableRegions() (MEDIUM)
  • ISOSDacInterface13::GetGCBookkeepingMemoryRegions — via DacNativeHeaps.EnumerateGCBookkeepingRegions() (LOW)
  • ISOSDacInterface13::GetGCFreeRegions — via DacNativeHeaps.EnumerateGCFreeRegions() (LOW)

Allocation Context

  • ISOSDacInterface12::GetGlobalAllocationContext — via DacHeap.EnumerateThreadAllocationContexts() (MEDIUM)

Flush / Lifecycle

  • ISOSDacInterface13::LockedFlush — via DacServiceProvider.Flush()/Dispose() (MEDIUM)

Version Request

  • IXCLRDataProcess::Request — Version request via DacRuntime constructor (MEDIUM)

Sub-issues

Metadata

Metadata

Assignees

Labels

area-Diagnostics-coreclrenhancementProduct code improvement that does NOT require public API changes/additionstrackingThis issue is tracking the completion of other related issues.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions