[Python-checkins] bpo-44682: Handle invalid arg to pdb's "commands" directive (#27252)
ambv
webhook-mailer at python.org
Wed Jul 28 12:55:24 EDT 2021
https://github.com/python/cpython/commit/53b9458f2e9314703a5406ca817d757f1509882a
commit: 53b9458f2e9314703a5406ca817d757f1509882a
branch: main
author: andrei kulakov <andrei.avk at gmail.com>
committer: ambv <lukasz at langa.pl>
date: 2021-07-28T18:55:03+02:00
summary:
bpo-44682: Handle invalid arg to pdb's "commands" directive (#27252)
files:
A Misc/NEWS.d/next/Library/2021-07-20-00-11-47.bpo-44682.3m2qVV.rst
M Lib/pdb.py
M Lib/test/test_pdb.py
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 8aa899f90b7d9..d7110074538ac 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -640,6 +640,12 @@ def do_commands(self, arg):
except:
self.error("Usage: commands [bnum]\n ...\n end")
return
+ try:
+ self.get_bpbynumber(bnum)
+ except ValueError as err:
+ self.error('cannot set commands: %s' % err)
+ return
+
self.commands_bnum = bnum
# Save old definitions for the case of a keyboard interrupt.
if bnum in self.commands:
diff --git a/Lib/test/test_pdb.py b/Lib/test/test_pdb.py
index 5794e67aafdb1..5bb8069021d89 100644
--- a/Lib/test/test_pdb.py
+++ b/Lib/test/test_pdb.py
@@ -260,6 +260,9 @@ def test_pdb_breakpoint_commands():
... 'tbreak 5',
... 'continue', # will stop at temporary breakpoint
... 'break', # make sure breakpoint is gone
+ ... 'commands 10', # out of range
+ ... 'commands a', # display help
+ ... 'commands 4', # already deleted
... 'continue',
... ]):
... test_function()
@@ -319,6 +322,14 @@ def test_pdb_breakpoint_commands():
> <doctest test.test_pdb.test_pdb_breakpoint_commands[0]>(5)test_function()
-> print(3)
(Pdb) break
+ (Pdb) commands 10
+ *** cannot set commands: Breakpoint number 10 out of range
+ (Pdb) commands a
+ *** Usage: commands [bnum]
+ ...
+ end
+ (Pdb) commands 4
+ *** cannot set commands: Breakpoint 4 already deleted
(Pdb) continue
3
4
diff --git a/Misc/NEWS.d/next/Library/2021-07-20-00-11-47.bpo-44682.3m2qVV.rst b/Misc/NEWS.d/next/Library/2021-07-20-00-11-47.bpo-44682.3m2qVV.rst
new file mode 100644
index 0000000000000..308053a62c389
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-07-20-00-11-47.bpo-44682.3m2qVV.rst
@@ -0,0 +1,2 @@
+Change the :mod:`pdb` *commands* directive to disallow setting commands
+for an invalid breakpoint and to display an appropriate error.
More information about the Python-checkins
mailing list