-
-
Notifications
You must be signed in to change notification settings - Fork 31k
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
Some opcodes leave frame->prev_instr in an incorrect state #96049
Comments
This is intentional. See this comment in the code: cpython/Include/internal/pycore_frame.h Lines 58 to 62 in d8c07f8
For my own understanding, how has this negatively affected you? CC @markshannon |
Ok, I missed that quote, just figured since all other opcodes left the pointer at the last instruction these should as well since otherwise the location of the original instruction is unrecoverable (due to random data in cache area). This is problematic for us because we have an error reporting fork of the cpython interpreter as a product and after an exception we want to get the instruction which caused it. This particular patch leaves the last instruction pointer always valid but if it is not an issue and not desirable for the base cpython implementation then I will close the PR and just keep the change on our branch. |
It is recoverable, just with a bit of effort. A call to |
Bug report
Opcodes which have caches (specifically adaptive calls) leave
frame->prev_instr
pointing to the last byte of the cache instead of the actual last instruction.Your environment
v3.11.0rc1
Linux tom-VirtualBox 5.15.0-46-generic #49~20.04.1-Ubuntu SMP Thu Aug 4 19:15:44 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
The text was updated successfully, but these errors were encountered: