diff --git a/src/plugins/analyzerbase/analyzerruncontrol.cpp b/src/plugins/analyzerbase/analyzerruncontrol.cpp index bdb19faf054781548739eb22ccd71b8656a16f37..07d2cca79e6eb14ffecf87cac9b5a002df6baf3d 100644 --- a/src/plugins/analyzerbase/analyzerruncontrol.cpp +++ b/src/plugins/analyzerbase/analyzerruncontrol.cpp @@ -124,7 +124,6 @@ void AnalyzerRunControl::start() d->m_isRunning = true; emit started(); } - } RunControl::StopResult AnalyzerRunControl::stop() diff --git a/src/plugins/valgrind/callgrind/callgrindrunner.cpp b/src/plugins/valgrind/callgrind/callgrindrunner.cpp index 918b9402517a5d0884b3147ff03f281032d436a4..79a8fb81115d1d39d17b88c8634d3e7716582be4 100644 --- a/src/plugins/valgrind/callgrind/callgrindrunner.cpp +++ b/src/plugins/valgrind/callgrind/callgrindrunner.cpp @@ -70,10 +70,11 @@ CallgrindController *CallgrindRunner::controller() const return m_controller; } -void CallgrindRunner::start() +bool CallgrindRunner::start() { ValgrindRunner::start(); m_controller->setValgrindProcess(valgrindProcess()); + return true; } void CallgrindRunner::processFinished(int ret, QProcess::ExitStatus status) diff --git a/src/plugins/valgrind/callgrind/callgrindrunner.h b/src/plugins/valgrind/callgrind/callgrindrunner.h index 89e23c16216f78e4cdacaeddfaab4535277a241d..660d91a852f44d1d7a4fa39bad1188841371136f 100644 --- a/src/plugins/valgrind/callgrind/callgrindrunner.h +++ b/src/plugins/valgrind/callgrind/callgrindrunner.h @@ -55,7 +55,7 @@ public: CallgrindController *controller() const; bool isPaused() const; - void start(); + bool start(); signals: void statusMessage(const QString &message); diff --git a/src/plugins/valgrind/memcheck/memcheckrunner.cpp b/src/plugins/valgrind/memcheck/memcheckrunner.cpp index ef11d70849161caada4edc06b437d420b65f6d8d..92b3d38d091b351230e4e4b4d7741fc2abed45e0 100644 --- a/src/plugins/valgrind/memcheck/memcheckrunner.cpp +++ b/src/plugins/valgrind/memcheck/memcheckrunner.cpp @@ -96,19 +96,19 @@ void MemcheckRunner::setParser(XmlProtocol::ThreadedParser *parser) d->parser = parser; } -void MemcheckRunner::start() +bool MemcheckRunner::start() { if (startMode() == Analyzer::StartLocal) { - QTC_ASSERT(d->parser, return); + QTC_ASSERT(d->parser, return false); bool check = d->xmlServer.listen(QHostAddress(QHostAddress::LocalHost)); - QTC_ASSERT(check, return); + QTC_ASSERT(check, return false); d->xmlServer.setMaxPendingConnections(1); const quint16 xmlPortNumber = d->xmlServer.serverPort(); connect(&d->xmlServer, SIGNAL(newConnection()), SLOT(xmlSocketConnected())); check = d->logServer.listen(QHostAddress(QHostAddress::LocalHost)); - QTC_ASSERT(check, return); + QTC_ASSERT(check, return false); d->logServer.setMaxPendingConnections(1); const quint16 logPortNumber = d->logServer.serverPort(); connect(&d->logServer, SIGNAL(newConnection()), SLOT(logSocketConnected())); @@ -123,7 +123,7 @@ void MemcheckRunner::start() } if (startMode() == Analyzer::StartRemote) { - QTC_ASSERT(d->parser, return); + QTC_ASSERT(d->parser, return false); QList<QHostAddress> possibleHostAddresses; //NOTE: ::allAddresses does not seem to work for usb interfaces... @@ -144,7 +144,7 @@ void MemcheckRunner::start() if (possibleHostAddresses.isEmpty()) { emit processErrorReceived(tr("No network interface found for remote analysis."), QProcess::FailedToStart); - return; + return false; } else if (possibleHostAddresses.size() > 1) { QDialog dlg; dlg.setWindowTitle(tr("Select Network Interface")); @@ -171,27 +171,29 @@ void MemcheckRunner::start() layout->addWidget(buttons); dlg.setLayout(layout); - if (dlg.exec() != QDialog::Accepted) - return; + if (dlg.exec() != QDialog::Accepted) { + emit processErrorReceived(tr("No Network Interface was chosen for remote analysis"), QProcess::FailedToStart); + return false; + } - QTC_ASSERT(list->currentRow() >= 0, return); - QTC_ASSERT(list->currentRow() < possibleHostAddresses.size(), return); + QTC_ASSERT(list->currentRow() >= 0, return false); + QTC_ASSERT(list->currentRow() < possibleHostAddresses.size(), return false); hostAddr = possibleHostAddresses.at(list->currentRow()); } else { hostAddr = possibleHostAddresses.first(); } QString ip = hostAddr.toString(); - QTC_ASSERT(!ip.isEmpty(), return); + QTC_ASSERT(!ip.isEmpty(), return false); bool check = d->xmlServer.listen(hostAddr); - QTC_ASSERT(check, return); + QTC_ASSERT(check, return false); d->xmlServer.setMaxPendingConnections(1); const quint16 xmlPortNumber = d->xmlServer.serverPort(); connect(&d->xmlServer, SIGNAL(newConnection()), SLOT(xmlSocketConnected())); check = d->logServer.listen(hostAddr); - QTC_ASSERT(check, return); + QTC_ASSERT(check, return false); d->logServer.setMaxPendingConnections(1); const quint16 logPortNumber = d->logServer.serverPort(); connect(&d->logServer, SIGNAL(newConnection()), SLOT(logSocketConnected())); @@ -204,7 +206,7 @@ void MemcheckRunner::start() setValgrindArguments(memcheckArguments); } - ValgrindRunner::start(); + return ValgrindRunner::start(); } void MemcheckRunner::xmlSocketConnected() diff --git a/src/plugins/valgrind/memcheck/memcheckrunner.h b/src/plugins/valgrind/memcheck/memcheckrunner.h index 180c344e2eaf621a65d255bc959a2016dd786703..ab1d630b318b67fc5c1281ae3665cc65da574d68 100644 --- a/src/plugins/valgrind/memcheck/memcheckrunner.h +++ b/src/plugins/valgrind/memcheck/memcheckrunner.h @@ -54,7 +54,7 @@ public: ~MemcheckRunner(); void setParser(XmlProtocol::ThreadedParser *parser); - void start(); + bool start(); signals: void logMessageReceived(const QByteArray &); diff --git a/src/plugins/valgrind/valgrindengine.cpp b/src/plugins/valgrind/valgrindengine.cpp index 73f204b3ea15d4bb38bad6dd232649a160a242d3..f1a297222eead9ea835fee48e361475154a70cb2 100644 --- a/src/plugins/valgrind/valgrindengine.cpp +++ b/src/plugins/valgrind/valgrindengine.cpp @@ -117,8 +117,10 @@ bool ValgrindEngine::start() connect(runner(), SIGNAL(finished()), SLOT(runnerFinished())); - runner()->start(); - + if (!runner()->start()) { + m_progress->cancel(); + return false; + } return true; } diff --git a/src/plugins/valgrind/valgrindrunner.cpp b/src/plugins/valgrind/valgrindrunner.cpp index 3f39db91b5ddeab95917202f88ee6a5b09c3876a..2553699953b3c6cd08d1539dcea874ced50946d9 100644 --- a/src/plugins/valgrind/valgrindrunner.cpp +++ b/src/plugins/valgrind/valgrindrunner.cpp @@ -219,12 +219,13 @@ void ValgrindRunner::waitForFinished() const loop.exec(); } -void ValgrindRunner::start() +bool ValgrindRunner::start() { if (d->startMode == Analyzer::StartLocal) d->run(new LocalValgrindProcess(this)); else if (d->startMode == Analyzer::StartRemote) d->run(new RemoteValgrindProcess(d->connParams, this)); + return true; } void ValgrindRunner::processError(QProcess::ProcessError e) diff --git a/src/plugins/valgrind/valgrindrunner.h b/src/plugins/valgrind/valgrindrunner.h index 6b91ed15106e9b3c5299f4500238c25efffaafc6..8f463416197412233e227e1fd82fdea86a1b067b 100644 --- a/src/plugins/valgrind/valgrindrunner.h +++ b/src/plugins/valgrind/valgrindrunner.h @@ -83,7 +83,7 @@ public: QString errorString() const; - virtual void start(); + virtual bool start(); virtual void stop(); ValgrindProcess *valgrindProcess() const;