Skip to content

Commit 1c58bbb

Browse files
committed
sys/gettrace: Add gettrace function to mirror settrace.
Refer to https://docs.python.org/3/library/sys.html#sys.gettrace
1 parent 82a9a26 commit 1c58bbb

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

py/modsys.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,11 @@ STATIC mp_obj_t mp_sys_settrace(mp_obj_t obj) {
194194
}
195195
MP_DEFINE_CONST_FUN_OBJ_1(mp_sys_settrace_obj, mp_sys_settrace);
196196

197+
STATIC mp_obj_t mp_sys_gettrace() {
198+
return mp_prof_gettrace();
199+
}
200+
MP_DEFINE_CONST_FUN_OBJ_0(mp_sys_gettrace_obj, mp_sys_gettrace);
201+
197202
// _getframe(): Return current frame object.
198203
STATIC mp_obj_t mp_sys_getframe(size_t n_args, const mp_obj_t *args) {
199204
int depth = 0;
@@ -283,6 +288,7 @@ STATIC const mp_rom_map_elem_t mp_module_sys_globals_table[] = {
283288

284289
#if MICROPY_PY_SYS_SETTRACE
285290
{ MP_ROM_QSTR(MP_QSTR_settrace), MP_ROM_PTR(&mp_sys_settrace_obj) },
291+
{ MP_ROM_QSTR(MP_QSTR_gettrace), MP_ROM_PTR(&mp_sys_gettrace_obj) },
286292
{ MP_ROM_QSTR(MP_QSTR__getframe), MP_ROM_PTR(&mp_sys_getframe_obj) },
287293
#endif
288294

py/profile.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -355,6 +355,13 @@ mp_obj_t mp_prof_settrace(mp_obj_t callback) {
355355
return mp_const_none;
356356
}
357357

358+
mp_obj_t mp_prof_gettrace() {
359+
if (prof_trace_cb == MP_OBJ_NULL) {
360+
return mp_const_none;
361+
}
362+
return prof_trace_cb;
363+
}
364+
358365
mp_obj_t mp_prof_get_frame(int depth) {
359366

360367
mp_code_state_t *code_state = MP_STATE_THREAD(current_code_state);

py/profile.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ mp_obj_t mp_obj_new_frame(const mp_code_state_t *code_state);
6161

6262
// This is the implementation for the sys.settrace
6363
mp_obj_t mp_prof_settrace(mp_obj_t callback);
64+
mp_obj_t mp_prof_gettrace();
6465

6566
mp_obj_t mp_prof_get_frame(int depth);
6667
mp_obj_t mp_prof_frame_enter(mp_code_state_t *code_state);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy