From 1e197e63e21f77b102ff2601a549dda4b6439455 Mon Sep 17 00:00:00 2001 From: Mark Shannon Date: Thu, 10 Nov 2022 04:34:57 -0800 Subject: GH-96421: Insert shim frame on entry to interpreter (GH-96319) * Adds EXIT_INTERPRETER instruction to exit PyEval_EvalDefault() * Simplifies RETURN_VALUE, YIELD_VALUE and RETURN_GENERATOR instructions as they no longer need to check for entry frames. --- Python/traceback.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'Python/traceback.c') diff --git a/Python/traceback.c b/Python/traceback.c index 2d9da0e692..aacdb33d39 100644 --- a/Python/traceback.c +++ b/Python/traceback.c @@ -1224,6 +1224,15 @@ dump_traceback(int fd, PyThreadState *tstate, int write_header) if (frame == NULL) { break; } + if (frame->owner == FRAME_OWNED_BY_CSTACK) { + /* Trampoline frame */ + frame = frame->previous; + } + if (frame == NULL) { + break; + } + /* Can't have more than one shim frame in a row */ + assert(frame->owner != FRAME_OWNED_BY_CSTACK); depth++; } } -- cgit v1.2.1