Skip to content

Commit

Permalink
pythongh-127321: Avoid stopping at an opcode without an associated li…
Browse files Browse the repository at this point in the history
…ne number for breakpoint() (python#127457)
  • Loading branch information
gaogaotiantian authored Dec 1, 2024
1 parent a880358 commit 1bc4f07
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 0 deletions.
7 changes: 7 additions & 0 deletions Lib/pdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,13 @@ def user_line(self, frame):
if (self.mainpyfile != self.canonic(frame.f_code.co_filename)):
return
self._wait_for_mainpyfile = False
if self.trace_opcodes:
# GH-127321
# We want to avoid stopping at an opcode that does not have
# an associated line number because pdb does not like it
if frame.f_lineno is None:
self.set_stepinstr()
return
self.bp_commands(frame)
self.interaction(frame, None)

Expand Down
16 changes: 16 additions & 0 deletions Lib/test/test_pdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -2931,6 +2931,22 @@ def test_pdb_issue_gh_108976():
(Pdb) continue
"""

def test_pdb_issue_gh_127321():
"""See GH-127321
breakpoint() should stop at a opcode that has a line number
>>> def test_function():
... import pdb; pdb_instance = pdb.Pdb(nosigint=True, readrc=False)
... [1, 2] and pdb_instance.set_trace()
... a = 1
>>> with PdbTestInput([ # doctest: +NORMALIZE_WHITESPACE
... 'continue'
... ]):
... test_function()
> <doctest test.test_pdb.test_pdb_issue_gh_127321[0]>(4)test_function()
-> a = 1
(Pdb) continue
"""


def test_pdb_issue_gh_80731():
"""See GH-80731
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
:func:`pdb.set_trace` will not stop at an opcode that does not have an associated line number anymore.

0 comments on commit 1bc4f07

Please sign in to comment.