-
Notifications
You must be signed in to change notification settings - Fork 5k
[NativeAOT] Fix stack trace iteration over exceptions #105877
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
Conversation
That would not work. |
/azp run runtime-nativeaot-outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
Hmm, the test failures do look suspicious. I'll check it in detail when all the pipelines finish running. Cursory look at the source code suggests that we may need to remove this: runtime/src/coreclr/nativeaot/Runtime/StackFrameIterator.cpp Lines 814 to 817 in 3e572e9
|
/azp run runtime-nativeaot-outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
There are 6 test failures:
The AV in
There's nothing in |
/azp run runtime-nativeaot-outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
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.
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.
LGTM modulo a nit regarding the comment.
Fixes #101364
The test
b08944b
on x86 in Release causes thebomb()
method to be inlined. The stack trace iterator then incorrectly adjusts the pointer to the faulting instruction by-1
which causes thetry
block not to be matched.On x64 the inlined generated code for the
bomb()
method ended up beingOn x86 it is
Hence, for x64 the previous instruction to the faulting instruction was still in the
try
region. On x86 that's not the case.