[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.
This commit is contained in:
Andrew M. Kuchling 2003-05-22 14:46:12 +00:00
parent 35c6cd0905
commit b1f8bab654
1 changed files with 22 additions and 2 deletions

View File

@ -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()