[cDAC] Add managed definitions for IXCLRData COM interfaces#124922
[cDAC] Add managed definitions for IXCLRData COM interfaces#124922max-charlamb merged 2 commits intodotnet:mainfrom
Conversation
|
Tagging subscribers to this area: @steveisok, @tommcdon, @dotnet/dotnet-diag |
There was a problem hiding this comment.
Pull request overview
This PR introduces managed [GeneratedComInterface] projections for additional IXCLRData* COM interfaces (from xclrdata.idl) and updates existing cDAC COM surface/implementations to use typed parameters instead of void*/void**.
Changes:
- Add managed definitions for many previously-missing
IXCLRData*interfaces and related structs. - Add
ICLRDataTarget2/ICLRDataTarget3managed definitions. - Update cDAC implementations and forwarders to match the updated COM method signatures.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/IXCLRData.cs | Adds many new IXCLRData* interfaces and replaces void*/void** with typed parameters. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/ICLRData.cs | Adds ICLRDataTarget2 and ICLRDataTarget3 interface definitions. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/ClrDataFrame.cs | Updates IXCLRDataFrame / IXCLRDataFrame2 implementation signatures to match new interface definitions. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/ClrDataMethodInstance.cs | Updates method instance implementation signatures and related COM-pointer plumbing. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/ClrDataModule.cs | Updates module implementation signatures to match new interface definitions. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/ClrDataTask.cs | Updates task implementation signatures to match new interface definitions. |
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/SOSDacImpl.IXCLRDataProcess.cs | Updates process implementation signatures to match new interface definitions. |
c3beabb to
74e695c
Compare
noahfalk
left a comment
There was a problem hiding this comment.
The PR comments mention adding 14 new interfaces but some of the interfaces in that list already exist. For example: https://github.com/max-charlamb/runtime/blob/bb5c6c3425acf6f48d4d13521e6da1f5efe71b05/src/native/managed/cdacreader/src/Legacy/IXCLRData.cs#L346
Not a big deal, but it would be nice to get the right info there for posterity :)
Change AllocVirtual and FreeVirtual address parameters from ulong to ClrDataAddress to match CLRDATA_ADDRESS in clrdata.idl. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/ba-g cDAC only change |
This PR adds managed
[GeneratedComInterface]definitions for IXCLRData* and ICLRData* COM interfaces fromxclrdata.idlandclrdata.idl.Changes
New interface definitions (IXCLRData.cs)
Added managed definitions for 14 interfaces that were previously missing:
IXCLRDataAppDomainIXCLRDataAssemblyIXCLRDataTypeDefinitionIXCLRDataTypeInstanceIXCLRDataMethodDefinitionIXCLRDataExceptionStateIXCLRDataValueIXCLRDataExceptionNotification/IXCLRDataExceptionNotification2/IXCLRDataExceptionNotification3/IXCLRDataExceptionNotification4/IXCLRDataExceptionNotification5IXCLRDataTarget3IXCLRLibrarySupportAlso added the
ClrDataMethodDefinitionExtentstruct.Note:
IXCLRDisassemblySupportandIXCLRDataDisplayare intentionally omitted because they use varargs (...) and non-HRESULT return types incompatible with[GeneratedComInterface].New interface definitions (ICLRData.cs)
Added managed definitions for 2 interfaces:
ICLRDataTarget2ICLRDataTarget3Also changed
ICLRDataTarget2.AllocVirtualandICLRDataTarget2.FreeVirtualaddress parameters fromulongtoClrDataAddressto matchCLRDATA_ADDRESSin the IDL.All GUIDs and vtable ordering verified against
src/coreclr/inc/xclrdata.idlandsrc/coreclr/inc/clrdata.idl.Files changed
ClrDataMethodDefinitionExtentstructICLRDataTarget2,ICLRDataTarget3, andClrDataAddressfix