From: Andrew M. Kuchling Date: Thu, 22 May 2003 14:46:12 +0000 (+0000) Subject: [Bug #741171] pdb crashes when enabling a non-existing breakpoint X-Git-Tag: v2.3c1~647 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b1f8bab6542635cd32dfbebde3839f86819548ab;p=python [Bug #741171] pdb crashes when enabling a non-existing breakpoint Check the supplied breakpoint number more carefully. (Incompatibility: before this patch, "enable -1" would enable the last breakpoint on the list; now -1 is not a legal ID. Not sure anyone would ever use negative indices...) 2.2 bugfix candidate, assuming making -1 illegal isn't considered a problem. --- diff --git a/Lib/pdb.py b/Lib/pdb.py index c4d789eb2d..ae2fab6c56 100755 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -375,14 +375,34 @@ class Pdb(bdb.Bdb, cmd.Cmd): def do_enable(self, arg): args = arg.split() for i in args: - bp = bdb.Breakpoint.bpbynumber[int(i)] + try: + i = int(i) + except ValueError: + print 'Breakpoint index %r is not a number' % i + continue + + if not (0 <= i < len(bdb.Breakpoint.bpbynumber)): + print 'No breakpoint numbered', i + continue + + bp = bdb.Breakpoint.bpbynumber[i] if bp: bp.enable() def do_disable(self, arg): args = arg.split() for i in args: - bp = bdb.Breakpoint.bpbynumber[int(i)] + try: + i = int(i) + except ValueError: + print 'Breakpoint index %r is not a number' % i + continue + + if not (0 <= i < len(bdb.Breakpoint.bpbynumber)): + print 'No breakpoint numbered', i + continue + + bp = bdb.Breakpoint.bpbynumber[i] if bp: bp.disable()