- Fixed bug when bp is set on same addr
[pygdb.git] / GdbTerminal.py
index 4fb4a35b8dd8c2494f76a759a6fbcbeb0cb626f9..304e39ab622185cd2132e616fe17c0cd5c89b261 100755 (executable)
@@ -17,8 +17,8 @@ import DbgTerminal
 class GdbTerminal (DbgTerminal.DbgTerminal):
 
 
-       def __init__(self, clientCmd, exitcb=None):
-               DbgTerminal.DbgTerminal.__init__(self, clientCmd, exitcb)
+       def __init__(self, clientCmd):
+               DbgTerminal.DbgTerminal.__init__(self, clientCmd)
 
        def getArgv(self):
                return ["gdb", "--fullname", string.split(self.clientCmd)[0]]
@@ -34,7 +34,6 @@ class GdbTerminal (DbgTerminal.DbgTerminal):
                self.feed_child("run " + argv + "\n")
                return self.waitForActivation(his)
 
-
        def setContinue(self):
                his = self.getHistoryLen()
                self.feed_child("cont\n");
@@ -63,20 +62,22 @@ class GdbTerminal (DbgTerminal.DbgTerminal):
                        self.feed_child("break %s:%s if %s\n" % \
                                        (file, str(lineno), condition))
 
-               rx = re.compile("^Breakpoint |^No|^\(gdb\) ")
+               rx = re.compile("^Breakpoint |^No |^\(gdb\) ")
                his, response = self.waitForRx(rx, his)
 
                if response[0:10] == "Breakpoint":
                        return string.split(response)[1].strip()
-               if response[0:5] == "(gdb)":
-                       return None
+
                if response[0:14] == "No source file":
                        self.feed_child("n\n");
                        return None
-               if response[0:3] == "No ":
-                       return None
-                       
-               return NotImplementedError()
+
+               #Wait again for gdb
+               if response[0:5] != "(gdb)":
+                       his, response = self.waitForRx(rx,his)
+
+               return None
+
 
        def delBreakpoint(self, breakpoint):
                self.feed_child("del breakpoint %s\n" % (breakpoint,))