added missing main control window
[pygdb.git] / GdbTerminal.py
index 3ced460da3f2146ae6b405e4216b6f5c9b1588c0..12256c1d0066e73b4d1f80dc69afbceae38f1cc8 100755 (executable)
@@ -20,40 +20,67 @@ class GdbTerminal (DbgTerminal.DbgTerminal):
        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__":