[cDAC] Implement GetMethodTableSlot and GetMethodTableSlotEnum#118960
[cDAC] Implement GetMethodTableSlot and GetMethodTableSlotEnum#118960max-charlamb merged 5 commits intodotnet:mainfrom
Conversation
b519b6e to
6d78f32
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR implements the GetMethodTableSlot and GetMethodTableSlotEnum interfaces for the Contract Data Access Component (cDAC) system. These additions enable enumeration and retrieval of method table slots in the managed debugging environment.
- Implements
GetMethodTableSlotto retrieve method entry points for specific slots in a method table - Adds
GetMethodTableSlotEnumeratorwith a newSOSMethodEnumclass for iterating through all methods in a method table - Extends the RuntimeTypeSystem contract with new APIs for slot management and method enumeration
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
SOSDacImpl.cs |
Implements GetMethodTableSlot method and adds SOSMethodEnum class for method enumeration |
ISOSDacInterface.cs |
Adds interface definitions for ISOSEnum, ISOSMethodEnum, and SOSMethodData structures |
ConversionExtensions.cs |
Adds ToClrDataAddress extension method for TargetCodePointer |
RuntimeTypeSystem_1.cs |
Implements core runtime type system methods for slot management and method enumeration |
IRuntimeTypeSystem.cs |
Adds abstract contract definitions for new slot and method enumeration APIs |
RuntimeTypeSystem.md |
Updates documentation with new API descriptions and implementation details |
src/native/managed/cdac/mscordaccore_universal/Legacy/SOSDacImpl.cs
Outdated
Show resolved
Hide resolved
…pl.cs Co-authored-by: Rachel <rachel.jarvi@gmail.com>
noahfalk
left a comment
There was a problem hiding this comment.
The slot stuff looked fine to me, though I'm sure David has more expertise there than I do.
noahfalk
left a comment
There was a problem hiding this comment.
I think the follow up from that discussion about the API surface would be to define slots and IntroducedMethodDescs such that they return 0/empty enumeration for non-MethodTable based types rather than throwing an exception. You could do it in this PR or a separate one - whatever feels easier.
No description provided.