Uh oh!
There was an error while loading. Please reload this page.
[cDAC] GC Contract - #118050
Conversation
risc-vv
commented
Jul 25, 2025
@dotnet/samsung Could you please take a look? These changes may be related to riscv64. |
Tagging subscribers to this area: @steveisok, @dotnet/dotnet-diag |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
noahfalk
left a comment
There was a problem hiding this comment.
This looked fine to me but we should go over it with Maoni as well.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
mangod9
commented
Aug 25, 2025
GC side changes look good to me. |
Implements and adds sub-descriptor as defined by #118126 for the GC. Each variation of the GC (SVR/WKS) has its own descriptor which is set up in
PopulateDacVars.Changes
sub-descriptorsindatadescriptor.cppandcdac-build-toolsrc/coreclr/gc/datadescriptormirroring the vm descriptors undersrc/coreclr/vm/datadescriptor.gcinterfaceminor version to support adding new fieldgc_descriptorNotes
In order to test the new GC descriptor, implements
ISOSDacInterface::GetGCHeapDataandISOSDacInterface::GetGCHeapList.cdac_dataspecializations outside of the GC namespace (indatadescriptor.h). In theory we could move this into the GC namespace, but this conflicts with the existing definition used in the global namespace in coreclr. I thought reusing the same class and moving the specializations was reasonable.There are several times the GC is built without datadescriptors (or where they aren't supported). These include NativeAOT (something in bootstrap builds) andsrc/coreclr/gc/sample. We most likely need#ifdefout the extern specifiers in these scenarios.GC_DESCRIPTORdefine for builds when we expect the GCDescriptor.Currently waiting on updating coreclr to target c++17 Proposal: Upgrade C++ compiler feature level to C++ 17 #112419 to resolve build issues.