diff --git a/Lib/pdb.py b/Lib/pdb.py index f56941e8d18..2ec736b2627 100755 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -485,7 +485,11 @@ def do_condition(self, arg): cond = args[1] except: cond = None - bp = bdb.Breakpoint.bpbynumber[bpnum] + try: + bp = bdb.Breakpoint.bpbynumber[bpnum] + except IndexError: + print >>self.stdout, 'Breakpoint index %r is not valid' % args[0] + return if bp: bp.cond = cond if not cond: @@ -506,7 +510,11 @@ def do_ignore(self,arg): count = int(args[1].strip()) except: count = 0 - bp = bdb.Breakpoint.bpbynumber[bpnum] + try: + bp = bdb.Breakpoint.bpbynumber[bpnum] + except IndexError: + print >>self.stdout, 'Breakpoint index %r is not valid' % args[0] + return if bp: bp.ignore = count if count > 0: diff --git a/Misc/NEWS b/Misc/NEWS index 8d93d0130c2..24d7a1433bf 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -158,6 +158,9 @@ Core and builtins Library ------- +- Patch #1192590: Fix pdb's "ignore" and "condition" commands so they trap + the IndexError caused by passing in an invalid breakpoint number. + - Patch #1599845: Add an option to disable the implicit calls to server_bind() and server_activate() in the constructors for TCPServer, SimpleXMLRPCServer and DocXMLRPCServer.