summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorRĂ©mi Lapeyre <remi.lapeyre@henki.fr>2019-05-24 20:44:31 (GMT)
committerPablo Galindo <Pablogsal@gmail.com>2019-05-24 20:44:31 (GMT)
commit458560347f5c28e162bb288adfa0cfe5aad79557 (patch)
tree6bee8dd501337e5c6e3c21698b42cde3e066d540 /Lib
parentdeffee57749cf29ba17f50f11fb2a8cbc3e3752d (diff)
downloadcpython-458560347f5c28e162bb288adfa0cfe5aad79557.zip
cpython-458560347f5c28e162bb288adfa0cfe5aad79557.tar.gz
cpython-458560347f5c28e162bb288adfa0cfe5aad79557.tar.bz2
bpo-36969: Make PDB args command display positional only arguments (GH-13459)
Diffstat (limited to 'Lib')
-rwxr-xr-xLib/pdb.py2
-rw-r--r--Lib/test/test_pdb.py33
2 files changed, 29 insertions, 6 deletions
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 0e7609e..13068ce 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -1132,7 +1132,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
"""
co = self.curframe.f_code
dict = self.curframe_locals
- n = co.co_argcount + co.co_kwonlyargcount
+ n = co.co_argcount + co.co_posonlyargcount + co.co_kwonlyargcount
if co.co_flags & inspect.CO_VARARGS: n = n+1
if co.co_flags & inspect.CO_VARKEYWORDS: n = n+1
for i in range(n):
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index a33494d..d03f1b2 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -80,10 +80,14 @@ def test_pdb_basic_commands():
>>> def test_function3(arg=None, *, kwonly=None):
... pass
+ >>> def test_function4(a, b, c, /):
+ ... pass
+
>>> def test_function():
... import pdb; pdb.Pdb(nosigint=True, readrc=False).set_trace()
... ret = test_function_2('baz')
... test_function3(kwonly=True)
+ ... test_function4(1, 2, 3)
... print(ret)
>>> with PdbTestInput([ # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE
@@ -104,10 +108,14 @@ def test_pdb_basic_commands():
... 'next', # step to test_function3()
... 'step', # stepping into test_function3()
... 'args', # display function args
+ ... 'return', # return out of function
+ ... 'next', # step to test_function4()
+ ... 'step', # stepping to test_function4()
+ ... 'args', # display function args
... 'continue',
... ]):
... test_function()
- > <doctest test.test_pdb.test_pdb_basic_commands[2]>(3)test_function()
+ > <doctest test.test_pdb.test_pdb_basic_commands[3]>(3)test_function()
-> ret = test_function_2('baz')
(Pdb) step
--Call--
@@ -130,14 +138,14 @@ def test_pdb_basic_commands():
[EOF]
(Pdb) bt
...
- <doctest test.test_pdb.test_pdb_basic_commands[3]>(21)<module>()
+ <doctest test.test_pdb.test_pdb_basic_commands[4]>(25)<module>()
-> test_function()
- <doctest test.test_pdb.test_pdb_basic_commands[2]>(3)test_function()
+ <doctest test.test_pdb.test_pdb_basic_commands[3]>(3)test_function()
-> ret = test_function_2('baz')
> <doctest test.test_pdb.test_pdb_basic_commands[0]>(1)test_function_2()
-> def test_function_2(foo, bar='default'):
(Pdb) up
- > <doctest test.test_pdb.test_pdb_basic_commands[2]>(3)test_function()
+ > <doctest test.test_pdb.test_pdb_basic_commands[3]>(3)test_function()
-> ret = test_function_2('baz')
(Pdb) down
> <doctest test.test_pdb.test_pdb_basic_commands[0]>(1)test_function_2()
@@ -176,7 +184,7 @@ def test_pdb_basic_commands():
(Pdb) retval
'BAZ'
(Pdb) next
- > <doctest test.test_pdb.test_pdb_basic_commands[2]>(4)test_function()
+ > <doctest test.test_pdb.test_pdb_basic_commands[3]>(4)test_function()
-> test_function3(kwonly=True)
(Pdb) step
--Call--
@@ -185,6 +193,21 @@ def test_pdb_basic_commands():
(Pdb) args
arg = None
kwonly = True
+ (Pdb) return
+ --Return--
+ > <doctest test.test_pdb.test_pdb_basic_commands[1]>(2)test_function3()->None
+ -> pass
+ (Pdb) next
+ > <doctest test.test_pdb.test_pdb_basic_commands[3]>(5)test_function()
+ -> test_function4(1, 2, 3)
+ (Pdb) step
+ --Call--
+ > <doctest test.test_pdb.test_pdb_basic_commands[2]>(1)test_function4()
+ -> def test_function4(a, b, c, /):
+ (Pdb) args
+ a = 1
+ b = 2
+ c = 3
(Pdb) continue
BAZ
"""