mirror of
https://github.com/python/cpython.git
synced 2025-11-01 10:45:30 +00:00
gh-108463: Make expressions/statements work as expected in pdb (#108464)
This commit is contained in:
parent
7855d325e6
commit
6304d983a0
5 changed files with 52 additions and 0 deletions
|
|
@ -252,6 +252,10 @@ change a variable or call a function. When an exception occurs in such a
|
||||||
statement, the exception name is printed but the debugger's state is not
|
statement, the exception name is printed but the debugger's state is not
|
||||||
changed.
|
changed.
|
||||||
|
|
||||||
|
.. versionchanged:: 3.13
|
||||||
|
Expressions/Statements whose prefix is a pdb command are now correctly
|
||||||
|
identified and executed.
|
||||||
|
|
||||||
The debugger supports :ref:`aliases <debugger-aliases>`. Aliases can have
|
The debugger supports :ref:`aliases <debugger-aliases>`. Aliases can have
|
||||||
parameters which allows one a certain level of adaptability to the context under
|
parameters which allows one a certain level of adaptability to the context under
|
||||||
examination.
|
examination.
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,10 @@ pdb
|
||||||
the new ``exceptions [exc_number]`` command for Pdb. (Contributed by Matthias
|
the new ``exceptions [exc_number]`` command for Pdb. (Contributed by Matthias
|
||||||
Bussonnier in :gh:`106676`.)
|
Bussonnier in :gh:`106676`.)
|
||||||
|
|
||||||
|
* Expressions/Statements whose prefix is a pdb command are now correctly
|
||||||
|
identified and executed.
|
||||||
|
(Contributed by Tian Gao in :gh:`108464`.)
|
||||||
|
|
||||||
sqlite3
|
sqlite3
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -237,6 +237,9 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
||||||
pass
|
pass
|
||||||
self.allow_kbdint = False
|
self.allow_kbdint = False
|
||||||
self.nosigint = nosigint
|
self.nosigint = nosigint
|
||||||
|
# Consider these characters as part of the command so when the users type
|
||||||
|
# c.a or c['a'], it won't be recognized as a c(ontinue) command
|
||||||
|
self.identchars = cmd.Cmd.identchars + '=.[](),"\'+-*/%@&|<>~^'
|
||||||
|
|
||||||
# Read ~/.pdbrc and ./.pdbrc
|
# Read ~/.pdbrc and ./.pdbrc
|
||||||
self.rcLines = []
|
self.rcLines = []
|
||||||
|
|
|
||||||
|
|
@ -1957,6 +1957,46 @@ def test_pdb_multiline_statement():
|
||||||
(Pdb) c
|
(Pdb) c
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def test_pdb_show_attribute_and_item():
|
||||||
|
"""Test for multiline statement
|
||||||
|
|
||||||
|
>>> def test_function():
|
||||||
|
... n = lambda x: x
|
||||||
|
... c = {"a": 1}
|
||||||
|
... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace()
|
||||||
|
... pass
|
||||||
|
|
||||||
|
>>> with PdbTestInput([ # doctest: +NORMALIZE_WHITESPACE
|
||||||
|
... 'c["a"]',
|
||||||
|
... 'c.get("a")',
|
||||||
|
... 'n(1)',
|
||||||
|
... 'j=1',
|
||||||
|
... 'j+1',
|
||||||
|
... 'r"a"',
|
||||||
|
... 'next(iter([1]))',
|
||||||
|
... 'list((0, 1))',
|
||||||
|
... 'c'
|
||||||
|
... ]):
|
||||||
|
... test_function()
|
||||||
|
> <doctest test.test_pdb.test_pdb_show_attribute_and_item[0]>(5)test_function()
|
||||||
|
-> pass
|
||||||
|
(Pdb) c["a"]
|
||||||
|
1
|
||||||
|
(Pdb) c.get("a")
|
||||||
|
1
|
||||||
|
(Pdb) n(1)
|
||||||
|
1
|
||||||
|
(Pdb) j=1
|
||||||
|
(Pdb) j+1
|
||||||
|
2
|
||||||
|
(Pdb) r"a"
|
||||||
|
'a'
|
||||||
|
(Pdb) next(iter([1]))
|
||||||
|
1
|
||||||
|
(Pdb) list((0, 1))
|
||||||
|
[0, 1]
|
||||||
|
(Pdb) c
|
||||||
|
"""
|
||||||
|
|
||||||
def test_pdb_issue_20766():
|
def test_pdb_issue_20766():
|
||||||
"""Test for reference leaks when the SIGINT handler is set.
|
"""Test for reference leaks when the SIGINT handler is set.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Make expressions/statements work as expected in pdb
|
||||||
Loading…
Add table
Add a link
Reference in a new issue