bpo-35370: PyEval_SetTrace() logs unraisable error (GH-18977) (GH-19029)
If PySys_Audit() fails in PyEval_SetProfile() or PyEval_SetTrace(),
log the error as an unraisable exception.
(cherry picked from commit f6a58507820c67e8d0fb07875cd1b1d9f5e510a8)
diff --git a/Python/ceval.c b/Python/ceval.c
index 5d78d5a..2db6e6b 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -4686,6 +4686,7 @@
PyEval_SetProfile(Py_tracefunc func, PyObject *arg)
{
if (PySys_Audit("sys.setprofile", NULL) < 0) {
+ _PyErr_WriteUnraisableMsg("in PyEval_SetProfile", NULL);
return;
}
@@ -4707,6 +4708,7 @@
PyEval_SetTrace(Py_tracefunc func, PyObject *arg)
{
if (PySys_Audit("sys.settrace", NULL) < 0) {
+ _PyErr_WriteUnraisableMsg("in PyEval_SetTrace", NULL);
return;
}