You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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:
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)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()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()Modulefor easier diagnostics #106103ISOSDacInterface::GetUsefulGlobals()([cdac] Implement ISOSDacInterface::GetUsefulGlobals #105106)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-backportsthat has selected data descriptor and contract changes necessary for the cdacreader to interrogate a net9.0 runtime. The backports to this branch include:Replaces
[cdac][.NET9] Data descriptor changes for GetMethodDescData #106417