forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.0'
Conflicts: src/plugins/debugger/debuggerruncontrol.cpp src/plugins/projectexplorer/projectwizardpage.cpp src/plugins/projectexplorer/xcodebuildparser.h src/plugins/qmldesigner/qmldesignerplugin.cpp src/tools/clangbackend/ipcsource/translationunits.cpp Change-Id: Ibf0857cf8dbf95fc9ac13d5c2112b3f4a2ca7de6
This commit is contained in:
@@ -95,10 +95,11 @@ bool MemcheckRunner::start()
|
||||
{
|
||||
QTC_ASSERT(d->parser, return false);
|
||||
|
||||
if (!startServers())
|
||||
return false;
|
||||
|
||||
setValgrindArguments(memcheckLogArguments() + valgrindArguments());
|
||||
if (device()->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) {
|
||||
if (!startServers(QHostAddress::LocalHost))
|
||||
return false;
|
||||
setValgrindArguments(memcheckLogArguments() + valgrindArguments());
|
||||
}
|
||||
|
||||
return ValgrindRunner::start();
|
||||
}
|
||||
@@ -133,10 +134,8 @@ void MemcheckRunner::readLogSocket()
|
||||
emit logMessageReceived(d->logSocket->readAll());
|
||||
}
|
||||
|
||||
bool MemcheckRunner::startServers()
|
||||
bool MemcheckRunner::startServers(const QHostAddress &localHostAddress)
|
||||
{
|
||||
QHostAddress localHostAddress(QHostAddress::LocalHost);
|
||||
|
||||
bool check = d->xmlServer.listen(localHostAddress);
|
||||
const QString ip = localHostAddress.toString();
|
||||
if (!check) {
|
||||
@@ -172,5 +171,13 @@ QStringList MemcheckRunner::memcheckLogArguments() const
|
||||
return arguments;
|
||||
}
|
||||
|
||||
void MemcheckRunner::localHostAddressRetrieved(const QHostAddress &localHostAddress)
|
||||
{
|
||||
if (startServers(localHostAddress)) {
|
||||
setValgrindArguments(memcheckLogArguments() + valgrindArguments());
|
||||
valgrindProcess()->setValgrindArguments(fullValgrindArguments());
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Memcheck
|
||||
} // namespace Valgrind
|
||||
|
||||
@@ -52,6 +52,8 @@ signals:
|
||||
void logMessageReceived(const QByteArray &);
|
||||
|
||||
private slots:
|
||||
void localHostAddressRetrieved(const QHostAddress &localHostAddress);
|
||||
|
||||
void xmlSocketConnected();
|
||||
void logSocketConnected();
|
||||
void readLogSocket();
|
||||
@@ -59,7 +61,7 @@ private slots:
|
||||
private:
|
||||
QString tool() const;
|
||||
|
||||
bool startServers();
|
||||
bool startServers(const QHostAddress &localHostAddress);
|
||||
QStringList memcheckLogArguments() const;
|
||||
|
||||
class Private;
|
||||
|
||||
@@ -13,6 +13,8 @@ QtcPlugin {
|
||||
Depends { name: "ProjectExplorer" }
|
||||
Depends { name: "TextEditor" }
|
||||
|
||||
cpp.enableExceptions: true
|
||||
|
||||
Group {
|
||||
name: "General"
|
||||
files: [
|
||||
|
||||
@@ -205,6 +205,8 @@ void ValgrindProcess::connected()
|
||||
{
|
||||
QTC_ASSERT(m_remote.m_connection->state() == QSsh::SshConnection::Connected, return);
|
||||
|
||||
emit localHostAddressRetrieved(m_remote.m_connection->connectionInfo().localAddress);
|
||||
|
||||
// connected, run command
|
||||
QString cmd;
|
||||
|
||||
@@ -214,6 +216,9 @@ void ValgrindProcess::connected()
|
||||
cmd += m_valgrindExecutable + QLatin1Char(' ') + argumentString(Utils::OsTypeLinux);
|
||||
|
||||
m_remote.m_process = m_remote.m_connection->createRemoteProcess(cmd.toUtf8());
|
||||
for (auto it = m_debuggee.environment.constBegin(); it != m_debuggee.environment.constEnd(); ++it)
|
||||
m_remote.m_process->addToEnvironment(it.key().toUtf8(), it.value().toUtf8());
|
||||
|
||||
connect(m_remote.m_process.data(), &QSsh::SshRemoteProcess::readyReadStandardError,
|
||||
this, &ValgrindProcess::handleRemoteStderr);
|
||||
connect(m_remote.m_process.data(), &QSsh::SshRemoteProcess::readyReadStandardOutput,
|
||||
|
||||
@@ -74,6 +74,7 @@ signals:
|
||||
void finished(int, QProcess::ExitStatus);
|
||||
void error(QProcess::ProcessError);
|
||||
void processOutput(const QString &, Utils::OutputFormat format);
|
||||
void localHostAddressRetrieved(const QHostAddress &localHostAddress);
|
||||
|
||||
private:
|
||||
void handleRemoteStderr();
|
||||
|
||||
@@ -147,6 +147,8 @@ bool ValgrindRunner::start()
|
||||
this, &ValgrindRunner::processFinished);
|
||||
QObject::connect(d->process, &ValgrindProcess::error,
|
||||
this, &ValgrindRunner::processError);
|
||||
QObject::connect(d->process, &ValgrindProcess::localHostAddressRetrieved,
|
||||
this, &ValgrindRunner::localHostAddressRetrieved);
|
||||
|
||||
d->process->run(d->debuggee.runMode);
|
||||
return true;
|
||||
@@ -178,6 +180,11 @@ void ValgrindRunner::processFinished(int ret, QProcess::ExitStatus status)
|
||||
emit processErrorReceived(errorString(), d->process->processError());
|
||||
}
|
||||
|
||||
void ValgrindRunner::localHostAddressRetrieved(const QHostAddress &localHostAddress)
|
||||
{
|
||||
Q_UNUSED(localHostAddress);
|
||||
}
|
||||
|
||||
QString ValgrindRunner::errorString() const
|
||||
{
|
||||
if (d->process)
|
||||
|
||||
@@ -79,6 +79,7 @@ signals:
|
||||
protected slots:
|
||||
virtual void processError(QProcess::ProcessError);
|
||||
virtual void processFinished(int, QProcess::ExitStatus);
|
||||
virtual void localHostAddressRetrieved(const QHostAddress &localHostAddress);
|
||||
|
||||
private:
|
||||
class Private;
|
||||
|
||||
Reference in New Issue
Block a user