New submission from huzhaojie <hu...@foxmail.com>:
In Pdb, when successfully clear breakpoints, the Pdb should output a message:"Deleted XXX", but when breakpoints are cleared by filename:lineno, the message can't be output. I think it's related to the following code. ```python pdb.py: def do_clear(self, arg): ... if ':' in arg: # Make sure it works for "clear C:\foo\bar.py:12" i = arg.rfind(':') filename = arg[:i] arg = arg[i+1:] try: lineno = int(arg) except ValueError: err = "Invalid line number (%s)" % arg else: bplist = self.get_breaks(filename, lineno) err = self.clear_break(filename, lineno) if err: self.error(err) else: for bp in bplist: self.message('Deleted %s' % bp) return ``` self.get_breaks is called to get the breakpoints to be deleted, the result is in bplist. self.clear_break is called to delete the breakpoints in bplist. Each element in bplist is a reference to a Breakpoint object, so when all Breakpoint objects are removed, the bplist will become an empty list when self.clear_break is called, so pdb can't output the prompt message. It can be simply fixed by following code: ```python bplist = self.get_breaks(filename, lineno)[:] ``` ---------- title: pdb can't output the prompt message when successfully clear a breakpoint by "filename:lineno" -> pdb can't output the prompt message when successfully clear breakpoints by "filename:lineno" _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue43318> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com