-
Notifications
You must be signed in to change notification settings - Fork 5k
Avoid object layout mismatch between coreclr and mscordaccore by comparing them during the build. #12770
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
Comments
@cshung Since the dac is built using coreclr code how do you expect these to get disconnected? Is this catching a dacize error? |
@sdmaclea Accidental
If it turns out that the This is not theoretical, this is a post-mortem work item for the issue https://github.com/dotnet/corefx/issues/38071 fixed by dotnet/coreclr#24798. Catching this type of issue upstream at build time would eliminate a source of the issue once and for all. |
You can have the same accidental ifdef in the algorithm that the layout check won't find. We had this tool for desktop. The tool worked by comparing symbol information for coreclr.dll and cross-compiled mscordacwks.dll . It did catch a few issues, but it also generated a ton of false positives - for example, the symbols for C runtime have the same names, but different layout between platforms. I think it would be better to spend energy on building universal DAC that is based on clearly defined and tested contracts. The universal DAC is actually going to fix this issue once and for all. |
IMHO, it is even more important for us to have an (ideally - build time) validation that the memory layout the universal DAC will depend on matches its expectation. Instead of using a tool that matches symbols blindly. We may consider the AsmOffsetsVerify approach. Having the dependencies spelled out manually can make it crystal clear what is being depended on, and it can also drive the number of dependencies low [for one have to work hard to author these offsets] |
Due to lack of recent activity, this issue has been marked as a candidate for backlog cleanup. It will be closed if no further activity occurs within 14 more days. Any new comment (by anyone, not necessarily the author) will undo this process. This process is part of our issue cleanup automation. |
This issue will now be closed since it had been marked |
No description provided.
The text was updated successfully, but these errors were encountered: