Skip to content

Commit 6475f86

Browse files
committed
feat: Add dynamic skip rules for kernel modules to debugpy configuration.
1 parent 5b9f05b commit 6475f86

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

ipykernel/debugger.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ class Debugger:
326326
]
327327

328328
def __init__(
329-
self, log, debugpy_stream, event_callback, shell_socket, session, just_my_code=True
329+
self, log, debugpy_stream, event_callback, shell_socket, session, kernel_modules, just_my_code=True
330330
):
331331
"""Initialize the debugger."""
332332
self.log = log
@@ -335,6 +335,7 @@ def __init__(
335335
self.session = session
336336
self.is_started = False
337337
self.event_callback = event_callback
338+
self.kernel_modules = kernel_modules
338339
self.just_my_code = just_my_code
339340
self.stopped_queue: Queue[t.Any] = Queue()
340341

@@ -574,6 +575,11 @@ async def attach(self, message):
574575
# Set debugOptions for breakpoints in python standard library source.
575576
if not self.just_my_code:
576577
message["arguments"]["debugOptions"] = ["DebugStdLib"]
578+
579+
# Dynamic skip rules (computed at kernel startup)
580+
rules = [{"path": path, "include": False} for path in self.kernel_modules]
581+
message["arguments"]["rules"] = rules
582+
577583
return await self._forward_message(message)
578584

579585
async def configurationDone(self, message):

ipykernel/ipkernel.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,12 @@ def __init__(self, **kwargs):
119119

120120
from .debugger import _is_debugpy_available
121121

122+
self._kernel_modules = [
123+
m.__file__
124+
for m in sys.modules.values()
125+
if hasattr(m, "__file__") and m.__file__
126+
]
127+
122128
# Initialize the Debugger
123129
if _is_debugpy_available:
124130
self.debugger = self.debugger_class(
@@ -127,6 +133,7 @@ def __init__(self, **kwargs):
127133
self._publish_debug_event,
128134
self.debug_shell_socket,
129135
self.session,
136+
self._kernel_modules,
130137
self.debug_just_my_code,
131138
)
132139

0 commit comments

Comments
 (0)