summaryrefslogtreecommitdiff
path: root/Python/traceback.c
diff options
context:
space:
mode:
Diffstat (limited to 'Python/traceback.c')
-rw-r--r--Python/traceback.c9
1 files changed, 9 insertions, 0 deletions
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++;
}
}