diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2023-10-09 09:11:51 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-09 09:11:51 (GMT) |
commit | dae3db188329376134efe0433b1ded435a61f03a (patch) | |
tree | e6b5bad63101420bb437a184b0512153ad7f4cd9 /Python/legacy_tracing.c | |
parent | fb8c0415a26690df5b97e89ff1cc8e6d6b2473c3 (diff) | |
download | cpython-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.c | 8 |
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); } |