def __init__(self, clientCmd):
DbgTerminal.DbgTerminal.__init__(self, clientCmd)
- def getDbgArgv(self):
+ def getArgv(self):
return ["gdb", "--fullname", string.split(self.clientCmd)[0]]
- def setDbgPty(self, pty):
+ def setPty(self, pty):
ttyname = os.ttyname(pty)
self.feed_dbg("set inferior-tty %s\n" % (ttyname,))
- def setDbgRun(self):
+ def setRun(self):
+
+ his = self.getHistoryLen()
argv = string.join(string.split(self.clientCmd)[1:])
self.feed_dbg("run " + argv + "\n")
+ return self.waitForPosition(his)
- def setDbgQuit(self):
- self.feed_dbg("quit\n")
- self.waitForDbgNewline()
- self.feed_dbg("y\n");
- def setDbgContinue(self):
+ def setContinue(self):
+ his = self.getHistoryLen()
self.feed_dbg("cont\n");
+ return self.waitForPosition(his)
+
+ def setStepover(self):
+ his = self.getHistoryLen()
+ self.feed_dbg("next\n");
+ return self.waitForPosition(his)
+
+ def setStepin(self):
+ his = self.getHistoryLen()
+ self.feed_dbg("step\n");
+ return self.waitForPosition(his)
+
+ def setQuit(self):
+ self.feed_dbg("quit\n")
+ self.waitForNewline()
+ self.feed_dbg("y\n");
- def setDbgBreakpoint(self, file, lineno):
+ def setBreakpoint(self, file, lineno):
self.feed_dbg("break %s:%d\n" % (file, lineno))
- def getDbgExpression(self, expr):
+ def getExpression(self, expr):
his = self.getHistoryLen()
self.feed_dbg("print " + expr + "\n")
rx = re.compile("^\$[1-9][0-9]* = .*$")
- his, response = self.waitForDbgRx(rx, his)
+ his, response = self.waitForRx(rx, his)
split = string.split(response, "=")
return string.join(split[1:], "=").strip()
+ def waitForPosition(self, his):
+ rx = re.compile("^\(gdb\) $")
+ his, reponse = self.waitForRx(rx,his)
+
+ if self.history[his-1][0:2]=="\x1a\x1a":
+ tuples = string.split(self.history[his-1][2:], ":")
+ return tuples[0:2]
+
+ return None
+
+
if __name__ == "__main__":