Skip to content

Remove INSTRUCTION event monitoring will remove LINE events as well #109156

Closed
@gaogaotiantian

Description

@gaogaotiantian

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

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    type-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions