-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Teach the DAC how to unwrap ComWrappers-based CCWs #36048
Comments
Tagging subscribers to this area: @tommcdon |
@jkoritzinsky Thanks for filing this. Can you elaborate on what information would be helpful? The details that are in the |
For the stowed exception scenario in particular, the DAC needs to be able to identity an interface pointer as a ComWrappers CCW interface pointer, retrieve the managed object, and dump the managed object. The implementations of runtime/src/coreclr/src/inc/sospriv.idl Lines 299 to 304 in b48900f
In particular, runtime/src/coreclr/src/debug/daccess/request.cpp Line 4069 in b48900f
|
If we implement all of the mentioned functions for the DAC, I think that will enable all of the CCW/RCW related SOS commands for ComWrappers CCWs and RCWs as well. |
This is going to be unfortunate. I was hoping to avoid having a DAC build of the interoplib. We might want to redesign some of the data structures so the header contains everything. Don't know if that has already been done. |
To ensure that we get an accurate diagnostics experience for RCWs and CCWs that use the new ComWrappers APIs, we should enlighten the DAC to how to discover them and dump them.
Additionally, this work should include updating the DAC's support for dumping a stowed exception to be able to unwrap ComWrappers-based CCW stowed exceptions.
Related: microsoft/CsWinRT#201, #35318
The text was updated successfully, but these errors were encountered: