- sometimes its possible that the "at xxx:dd" line is on the next line
endhis, response = self.waitForRx(rx, starthis)
endhis, response = self.waitForRx(rx, starthis)
- rxbp1 = re.compile("^\d+\s+breakpoint")
- rxbp2 = re.compile("^\tstop only if")
+ rxbp = re.compile("^\d+\s+breakpoint")
+ rxpos = re.compile("^.* at \S+:\d+$")
+ rxcond = re.compile("^\tstop only if")
bpnts = []
bplines = self.history[starthis+1:endhis]
bpnts = []
bplines = self.history[starthis+1:endhis]
while i<len(bplines):
line = bplines[i]
while i<len(bplines):
line = bplines[i]
- if not rxbp1.search(line):
+ if not rxbp.search(line):
+
+ #Get number of breakpoint
+ no = string.split(line)[0]
- splits = string.split(line)
- no = splits[0]
- pos = splits[-1]
+ #This line does not contain the file!
+ if not rxpos.search(line):
+ i += 1
+ line = bplines[i]
+
+ pos = string.split(line)[-1]
[file,lineno] = string.split(pos,":")
cond = None
[file,lineno] = string.split(pos,":")
cond = None
- if i+1<len(bplines) and rxbp2.search(bplines[i+1]):
+ if i+1<len(bplines) and rxcond.search(bplines[i+1]):
i +=1
line = bplines[i]
pre,cond = string.split(line,"if")
i +=1
line = bplines[i]
pre,cond = string.split(line,"if")
return string.join(split[1:], "=").strip()
return string.join(split[1:], "=").strip()
- def waitForActivation(self, his=None):
+ def waitForActivation(self, starthis=None):
+
+ if starthis == None:
+ starthis = self.getHistoryLen()
self.setActive(False)
rx = re.compile("^\(gdb\) $")
self.setActive(False)
rx = re.compile("^\(gdb\) $")
- his, reponse = self.waitForRx(rx,his)
+ endhis, reponse = self.waitForRx(rx,starthis)
- if self.history[his-1][0:2]=="\x1a\x1a":
- tuples = string.split(self.history[his-1][2:], ":")
- return tuples[0:2]
+ for his in reversed(range(starthis+1,endhis)):
+ if self.history[his][0:2]=="\x1a\x1a":
+ tuples = string.split(self.history[his][2:], ":")
+ return tuples[0:2]
-highlight ExecutionLine term=bold ctermbg=DarkGreen ctermfg=White
highlight BreakPoint term=inverse ctermbg=DarkCyan ctermfg=Black
highlight BreakPoint term=inverse ctermbg=DarkCyan ctermfg=Black
-sign define ExecutionLine text==> texthl=ExecutionLine linehl=ExecutionLine
sign define BreakPoint text=! texthl=BreakPoint linehl=BreakPoint
sign define CondBreakPoint text=? texthl=BreakPoint linehl=BreakPoint
sign define BreakPoint text=! texthl=BreakPoint linehl=BreakPoint
sign define CondBreakPoint text=? texthl=BreakPoint linehl=BreakPoint