-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[cDAC] GC Contract #118050
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[cDAC] GC Contract #118050
Conversation
@dotnet/samsung Could you please take a look? These changes may be related to riscv64. |
Tagging subscribers to this area: @steveisok, @dotnet/dotnet-diag |
src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader/ContractDescriptorParser.cs
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looked fine to me but we should go over it with Maoni as well.
src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/GC_1.cs
Show resolved
Hide resolved
GC side changes look good to me. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
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-descriptors
indatadescriptor.cpp
andcdac-build-tool
src/coreclr/gc/datadescriptor
mirroring the vm descriptors undersrc/coreclr/vm/datadescriptor
.gcinterface
minor version to support adding new fieldgc_descriptor
Notes
In order to test the new GC descriptor, implements
ISOSDacInterface::GetGCHeapData
andISOSDacInterface::GetGCHeapList
.cdac_data
specializations 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#ifdef
out the extern specifiers in these scenarios.GC_DESCRIPTOR
define 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.