summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2021-06-21 11:15:40 (GMT)
committerGitHub <noreply@github.com>2021-06-21 11:15:40 (GMT)
commitd19163912bfc790283724f05328bd31e4e65003d (patch)
treead8b66feb763211adee9f4b11d44c6c417266268 /Python
parentfb68791a26e157ed3cdeb409c8d8b6cddc7535bd (diff)
downloadcpython-d19163912bfc790283724f05328bd31e4e65003d.zip
cpython-d19163912bfc790283724f05328bd31e4e65003d.tar.gz
cpython-d19163912bfc790283724f05328bd31e4e65003d.tar.bz2
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).
Diffstat (limited to 'Python')
-rw-r--r--Python/traceback.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Python/traceback.c b/Python/traceback.c
index 470324b1..f7dc5ad 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -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++;