diff --git a/src/plugins/debugger/gdb/remotegdbadapter.cpp b/src/plugins/debugger/gdb/remotegdbadapter.cpp index 9dc6a48fd3e23c12753aacdbec02b98ec4ca9357..bdf57f6d70c5d6676af360b591bd5a79e39133be 100644 --- a/src/plugins/debugger/gdb/remotegdbadapter.cpp +++ b/src/plugins/debugger/gdb/remotegdbadapter.cpp @@ -193,7 +193,14 @@ void RemoteGdbAdapter::prepareInferior() m_engine->postCommand(_("-exec-arguments ") + startParameters().processArgs.join(_(" "))); +#if 0 m_engine->postCommand(_("set target-async on"), CB(handleSetTargetAsync)); +#else + QFileInfo fi(startParameters().executable); + QString fileName = fi.absoluteFilePath(); + m_engine->postCommand(_("-file-exec-and-symbols \"%1\"").arg(fileName), + CB(handleFileExecAndSymbols)); +#endif } void RemoteGdbAdapter::handleSetTargetAsync(const GdbResponse &response) @@ -234,12 +241,14 @@ void RemoteGdbAdapter::handleTargetRemote(const GdbResponse &record) // gdb server will stop the remote application itself. debugMessage(_("INFERIOR STARTED")); showStatusMessage(tr("Attached to stopped inferior.")); + setState(InferiorStopped); + m_engine->continueInferior(); } else if (record.resultClass == GdbResultError) { // 16^error,msg="hd:5555: Connection timed out." QString msg = tr("Connecting to remote server failed:\n"); msg += __(record.data.findChild("msg").data()); setState(InferiorPreparationFailed); - emit inferiorPreparationFailed(msg); + emit inferiorStartFailed(msg); } } @@ -286,6 +295,7 @@ void RemoteGdbAdapter::shutdown() void RemoteGdbAdapter::handleKill(const GdbResponse &response) { + QTC_ASSERT(state() == InferiorShuttingDown, qDebug() << state()); if (response.resultClass == GdbResultDone) { setState(InferiorShutDown); emit inferiorShutDown();