#8015: fix crash when entering an empty line for breakpoint commands. Also restore environment properly when an exception occurs during the definition of commands.
diff --git a/Lib/pdb.py b/Lib/pdb.py
index cedd17e..e62f913 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -509,8 +509,10 @@
return self.handle_command_def(line)
def handle_command_def(self,line):
- """ Handles one command line during command list definition. """
+ """Handles one command line during command list definition."""
cmd, arg, line = self.parseline(line)
+ if not cmd:
+ return
if cmd == 'silent':
self.commands_silent[self.commands_bnum] = True
return # continue to handle other cmd def in the cmd list
@@ -518,7 +520,7 @@
self.cmdqueue = []
return 1 # end of cmd list
cmdlist = self.commands[self.commands_bnum]
- if (arg):
+ if arg:
cmdlist.append(cmd+' '+arg)
else:
cmdlist.append(cmd)
@@ -561,9 +563,11 @@
prompt_back = self.prompt
self.prompt = '(com) '
self.commands_defining = True
- self.cmdloop()
- self.commands_defining = False
- self.prompt = prompt_back
+ try:
+ self.cmdloop()
+ finally:
+ self.commands_defining = False
+ self.prompt = prompt_back
def do_break(self, arg, temporary = 0):
# break [ ([filename:]lineno | function) [, "condition"] ]
diff --git a/Misc/NEWS b/Misc/NEWS
index a68cc73..5c61594 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -475,6 +475,9 @@
Library
-------
+- Issue #8015: In pdb, do not crash when an empty line is entered as
+ a breakpoint command.
+
- In pdb, allow giving a line number to the "until" command.
- Issue #1437051: For pdb, allow "continue" and related commands in