Message 71579 - Python tracker (original) (raw)
Great job amaury! So in ceval, here is the block responsible to clear the execution informations:
Index: Python/ceval.c
--- Python/ceval.c (révision 65915) +++ Python/ceval.c (copie de travail) @@ -2453,11 +2453,6 @@
if (b->b_type == EXCEPT_HANDLER) {
UNWIND_EXCEPT_HANDLER(b);
if (why == WHY_EXCEPTION) {
Py_CLEAR(tstate->exc_type);
Py_CLEAR(tstate->exc_value);
- Py_CLEAR(tstate->exc_traceback);
} continue; } UNWIND_BLOCK(b);
Without these 5 lines, the bug disappears and it looks (i tried few tests) that CPython is still ok.