-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[cDAC] Properly handle reportInteropMD special case #119825
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
Conversation
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.
Pull Request Overview
This PR implements proper handling of the special reportInteropMD case in the cDAC stack walking functionality, resolving issue #119724. The implementation adds logic to detect when an InlinedCallFrame should report the actual interop MethodDesc instead of the standard frame MethodDesc.
- Adds detection logic for the
reportInteropMDspecial case based on frame type, stack walk state, and method characteristics - Implements new helper methods to support interop method detection and return address retrieval
- Updates documentation to explain the special case handling and API differences
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| ClrDataFrame.cs | Refactors legacy implementation error handling and adds debug assertion for result comparison |
| StackWalk_1.cs | Implements the main reportInteropMD detection and handling logic in GetMethodDescPtr |
| FrameIterator.cs | Adds helper methods for frame type checking and return address retrieval |
| RuntimeTypeSystem_1.cs | Adds IL stub type detection and MDContext argument checking functionality |
| IRuntimeTypeSystem.cs | Adds interface method for checking MDContext arguments |
| StackWalk.md | Documents the special case handling in the API specification |
| RuntimeTypeSystem.md | Documents the new HasMDContextArg method and related enumerations |
...d/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/StackWalk/StackWalk_1.cs
Show resolved
Hide resolved
|
Tagging subscribers to this area: @steveisok, @dotnet/dotnet-diag |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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 besides the one comment
* implement RuntimeTypeSystem.HasMDContextArg * update StackWalk.GetMethodDescPtr to account for special case
Resolves #119724