Major change: Discovered the vte.Terminal class and moved to that one!
[pygdb.git] / GdbWindow.py
1 #!/usr/bin/python
2 #shuber, 2008-06-04
3
4 __author__ = "shuber"
5
6
7 import gtk
8 import os
9 import re
10 import string
11 import sys
12 import time
13
14 import DbgWindow
15
16
17 class GdbWindow (DbgWindow.DbgWindow):
18
19
20 def __init__(self, clientCmd):
21 DbgWindow.DbgWindow.__init__(self, clientCmd)
22
23 def getDbgArgv(self):
24 return ["gdb", "--fullname", string.split(self.clientCmd)[0]]
25
26 def setDbgPty(self, pty):
27 ttyname = os.ttyname(pty)
28 self.feed_dbg("set inferior-tty %s\n" % (ttyname,))
29
30 def setDbgRun(self):
31 argv = string.join(string.split(self.clientCmd)[1:])
32 self.feed_dbg("run " + argv + "\n")
33
34 def setDbgQuit(self):
35 self.feed_dbg("quit\n")
36 self.waitForDbgNewline()
37 self.feed_dbg("y\n");
38
39 def setDbgContinue(self):
40 self.feed_dbg("cont\n");
41
42 def setDbgBreakpoint(self, file, lineno):
43 self.feed_dbg("break %s:%d\n" % (file, lineno))
44
45 def getDbgExpression(self, expr):
46
47 self.waitForDbgNewline()
48 self.feed_dbg("print " + expr + "\n")
49
50 rx = re.compile("^\$[1-9][0-9]* = .*$")
51 response = self.waitForDbgRx(rx)
52
53 split = string.split(response, "=")
54 return string.join(split[1:], "=").strip()
55
56
57
58 if __name__ == "__main__":
59
60
61 gdbwnd = GdbWindow(string.join(sys.argv[1:]))
62 DbgWindow.launchDebugger(gdbwnd)
63
64
65
66