Uh oh!
There was an error while loading. Please reload this page.
[cDAC] implement IXCLRDataMethodInstance::GetName and associated APIs - #118966
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR implements the IXCLRDataMethodInstance::GetName method in the cDAC (contract-based Data Access Component) implementation, replacing a previously unimplemented stub that delegated to the legacy implementation.
Key changes:
- Implements method name generation using
TypeNameBuilder.AppendMethodInternalwith fallback mechanisms - Adds error handling and debug validation against the legacy implementation
- Improves robustness of string retrieval from EE addresses
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| ClrDataMethodInstance.cs | Implements GetName method with proper name formatting, fallback logic, and debug validation |
| SOSDacImpl.cs | Removes nested try-catch block in GetMethodTableName method |
| DacStreams_1.cs | Adds exception handling for VirtualReadException in StringFromEEAddress method |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
54a82b9 to
84bc116CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com>
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Implements:
IXCLRDataStackWalk::GetFrameIXCLRDataFrame::GetMethodInstanceIXCLRDataMethodInstance::GetNameThe former two are required to verify
GetNameas SOS usesIXCLRDataStackWalk::GetFrame->IXCLRDataFrame::GetMethodInstanceto get the instantiation ofIXCLRDataMethodInstance it callsGetName` on.Modifies:
IDacStreams_1.StringFromEEAddressto not throw on read failure. Previously we wrapped this API in a try/catch, given it can return a null value, I believe it is acceptable to return null on read failures.