PY-75228 Fix issue with newly added breakpoints being ignored during debugging in Python 3.12

GitOrigin-RevId: 8a2b591dff069a2531d6af472955fbc62c4e531d
This commit is contained in:
Andrey Lisin
2024-09-09 15:37:35 +02:00
committed by intellij-monorepo-bot
parent 12c9a722c0
commit a8ca44f462
2 changed files with 27 additions and 4 deletions

View File

@@ -16,3 +16,13 @@ else:
sys.modules['_pydevd_bundle.pydevd_pep_669_tracing'] = mod sys.modules['_pydevd_bundle.pydevd_pep_669_tracing'] = mod
enable_pep669_monitoring = mod.enable_pep669_monitoring enable_pep669_monitoring = mod.enable_pep669_monitoring
global_cache_skips = mod.global_cache_skips
global_cache_frame_skips = mod.global_cache_frame_skips
try:
restart_events = sys.monitoring.restart_events
except AttributeError:
def _dummy_restart_events():
pass
restart_events = _dummy_restart_events

View File

@@ -57,11 +57,12 @@ from _pydevd_bundle.pydevd_custom_frames import CustomFramesContainer, custom_fr
from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, remove_exception_from_frame from _pydevd_bundle.pydevd_frame_utils import add_exception_to_frame, remove_exception_from_frame
from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads from _pydevd_bundle.pydevd_kill_all_pydevd_threads import kill_all_pydev_threads
from _pydevd_bundle.pydevd_trace_dispatch import ( from _pydevd_bundle.pydevd_trace_dispatch import (
trace_dispatch as _trace_dispatch, global_cache_skips, global_cache_frame_skips, show_tracing_warning) trace_dispatch as _trace_dispatch, show_tracing_warning)
from _pydevd_frame_eval.pydevd_frame_eval_main import ( from _pydevd_frame_eval.pydevd_frame_eval_main import (
frame_eval_func, clear_thread_local_info, dummy_trace_dispatch, frame_eval_func, clear_thread_local_info, dummy_trace_dispatch,
show_frame_eval_warning) show_frame_eval_warning)
from _pydevd_bundle.pydevd_pep_669_tracing_wrapper import enable_pep669_monitoring from _pydevd_bundle.pydevd_pep_669_tracing_wrapper import (
enable_pep669_monitoring, restart_events)
from _pydevd_bundle.pydevd_additional_thread_info import set_additional_thread_info from _pydevd_bundle.pydevd_additional_thread_info import set_additional_thread_info
from _pydevd_bundle.pydevd_utils import save_main_module, is_current_thread_main_thread, \ from _pydevd_bundle.pydevd_utils import save_main_module, is_current_thread_main_thread, \
kill_thread kill_thread
@@ -520,6 +521,16 @@ class PyDB(object):
self.is_pep669_monitoring_enabled = False self.is_pep669_monitoring_enabled = False
if USE_LOW_IMPACT_MONITORING:
from _pydevd_bundle.pydevd_pep_669_tracing_wrapper import (
global_cache_skips, global_cache_frame_skips)
else:
from _pydevd_bundle.pydevd_trace_dispatch import (
global_cache_skips, global_cache_frame_skips)
self._global_cache_skips = global_cache_skips
self._global_cache_frame_skips = global_cache_frame_skips
self.value_resolve_thread_list = [] self.value_resolve_thread_list = []
if set_as_global: if set_as_global:
@@ -922,8 +933,10 @@ class PyDB(object):
self.clear_skip_caches() self.clear_skip_caches()
def clear_skip_caches(self): def clear_skip_caches(self):
global_cache_skips.clear() self._global_cache_skips.clear()
global_cache_frame_skips.clear() self._global_cache_frame_skips.clear()
if USE_LOW_IMPACT_MONITORING:
restart_events()
def add_break_on_exception( def add_break_on_exception(
self, self,