Skip to content

[cdac] Deploy cdac with SOS in .NET 10 #108720

Open
@lambdageek

Description

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 to mscorcdac.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 a TryGetSymbol 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 publish mscorcdac.dll together with SOS
  • Implement the ICLRRuntimeSymbol::TryGetSymbol API on the ICLRDataTarget passed to CLRDataCreateInstance
  • 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Labels

area-Diagnostics-coreclrenhancementProduct code improvement that does NOT require public API changes/additionstrackingThis issue is tracking the completion of other related issues.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions