-
Notifications
You must be signed in to change notification settings - Fork 5k
[cDAC] Implement IXCLRDataProcess.EnumMethodInstancesByAddress #115131
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
base: main
Are you sure you want to change the base?
Conversation
Tagging subscribers to this area: @tommcdon |
a2601ce
to
fc70764
Compare
MethodDescFlags_1.MethodDescFlags.ClassificationMask | | ||
MethodDescFlags_1.MethodDescFlags.HasNonVtableSlot | | ||
MethodDescFlags_1.MethodDescFlags.HasMethodImpl | | ||
MethodDescFlags_1.MethodDescFlags.HasNativeCodeSlot)); |
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 is out of date. The merge of the async logic has added a new flag.
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.
In general, you need to review the updates done by async to see if there are any other changes we need, and if we need to bump a contract version.
fc70764
to
ff70d24
Compare
6a947f1
to
533ac30
Compare
04ea4de
to
dc87671
Compare
Contributes to #114336
Implements:
IXCLRDataProcess.StartEnumMethodInstancesByAddress
IXCLRDataProcess.EnumMethodInstancesByAddress
IXCLRDataProcess.EndEnumMethodInstancesByAddress
IXCLRDataMethodInstance.GetTokenAndScope
IXCLRDataMethodInstance.GetRepresentativeEntryAddress
These final two APIs allow me to test that enumerating the method instances return the correct COM object/data.
In order to implement these APIs, the following contracts were updated:
IEnumerable<TargetPointer> GetAvailableTypeParams(ModuleHandle handle)
IEnumerable<TargetPointer> GetInstantiatedMethods(ModuleHandle handle)
TargetPointer GetMethodDescForSlot(TypeHandle methodTable, ushort slot)
TargetPointer MapTargetBackToMethodDesc(TargetCodePointer codePointer)
and the following data types were added:
EETypeHashTable
to read available type parameters on a moduleInstMethodHashTable
to read instantiated methods in a moduleECHash
to parse the FCall hash table and map entrypoints to FCall method descs.Open Questions
MethodDesc::s_ClassificationSizeTable
to the DAC Enum memory regions so it is present in all mini dumps?