Author hjzin
Recipients hjzin
Date 2021-02-25.08:11:10
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
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.


def do_clear(self, arg):
    if ':' in arg:
        # Make sure it works for "clear C:\foo\"
        i = arg.rfind(':')
        filename = arg[:i]
        arg = arg[i+1:]
            lineno = int(arg)
        except ValueError:
            err = "Invalid line number (%s)" % arg
            bplist = self.get_breaks(filename, lineno)
            err = self.clear_break(filename, lineno)
        if err:
            for bp in bplist:
                self.message('Deleted %s' % bp)
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:
    bplist = self.get_breaks(filename, lineno)[:]
Date User Action Args
2021-02-25 08:11:10hjzinsetrecipients: + hjzin
2021-02-25 08:11:10hjzinsetmessageid: <>
2021-02-25 08:11:10hjzinlinkissue43318 messages
2021-02-25 08:11:10hjzincreate