-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
[mono] Fix StackTrace from a dim and Vtable offsets for static interface method #60770
Conversation
Tagging subscribers to this area: Issue DetailsI'm not sure if this is the right fix, but with it I can see the callstack correctly as I can see if I run using CoreCLR. Output running on mono:
|
Related to #60486. @thaystg can you add a test to https://github.com/dotnet/runtime/tree/main/src/tests/Loader/classloader/DefaultInterfaceMethods/regressions /cc @bholmes |
The stacktrace is supposed to contain the exact generic instance not DefItf.ISubscriber`1. |
This seems to fix it for me: |
@vargaz , your fix looks like it works the result running on mono with your fix would be:
But it's different of what I get when I run on CoreCLR where I have: |
Its not defined what the result should be, we try to obtain the exact generic instance if possible. |
I created a new program with more cases. https://gist.github.com/bholmes/e3ccaf9d044b7261d6865c8f0173dc64 Method5 appears to be broken but I think this patch is good. |
/azp run runtime-manual |
Azure Pipelines successfully started running 1 pipeline(s). |
if (m_method_is_static (method)) | ||
continue; |
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.
We're going to need to revisit this (and line 1535, below) when non-abstract static virtual methods are going to be supported
If this is approved, I want this to go back to mono/mono. Let me know if and when you want me to back port these changes to that repo. (assuming that automation will fail.) |
/azp run sync-runtime-to-mono |
Azure Pipelines successfully started running 1 pipeline(s). |
There are CoreCLR and Mono test failures from the new test.
In both cases, it's an issue with the testcase, not with the implementation. (So the mono backport is still ok) |
/backport to release/6.0 |
TestMethod5
was being called it was executingTestMethod10
, and this was fixed skipping static interface methods when was calculating vtable offsets.The fix was completely done by @vargaz, I just opened the PR.
Thanks @vargaz .
Fix #60486