X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=BreakpointsFrame.py;h=0d3bcf2cf8f5204a04d601242cf9ba5db7692610;hb=e25955fe11da68612055397fc0a0e652b9971377;hp=1a24574423477034bbcee8dbdc39139c8828f8e7;hpb=104bb121bd7c3433a5e46c9b86e211b9544ea288;p=pygdb.git diff --git a/BreakpointsFrame.py b/BreakpointsFrame.py index 1a24574..0d3bcf2 100644 --- a/BreakpointsFrame.py +++ b/BreakpointsFrame.py @@ -115,6 +115,7 @@ class BreakpointsFrame (StatusFrame.StatusFrame): def applyConfiguration(self, conf): for b in conf.breakpoints: self.addBreakpoint(b["file"], b["lineno"], b["cond"]) + self.updateValues(None) def fillConfiguration(self, conf): iter = self.model.get_iter_first() @@ -126,13 +127,25 @@ class BreakpointsFrame (StatusFrame.StatusFrame): def addBreakpointToList(self, no, file, lineno, cond=None): - iter = self.model.append() - self.model.set(iter, 0, no) if cond==None: - self.model.set(iter, 1, "%s:%s" % (str(file), str(lineno))) + expr = "%s:%s" % (str(file), str(lineno)) else: - self.model.set(iter, 1, "%s:%s if %s" % (str(file), str(lineno), str(cond))) + expr = "%s:%s if %s" % (str(file), str(lineno), str(cond)) + + iter = self.model.get_iter_first() + while iter != None: + newiter = self.model.iter_next(iter) + #Found a expression which is the same --> remove the breakpoint + if (expr,) == self.model.get(iter,1): + self.debugger.delBreakpoint(no) + return + iter = newiter + + #Add the entry to the breakpoint list + iter = self.model.append() + self.model.set(iter, 0, no) + self.model.set(iter, 1, expr) def addBtnClicked(self, btn): @@ -143,7 +156,7 @@ class BreakpointsFrame (StatusFrame.StatusFrame): bpspec = self.bpEntry.get_text() bpspec = bpspec.strip() - rx = re.compile("^[\w\._\-]+:\d+(\s+if\s+\S+.*)?$") + rx = re.compile("^[\w/\._\-]+:\d+(\s+if\s+\S+.*)?$") #Check if format is correct if not rx.search(bpspec):