summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2009-10-08 10:13:53 +0200
committercon <qtc-committer@nokia.com>2009-10-08 18:55:53 +0200
commit53b3c76b171e1976861147711b256746ceb7059b (patch)
tree90b7f5f85b08ebb8181751a23fad928f3d524c69
parent9365e73b89788d55bc5f91034dbd890f6a5337d4 (diff)
downloadqt-creator-53b3c76b171e1976861147711b256746ceb7059b.tar.gz
debugger: fix remote debugging
(cherry picked from commit 09e72eaa8147c1426f16cd259c7bd2ccb8dde6a0)
-rw-r--r--src/plugins/debugger/gdb/remotegdbadapter.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/debugger/gdb/remotegdbadapter.cpp b/src/plugins/debugger/gdb/remotegdbadapter.cpp
index 9dc6a48fd3..bdf57f6d70 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();