bpo-44466: Faulthandler now detects the GC (GH-26823)

The faulthandler module now detects if a fatal error occurs during a
garbage collector collection (only if all_threads is true).
This commit is contained in:
Victor Stinner 2021-06-21 13:15:40 +02:00 committed by GitHub
parent fb68791a26
commit d19163912b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 70 additions and 14 deletions

View file

@ -4,6 +4,7 @@
#include "Python.h"
#include "code.h"
#include "pycore_interp.h" // PyInterpreterState.gc
#include "frameobject.h" // PyFrame_GetBack()
#include "structmember.h" // PyMemberDef
#include "osdefs.h" // SEP
@ -914,6 +915,9 @@ _Py_DumpTracebackThreads(int fd, PyInterpreterState *interp,
break;
}
write_thread_id(fd, tstate, tstate == current_tstate);
if (tstate == current_tstate && tstate->interp->gc.collecting) {
PUTS(fd, " Garbage-collecting\n");
}
dump_traceback(fd, tstate, 0);
tstate = PyThreadState_Next(tstate);
nthreads++;