#8015: fix crash when entering an empty line for breakpoint commands. Also restore environment properly when an exception occurs during the definition of commands.

This commit is contained in:
Georg Brandl 2010-07-30 08:54:49 +00:00
parent 26a0f87e28
commit 44f8bf9411
2 changed files with 12 additions and 5 deletions

View File

@ -509,8 +509,10 @@ class Pdb(bdb.Bdb, cmd.Cmd):
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 @@ class Pdb(bdb.Bdb, cmd.Cmd):
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 @@ class Pdb(bdb.Bdb, cmd.Cmd):
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"] ]

View File

@ -475,6 +475,9 @@ C-API
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