-
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
[cdac] Start Loader contract and implement ISOSDacInterface::GetModuleData in cDAC #104257
Conversation
Tagging subscribers to this area: @tommcdon |
docs/design/datacontracts/Loader.md
Outdated
[Flags] | ||
enum ModuleFlags | ||
{ | ||
EditAndContinue = 0x00000008, // Edit and Continue is enabled for this module |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was the only value I found in dotnet/diagnostics and microsoft/clrmd that was actually used. And it was just to print an explicit IS_EDIT_AND_CONTINUE
as part of dumpmodule (also prints the raw flag values).
if (peImagePointer != TargetPointer.Null) | ||
PEImage = target.ProcessedData.GetOrAdd<PEImage>(peImagePointer); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if we're going to have a problem in practice with the cDAC being more eager to read data from the target process up front. I think the brittle DAC is lazier about following pointers in target memory. It might be able to emit more info to the debugger before failing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a concern for mini and triage dumps only. What we need to do for those is make sure that our routines for ensuring that enough data structures are live are updated so that they make sure to cover the important scenarios needed for examining dumps. Also we will likely need to have the ability for some of the apis to produce incomplete results. The only reason this works in the existing scheme is that there are a selected set of places in the DAC where failures are just ignored. We will eventually need to add the same things to the cDAC, but I don't think we should do that yet.
…GetModuleData in cDAC (dotnet#104257)" This reverts commit 04a40c1.
Loader
contract - currently contains what is needed for GetModuleDataISOSDacInterface::GetModuleData
in cDACModule
for easier diagnostics accessContributes to #99302