summaryrefslogtreecommitdiffstats
path: root/Python/legacy_tracing.c
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2023-10-09 09:11:51 (GMT)
committerGitHub <noreply@github.com>2023-10-09 09:11:51 (GMT)
commitdae3db188329376134efe0433b1ded435a61f03a (patch)
treee6b5bad63101420bb437a184b0512153ad7f4cd9 /Python/legacy_tracing.c
parentfb8c0415a26690df5b97e89ff1cc8e6d6b2473c3 (diff)
downloadcpython-dae3db188329376134efe0433b1ded435a61f03a.zip
cpython-dae3db188329376134efe0433b1ded435a61f03a.tar.gz
cpython-dae3db188329376134efe0433b1ded435a61f03a.tar.bz2
[3.12] gh-110514: Add PY_THROW to `sys.setprofile` events (GH-110524) (#110541)
gh-110514: Add PY_THROW to `sys.setprofile` events (GH-110524) (cherry picked from commit dd4bb0529e44ac6f75a9ebbfcbf5d73dc251b7a7) Co-authored-by: Tian Gao <gaogaotiantian@hotmail.com>
Diffstat (limited to 'Python/legacy_tracing.c')
-rw-r--r--Python/legacy_tracing.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/Python/legacy_tracing.c b/Python/legacy_tracing.c
index b0136d2..43fa591 100644
--- a/Python/legacy_tracing.c
+++ b/Python/legacy_tracing.c
@@ -378,6 +378,11 @@ _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg)
return -1;
}
if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID,
+ (vectorcallfunc)sys_profile_func3, PyTrace_CALL,
+ PY_MONITORING_EVENT_PY_THROW, -1)) {
+ return -1;
+ }
+ if (set_callbacks(PY_MONITORING_SYS_PROFILE_ID,
(vectorcallfunc)sys_profile_func3, PyTrace_RETURN,
PY_MONITORING_EVENT_PY_RETURN, PY_MONITORING_EVENT_PY_YIELD)) {
return -1;
@@ -417,7 +422,8 @@ _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg)
events =
(1 << PY_MONITORING_EVENT_PY_START) | (1 << PY_MONITORING_EVENT_PY_RESUME) |
(1 << PY_MONITORING_EVENT_PY_RETURN) | (1 << PY_MONITORING_EVENT_PY_YIELD) |
- (1 << PY_MONITORING_EVENT_CALL) | (1 << PY_MONITORING_EVENT_PY_UNWIND);
+ (1 << PY_MONITORING_EVENT_CALL) | (1 << PY_MONITORING_EVENT_PY_UNWIND) |
+ (1 << PY_MONITORING_EVENT_PY_THROW);
}
return _PyMonitoring_SetEvents(PY_MONITORING_SYS_PROFILE_ID, events);
}