def __init__(self, arguments, earlyConsolePrint, verbose=0): """Constructor. @param arguments GDB start command. """ super(DebuggerIo, self).__init__() self.miParser = MiParser() self.arguments = arguments self.arguments.append("--interpreter=mi") self._miToken = 0 self.onUnknownEvent.connect(self.unknownEvent) self._gdbThread = QProcess() self._gdbThread.setProcessChannelMode(QProcess.MergedChannels) self._gdbThread.error.connect(self.gdbProcessError) self._gdbThread.finished.connect(self.gdbProcessFinished) self._gdbThread.readyReadStandardOutput.connect( self.gdbProcessReadyReadStandardOutput) self._gdbThread.started.connect(self.gdbProcessStarted) self._gdbThread.stateChanged.connect(self.gdbProcessStateChanged) # # Output from the GDB process is read in realtime and written to the # self._lines list. This list is protected by the _linesMutex from the # user-called reader in waitForPrompt(). # self._lines = [] self._linesMutex = QMutex() # # Start. # self._gdbThread.start(self.arguments[0], self.arguments[1:]) self._gdbThread.waitForStarted() self.waitForPrompt("", None, earlyConsolePrint)
def __init__(self, gdbThreadStarted, arguments, verbose=0): """Constructor. @param _gdbThreadStarted Signal completion via semaphore. @param arguments GDB start command. """ super(DebuggerIo, self).__init__() self.miParser = MiParser() self._gdbThreadStarted = gdbThreadStarted self.arguments = arguments self._miToken = 0