Open
Description
opened on Oct 9, 2024
Part of #99298
We would like to ship the cdac together with SOS and to allow SOS to load and use the cdac instead of the brittle DAC in .NET 10. This issue tracks the runtime changes necessary, and summarizes the SOS changes.
- Rename
cdacreader.dll
tomscorcdac.dll
(see comments new name is still up in flux) - Remove brittle DAC ability to load & delegate to cDAC
- Remove the
cdacreader_
entrypoints from mscorcdac - Define a
ICLRRuntmeSymbol
IDL interface with aTryGetSymbol
API (for finding the cDAC machine descriptor from a target image) - Add a
CLRDataCreateInstance
entrypoint to cdac and use it to instantiate the ContractDescriptorTarget and the SOSDacImpl - Publish
mscorcdac.dll
in a transport packages.
We will need one per supported SOS platform (that is, platforms where SOS can run, not platforms that it can debug) - (nice to have) [cdacreader] Simplify build order and dependencies #104158
Summary SOS changes:
- Add a command to select cdac vs brittle DAC
- Pull the apropriate platform-specific
mscorcdac.dll
from the transport nuget feed and consume it in the SOS build and publishmscorcdac.dll
together with SOS - Implement the
ICLRRuntimeSymbol::TryGetSymbol
API on theICLRDataTarget
passed toCLRDataCreateInstance
- Load and instantiate cdac instead of the brittle DAC, if enabled
- Work with WinDbg to change how SOS is inserted and consumed
A related issue #108553 is tracking the work to implement in cdac the DAC APIs needed by SOS and CLRMA
Activity