aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2014-09-18 20:19:59 +0200
committerhjk <hjk121@nokiamail.com>2014-09-19 15:53:41 +0200
commitc468057f80416be03c4370caa374616b63cfde8e (patch)
treeda236cf61650a41580991ceec3c94aa36fe74190 /src/plugins/debugger/gdb/remotegdbserveradapter.cpp
parent3bafbe710f1e1745c0a70031cd1a6a2350addc5f (diff)
Debugger: Cleanup remote server engine
There was duplicated data hanging around, with the potential of getting out-of-sync. Change-Id: Ib4927a098b4905347faa203af323234b464be9cd Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/plugins/debugger/gdb/remotegdbserveradapter.cpp')
-rw-r--r--src/plugins/debugger/gdb/remotegdbserveradapter.cpp35
1 files changed, 14 insertions, 21 deletions
diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
index d994b25021..7112756fe0 100644
--- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
+++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
@@ -60,8 +60,6 @@ namespace Internal {
GdbRemoteServerEngine::GdbRemoteServerEngine(const DebuggerStartParameters &startParameters)
: GdbEngine(startParameters)
{
- m_isMulti = false;
- m_targetPid = -1;
if (Utils::HostOsInfo::isWindowsHost())
m_gdbProc->setUseCtrlCStub(startParameters.useCtrlCStub); // This is only set for QNX/BlackBerry
connect(&m_uploadProc, SIGNAL(error(QProcess::ProcessError)),
@@ -152,8 +150,7 @@ void GdbRemoteServerEngine::readUploadStandardError()
void GdbRemoteServerEngine::uploadProcFinished()
{
- if (m_uploadProc.exitStatus() == QProcess::NormalExit
- && m_uploadProc.exitCode() == 0) {
+ if (m_uploadProc.exitStatus() == QProcess::NormalExit && m_uploadProc.exitCode() == 0) {
startGdb();
} else {
RemoteSetupResult result;
@@ -268,8 +265,8 @@ void GdbRemoteServerEngine::callTargetRemote()
if (m_isQnxGdb)
postCommand("target qnx " + channel, CB(handleTargetQnx));
- else if (m_isMulti)
- postCommand("target extended-remote " + m_serverChannel, CB(handleTargetExtendedRemote));
+ else if (startParameters().multiProcess)
+ postCommand("target extended-remote " + channel, CB(handleTargetExtendedRemote));
else
postCommand("target remote " + channel, CB(handleTargetRemote), 10);
}
@@ -306,9 +303,10 @@ void GdbRemoteServerEngine::handleTargetExtendedRemote(const GdbResponse &respon
foreach (const QString &cmd, postAttachCommands.split(QLatin1Char('\n')))
postCommand(cmd.toLatin1());
}
- if (m_targetPid > 0) { // attach to pid if valid
+ if (startParameters().attachPID > 0) { // attach to pid if valid
// gdb server will stop the remote application itself.
- postCommand("attach " + QByteArray::number(m_targetPid), CB(handleTargetExtendedAttach));
+ postCommand("attach " + QByteArray::number(startParameters().attachPID),
+ CB(handleTargetExtendedAttach));
} else {
postCommand("-gdb-set remote exec-file " + startParameters().remoteExecutable.toLatin1(),
CB(handleTargetExtendedAttach));
@@ -472,10 +470,11 @@ void GdbRemoteServerEngine::shutdownEngine()
void GdbRemoteServerEngine::notifyEngineRemoteServerRunning
(const QByteArray &serverChannel, int inferiorPid)
{
+ // Currently only used by Android support.
+ startParameters().attachPID = inferiorPid;
+ startParameters().remoteChannel = QString::fromLatin1(serverChannel);
+ startParameters().multiProcess = true;
showMessage(_("NOTE: REMOTE SERVER RUNNING IN MULTIMODE"));
- m_isMulti = true;
- m_targetPid = inferiorPid;
- m_serverChannel = serverChannel;
m_startAttempted = true;
startGdb();
}
@@ -485,18 +484,12 @@ void GdbRemoteServerEngine::notifyEngineRemoteSetupFinished(const RemoteSetupRes
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
DebuggerEngine::notifyEngineRemoteSetupFinished(result);
- if (!result.success) {
+ if (result.success) {
+ if (!m_startAttempted)
+ startGdb();
+ } else {
handleAdapterStartFailed(result.reason);
- return;
}
-
- // TODO: Aren't these redundant?
- m_isMulti = startParameters().multiProcess;
- m_targetPid = -1;
- m_serverChannel = startParameters().remoteChannel.toLatin1();
-
- if (!m_startAttempted)
- startGdb();
}
} // namespace Internal