|
35 | 35 | #include "py/smallint.h" |
36 | 36 | #include "py/runtime.h" |
37 | 37 |
|
| 38 | +#if MICROPY_PY_SYS_SETTRACE |
| 39 | +#include "py/objmodule.h" |
| 40 | +#include "py/profile.h" |
| 41 | +#endif |
| 42 | + |
38 | 43 | #if MICROPY_PY_SYS |
39 | 44 |
|
40 | 45 | // defined per port; type of these is irrelevant, just need pointer |
@@ -156,6 +161,14 @@ STATIC mp_obj_t mp_sys_atexit(mp_obj_t obj) { |
156 | 161 | STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_sys_atexit_obj, mp_sys_atexit); |
157 | 162 | #endif |
158 | 163 |
|
| 164 | +#if MICROPY_PY_SYS_SETTRACE |
| 165 | +// settrace(tracefunc): Set the system’s trace function. |
| 166 | +STATIC mp_obj_t mp_sys_settrace(mp_obj_t obj) { |
| 167 | + return mp_prof_settrace(obj); |
| 168 | +} |
| 169 | +MP_DEFINE_CONST_FUN_OBJ_1(mp_sys_settrace_obj, mp_sys_settrace); |
| 170 | +#endif // MICROPY_PY_SYS_SETTRACE |
| 171 | + |
159 | 172 | STATIC const mp_rom_map_elem_t mp_module_sys_globals_table[] = { |
160 | 173 | { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_sys) }, |
161 | 174 |
|
@@ -190,6 +203,10 @@ STATIC const mp_rom_map_elem_t mp_module_sys_globals_table[] = { |
190 | 203 | { MP_ROM_QSTR(MP_QSTR_exit), MP_ROM_PTR(&mp_sys_exit_obj) }, |
191 | 204 | #endif |
192 | 205 |
|
| 206 | + #if MICROPY_PY_SYS_SETTRACE |
| 207 | + { MP_ROM_QSTR(MP_QSTR_settrace), MP_ROM_PTR(&mp_sys_settrace_obj) }, |
| 208 | + #endif |
| 209 | + |
193 | 210 | #if MICROPY_PY_SYS_STDFILES |
194 | 211 | { MP_ROM_QSTR(MP_QSTR_stdin), MP_ROM_PTR(&mp_sys_stdin_obj) }, |
195 | 212 | { MP_ROM_QSTR(MP_QSTR_stdout), MP_ROM_PTR(&mp_sys_stdout_obj) }, |
|
0 commit comments