-
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-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.