Closed
Description
Bug report
Bug description:
The current de-instrumentation code for instructions incorrectly de-instruments line too. So if INSTRUCTION events are removed, event if the LINE events are still there, it won't trigger the event.
import sys E = sys.monitoring.events def line(*args): print("Line event: ", args) def inst(*args): print("Instruction event: ", args) sys.monitoring.use_tool_id(0, "test") sys.monitoring.set_events(0, 0) sys.monitoring.register_callback(0, E.LINE, line) sys.monitoring.register_callback(0, E.INSTRUCTION, inst) sys.monitoring.set_events(0, E.LINE | E.INSTRUCTION) sys.monitoring.set_events(0, E.LINE) a = 1 sys.monitoring.set_events(0, 0)
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux