@@ -552,12 +552,12 @@ def do_commands(self, arg):
552552 Those commands will be executed whenever the breakpoint causes
553553 the program to stop execution."""
554554 if not arg :
555- bnum = len (bdb .Breakpoint .bpbynumber )- 1
555+ bnum = len (bdb .Breakpoint .bpbynumber ) - 1
556556 else :
557557 try :
558558 bnum = int (arg )
559559 except :
560- print ("Usage : commands [bnum]\n ...\n end" ,
560+ print ("Usage: commands [bnum]\n ...\n end" ,
561561 file = self .stdout )
562562 return
563563 self .commands_bnum = bnum
@@ -634,10 +634,9 @@ def do_break(self, arg, temporary = 0):
634634 # last thing to try
635635 (ok , filename , ln ) = self .lineinfo (arg )
636636 if not ok :
637- print ('*** The specified object' , end = ' ' , file = self .stdout )
638- print (repr (arg ), end = ' ' , file = self .stdout )
639- print ('is not a function' , file = self .stdout )
640- print ('or was not found along sys.path.' , file = self .stdout )
637+ print ('*** The specified object %r is not a function '
638+ 'or was not found along sys.path.' % arg ,
639+ file = self .stdout )
641640 return
642641 funcname = ok # ok contains a function name
643642 lineno = int (ln )
@@ -726,92 +725,67 @@ def do_enable(self, arg):
726725 args = arg .split ()
727726 for i in args :
728727 try :
729- i = int (i )
730- except ValueError :
731- print ('Breakpoint index %r is not a number' % i , file = self .stdout )
732- continue
733-
734- if not (0 <= i < len (bdb .Breakpoint .bpbynumber )):
735- print ('No breakpoint numbered' , i , file = self .stdout )
736- continue
737-
738- bp = bdb .Breakpoint .bpbynumber [i ]
739- if bp :
728+ bp = self .get_bpbynumber (i )
729+ except ValueError as err :
730+ print ('***' , err , file = self .stdout )
731+ else :
740732 bp .enable ()
733+ print ('Enabled %s' % bp , file = self .stdout )
741734
742735 def do_disable (self , arg ):
743736 args = arg .split ()
744737 for i in args :
745738 try :
746- i = int (i )
747- except ValueError :
748- print ('Breakpoint index %r is not a number' % i , file = self .stdout )
749- continue
750-
751- if not (0 <= i < len (bdb .Breakpoint .bpbynumber )):
752- print ('No breakpoint numbered' , i , file = self .stdout )
753- continue
754-
755- bp = bdb .Breakpoint .bpbynumber [i ]
756- if bp :
739+ bp = self .get_bpbynumber (i )
740+ except ValueError as err :
741+ print ('***' , err , file = self .stdout )
742+ else :
757743 bp .disable ()
744+ print ('Disabled %s' % bp , file = self .stdout )
758745
759746 def do_condition (self , arg ):
760747 # arg is breakpoint number and condition
761748 args = arg .split (' ' , 1 )
762- try :
763- bpnum = int (args [0 ].strip ())
764- except ValueError :
765- # something went wrong
766- print ('Breakpoint index %r is not a number' % args [0 ], file = self .stdout )
767- return
768749 try :
769750 cond = args [1 ]
770- except :
751+ except IndexError :
771752 cond = None
772753 try :
773- bp = bdb .Breakpoint .bpbynumber [bpnum ]
774- except IndexError :
775- print ('Breakpoint index %r is not valid' % args [0 ],
776- file = self .stdout )
777- return
778- if bp :
754+ bp = self .get_bpbynumber (args [0 ].strip ())
755+ except ValueError as err :
756+ print ('***' , err , file = self .stdout )
757+ else :
779758 bp .cond = cond
780759 if not cond :
781- print ('Breakpoint' , bpnum , end = ' ' , file = self .stdout )
782- print ('is now unconditional.' , file = self .stdout )
760+ print ('Breakpoint %d is now unconditional.' % bp .number ,
761+ file = self .stdout )
762+ else :
763+ print ('New condition set for breakpoint %d.' % bp .number ,
764+ file = self .stdout )
783765
784- def do_ignore (self ,arg ):
766+ def do_ignore (self , arg ):
785767 """arg is bp number followed by ignore count."""
786768 args = arg .split ()
787- try :
788- bpnum = int (args [0 ].strip ())
789- except ValueError :
790- # something went wrong
791- print ('Breakpoint index %r is not a number' % args [0 ], file = self .stdout )
792- return
793769 try :
794770 count = int (args [1 ].strip ())
795771 except :
796772 count = 0
797773 try :
798- bp = bdb .Breakpoint .bpbynumber [bpnum ]
799- except IndexError :
800- print ('Breakpoint index %r is not valid' % args [0 ],
801- file = self .stdout )
802- return
803- if bp :
774+ bp = self .get_bpbynumber (args [0 ].strip ())
775+ except ValueError as err :
776+ print ('***' , err , file = self .stdout )
777+ else :
804778 bp .ignore = count
805779 if count > 0 :
806780 reply = 'Will ignore next '
807781 if count > 1 :
808782 reply = reply + '%d crossings' % count
809783 else :
810784 reply = reply + '1 crossing'
811- print (reply + ' of breakpoint %d.' % bpnum , file = self .stdout )
785+ print (reply + ' of breakpoint %d.' % bp . number , file = self .stdout )
812786 else :
813- print ('Will stop next time breakpoint' , end = ' ' , file = self . stdout )
814- print ( bpnum , 'is reached.' , file = self .stdout )
787+ print ('Will stop next time breakpoint %d is reached.'
788+ % bp . number , file = self .stdout )
815789
816790 def do_clear (self , arg ):
817791 """Three possibilities, tried in this order:
@@ -825,7 +799,10 @@ def do_clear(self, arg):
825799 reply = 'no'
826800 reply = reply .strip ().lower ()
827801 if reply in ('y' , 'yes' ):
802+ bplist = [bp for bp in bdb .Breakpoint .bpbynumber if bp ]
828803 self .clear_all_breaks ()
804+ for bp in bplist :
805+ print ('Deleted %s' % bp , file = self .stdout )
829806 return
830807 if ':' in arg :
831808 # Make sure it works for "clear C:\foo\bar.py:12"
@@ -837,25 +814,23 @@ def do_clear(self, arg):
837814 except ValueError :
838815 err = "Invalid line number (%s)" % arg
839816 else :
817+ bplist = self .get_breaks (filename , lineno )
840818 err = self .clear_break (filename , lineno )
841- if err : print ('***' , err , file = self .stdout )
819+ if err :
820+ print ('***' , err , file = self .stdout )
821+ else :
822+ for bp in bplist :
823+ print ('Deleted %s' % bp , file = self .stdout )
842824 return
843825 numberlist = arg .split ()
844826 for i in numberlist :
845827 try :
846- i = int (i )
847- except ValueError :
848- print ('Breakpoint index %r is not a number' % i , file = self .stdout )
849- continue
850-
851- if not (0 <= i < len (bdb .Breakpoint .bpbynumber )):
852- print ('No breakpoint numbered' , i , file = self .stdout )
853- continue
854- err = self .clear_bpbynumber (i )
855- if err :
828+ bp = self .get_bpbynumber (i )
829+ except ValueError as err :
856830 print ('***' , err , file = self .stdout )
857831 else :
858- print ('Deleted breakpoint' , i , file = self .stdout )
832+ self .clear_break (bp .file , bp .line )
833+ print ('Deleted %s' % bp , file = self .stdout )
859834 do_cl = do_clear # 'c' is already an abbreviation for 'continue'
860835
861836 def do_where (self , arg ):
0 commit comments