mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
[3.13] gh-127321: Avoid stopping at an opcode without an associated line number for breakpoint() (GH-127457) (#127487)
(cherry picked from commit 1bc4f076d1
)
This commit is contained in:
parent
3b31f8c7e8
commit
dd2ad70b29
3 changed files with 24 additions and 0 deletions
|
@ -436,6 +436,13 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
|||
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
|
||||
if self.bp_commands(frame):
|
||||
self.interaction(frame, None)
|
||||
|
||||
|
|
|
@ -2719,6 +2719,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
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
:func:`pdb.set_trace` will not stop at an opcode that does not have an associated line number anymore.
|
Loading…
Add table
Add a link
Reference in a new issue