-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Closed
Labels
area-Diagnostics-coreclrenhancementProduct code improvement that does NOT require public API changes/additionsProduct code improvement that does NOT require public API changes/additions
Milestone
Description
Part of #99298
This will require bringing up a basic data stream reader and registering enough data types and instances in the runtime so that we can get at the exception.
.NET 10
-
ISOSDacInterface9::GetBreakingChangeVersion([cdac] Read/store globals from contract descriptor #101450) -
ISOSDacInterface::GetThreadStoreData()([cdac] Implement GetThreadStoreData in cDAC #102404) -
ISOSDacInterface::GetThreadData()([cdac] Implement ISOSDacInterface.GetThreadData #103324) -
ISOSDacInterface::GetNestedExceptionData()([cdac] Implement ISOSDacInterface::GetNestedExceptionData #103668) - Cleanup uses of
PEAssemblyin the SOS DAC APIs - return/consume (including inDacpModuleData) pointers to aModuleinstead, and avoid exposing PEAssembly in the cDAC contracts. (Make DAC return Module instead of PEAssembly for DacpModuleData::PEAssembly #103821, Remove printing of DacpModuleData::PEAssembly from DumpModule command diagnostics#4751) -
ISOSDacInterface::GetMethodTableData()([cdac] start of RuntimeTypeSystem contract; implement GetMethodTableData SOS method #103444) -
ISOSDacInterface::GetModuleData()([cdac] Start Loader contract and implement ISOSDacInterface::GetModuleData in cDAC #104257) -
ISOSDacInterface2::GetObjectExceptionData()(* This is where the stack trace comes from - uses the stack trace array on the exception object) ([cdac] Implement ISOSDacInterface2::GetObjectExceptionData #104343) -
ISOSDacInterface::GetObjectData() -
ISOSDacInterface::GetObjectStringData()([cdac] Implement GetObjectStringData #105061) -
ISOSDacInterface::GetMethodDescData()- [cdac] Begin adding MethodDesc APIs to the RuntimeTypeSystem contract #104811
- [cdac] ExecutionManager contract and RangeSectionMap lookup unit tests #108685
- [cdac] CodeVersions contract and tests #109021
- [cdac] PrecodeStubs and CDacMetadata contracts #109030
- [cdac] Basic ISOSDacInterface::GetMethodDescData #106413
- [cdac] GetMethodDescData for jitted methods #109187
- [cdac] Finish unimplemented parts of GetMethodDescData #109426
-
ISOSDacInterface::GetMethodTableName()- big, traverses a lot of metadata (cDac work necessary to get the MethodTableName #104759) -
ISOSDacInterface::GetMethodDescName()- big, traverses a lot of metadata (Implementation of SOSDacApi GetMethodDescName for cDAC #106169) -
ISOSDacInterface::GetPEFileName() -
ISOSDacInterface::GetUsefulGlobals()([cdac] Implement ISOSDacInterface::GetUsefulGlobals #105106)
- Module name fallback if debugger and GetPEFileName() can't get the name
-
ISOSDacInterface::GetModule()([cdac] ImplementISOSDacInterface::GetModuleandIXCLRDataModule::GetFileName#109133) -
IXCLRDataModule::GetFileName()([cdac] ImplementISOSDacInterface::GetModuleandIXCLRDataModule::GetFileName#109133)
Additionally see sos_printexception_walkthrough.md#exception-informaiton for a walkthrough of the relationship of these interfaces to what SOS is doing
For CLRMA, we will need a few additional methods:
https://github.com/dotnet/diagnostics/blob/main/documentation/clrma.md#dac-interfaces-used-by-clrma
.NET 9
We maintain a branch feature/9.0-cdac-backports that has selected data descriptor and contract changes necessary for the cdacreader to interrogate a net9.0 runtime. The backports to this branch include:
Metadata
Metadata
Assignees
Labels
area-Diagnostics-coreclrenhancementProduct code improvement that does NOT require public API changes/additionsProduct code improvement that does NOT require public API changes/additions