Major change: Discovered the vte.Terminal class and moved to that one!
[pygdb.git] / GdbWindow.py
diff --git a/GdbWindow.py b/GdbWindow.py
new file mode 100755 (executable)
index 0000000..a5baaa8
--- /dev/null
@@ -0,0 +1,66 @@
+#!/usr/bin/python
+#shuber, 2008-06-04
+
+__author__ = "shuber"
+
+
+import gtk
+import os
+import re
+import string
+import sys
+import time
+
+import DbgWindow
+
+
+class GdbWindow (DbgWindow.DbgWindow):
+
+
+       def __init__(self, clientCmd):
+               DbgWindow.DbgWindow.__init__(self, clientCmd)
+
+       def getDbgArgv(self):
+               return ["gdb", "--fullname", string.split(self.clientCmd)[0]]
+
+       def setDbgPty(self, pty):
+               ttyname = os.ttyname(pty)
+               self.feed_dbg("set inferior-tty %s\n" % (ttyname,))
+
+       def setDbgRun(self):
+               argv = string.join(string.split(self.clientCmd)[1:])
+               self.feed_dbg("run " + argv + "\n")
+
+       def setDbgQuit(self):
+               self.feed_dbg("quit\n")
+               self.waitForDbgNewline()
+               self.feed_dbg("y\n");
+
+       def setDbgContinue(self):
+               self.feed_dbg("cont\n");
+
+       def setDbgBreakpoint(self, file, lineno):
+               self.feed_dbg("break %s:%d\n" % (file, lineno))
+
+       def getDbgExpression(self, expr):
+
+               self.waitForDbgNewline()
+               self.feed_dbg("print " + expr + "\n")
+
+               rx = re.compile("^\$[1-9][0-9]* = .*$")
+               response = self.waitForDbgRx(rx)
+
+               split = string.split(response, "=")
+               return string.join(split[1:], "=").strip()
+
+
+
+if __name__ == "__main__":
+
+
+       gdbwnd = GdbWindow(string.join(sys.argv[1:]))
+       DbgWindow.launchDebugger(gdbwnd)
+
+
+
+