X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=BreakpointsFrame.py;h=201ca2f12abecff73eb13680967e967ec3c4556d;hb=refs%2Fheads%2Fcontroller;hp=9f1fe98c53e931c2927796ff4d035fab48ecf55c;hpb=0296b6d5afe20a15764842873917bf1d6aa34b77;p=pygdb.git diff --git a/BreakpointsFrame.py b/BreakpointsFrame.py index 9f1fe98..201ca2f 100644 --- a/BreakpointsFrame.py +++ b/BreakpointsFrame.py @@ -63,8 +63,8 @@ class BreakpointsFrame (StatusFrame.StatusFrame): def __createModel(self): - #Breakpoint number, position and a boolean flag indicating whether BP has been set - #at debugger yet + #Breakpoint number, position and a boolean flag indicating + #whether BP has been set at debugger yet model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING) return model @@ -102,7 +102,6 @@ class BreakpointsFrame (StatusFrame.StatusFrame): def addBreakpoint(self, file, lineno, cond=None): no = self.debugger.setBreakpoint(file, lineno, cond) - if no!=None: self.addBreakpointToList(no, file, lineno, cond) else: @@ -113,6 +112,26 @@ class BreakpointsFrame (StatusFrame.StatusFrame): dialog.run() dialog.destroy() + return no + + + def delBreakpoints(self, file, lineno): + + def addIters(model, path, iter, iters): + expr = model.get_value(iter,1) + expr = string.split(expr, " if ")[0].strip() + if expr == "%s:%d"%(file,lineno): + iters += [iter] + + iters = [] + self.model.foreach(addIters, iters) + + #Need reversed here since rows are moved + #when removing rows + for i in reversed(iters): + self.model.remove(i) + + def applyConfiguration(self, conf): for b in conf.breakpoints: @@ -123,7 +142,13 @@ class BreakpointsFrame (StatusFrame.StatusFrame): iter = self.model.get_iter_first() while iter != None: spec, = self.model.get(iter, 1) - conf.parseBreak(spec) + + #Replacing file by absolute path + file = string.split(spec, ":")[0] + file = self.debugger.toAbsPath(file) + postfile = string.join( string.split(spec,":")[1:], ":") + + conf.parseBreak(file + ":" + postfile ) iter = self.model.iter_next(iter) @@ -171,7 +196,7 @@ class BreakpointsFrame (StatusFrame.StatusFrame): return - ifsplit = string.split(bpspec, "if") + ifsplit = string.split(bpspec, " if ") if len(ifsplit)>1: cond = ifsplit[1].strip() @@ -188,6 +213,9 @@ class BreakpointsFrame (StatusFrame.StatusFrame): def delBtnClicked(self, btn): + self.delBreakpoints("main.cpp", 26) + return + if not self.debugger.isActive(): return