diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 1c5cb3fc682144450eba3397121be17799d8e935..16aa34ace64c27994c7629842e29d73d536d4a1f 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -1715,10 +1715,13 @@ void GdbEngine::startDebugger2() } else if (m_startParameters.useTerminal) { qq->breakHandler()->setAllPending(); } else if (startMode() == StartInternal || startMode() == StartExternal) { + qq->breakHandler()->setAllPending(); m_gdbAdapter->attach(); if (m_gdbAdapter->isAdapter()) { + m_autoContinue = true; + qq->notifyInferiorStopped(); + attemptBreakpointSynchronization(); qq->notifyInferiorRunningRequested(); - postCommand(_("-exec-continue"), CB(handleExecContinue)); } else { #ifdef Q_OS_MAC postCommand(_("sharedlibrary apply-load-rules all")); @@ -1737,7 +1740,6 @@ void GdbEngine::startDebugger2() postCommand(_("info target"), CB(handleStart)); #endif } - qq->breakHandler()->setAllPending(); } emit startSuccessful(); @@ -1806,7 +1808,8 @@ void GdbEngine::handleSetTargetAsync(const GdbResultRecord &record, const QVaria { if (record.resultClass == GdbResultDone) { qq->notifyInferiorRunningRequested(); - postCommand(_("target remote %1").arg(m_manager->startParameters()->remoteChannel), + postCommand(_("target remote %1") + .arg(m_manager->startParameters()->remoteChannel), CB(handleTargetRemote)); } else if (record.resultClass == GdbResultError) { // a typical response on "old" gdb is: diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp index e7d19323e620fe564f7f5afbe47bc04bb7d769a7..d2bd274357d96830297de749a185a10ce6c7fe4d 100644 --- a/src/plugins/debugger/gdb/trkgdbadapter.cpp +++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp @@ -643,7 +643,7 @@ void TrkGdbAdapter::handleGdbServerCommand(const QByteArray &cmd) // actions supported by the vCont packet sendGdbServerAck(); //sendGdbServerMessage("OK"); // we don't support vCont. - sendGdbServerMessage("vCont;c;C;s;S;n"); + sendGdbServerMessage("vCont;c;C;s;S"); } else if (cmd == "vCont;c") { @@ -753,7 +753,7 @@ void TrkGdbAdapter::sendTrkMessage(byte code, TrkCallback callback, void TrkGdbAdapter::sendTrkAck(byte token) { - logMessage(QString("SENDING ACKNOWLEDGEMENT FOR TOKEN %1").arg(int(token))); + //logMessage(QString("SENDING ACKNOWLEDGEMENT FOR TOKEN %1").arg(int(token))); m_trkDevice.sendTrkAck(token); } @@ -771,7 +771,7 @@ void TrkGdbAdapter::handleTrkResult(const TrkResult &result) sendGdbServerMessage("O" + result.data.toHex()); return; } - logMessage("READ TRK " + result.toString()); + //logMessage("READ TRK " + result.toString()); QByteArray prefix = "READ BUF: "; QByteArray str = result.toString().toUtf8(); switch (result.code) { @@ -984,7 +984,7 @@ void TrkGdbAdapter::handleAndReportReadRegistersAfterStop(const TrkResult &resul //for (int i = 16; i < 25; ++i) // appendRegister(&ba, i, 0x0); appendRegister(&ba, RegisterPSGdb, m_snapshot.registers[RegisterPSTrk]); - qDebug() << "TrkGdbAdapter::handleAndReportReadRegistersAfterStop" << ba; + //qDebug() << "TrkGdbAdapter::handleAndReportReadRegistersAfterStop" << ba; sendGdbServerMessage(ba, "Registers"); } @@ -1235,6 +1235,7 @@ void TrkGdbAdapter::readMemory(uint addr, uint len) void TrkGdbAdapter::interruptInferior() { + qDebug() << "TRYING TO INTERRUPT INFERIOR"; QByteArray ba; // stop the thread (2) or the process (1) or the whole system (0) // We choose 2, as 1 does not seem to work. @@ -1424,8 +1425,9 @@ void TrkGdbAdapter::attach() m_engine->postCommand(_("add-symbol-file \"%1\" %2").arg(fileName) .arg(m_session.codeseg)); m_engine->postCommand(_("symbol-file \"%1\"").arg(fileName)); + //m_engine->postCommand(_("target remote ") + gdbServerName(), + // &GdbEngine::handleTargetRemote, "handleTargetRemote"); m_engine->postCommand(_("target remote ") + gdbServerName()); - m_engine->attemptBreakpointSynchronization(); #endif }