Commit fdbdf2d1 authored by Kai Koehne's avatar Kai Koehne

QmlEngine: Fix crash when trying to connect

Since we directly called beginConnection in connectionStartupFailed
we got a stack overflow over time. Instead, only try to connect
every 3 seconds.

Also remove special logic for mixed debugging: They should behave
the same (except maybe where you're breaking inside QQmlDebugServer,
but that's a corner case).

Change-Id: Idf2f55e3d905a01065c123c708b50dbb88388d1f
Reviewed-by: default avatarAurindam Jana <aurindam.jana@nokia.com>
parent 126d0af4
......@@ -364,7 +364,10 @@ QmlEngine::QmlEngine(const DebuggerStartParameters &startParameters,
SLOT(documentUpdated(QmlJS::Document::Ptr)));
// we won't get any debug output
d->m_retryOnConnectFail = startParameters.useTerminal;
if (startParameters.useTerminal) {
d->m_noDebugOutputTimer.setInterval(0);
d->m_retryOnConnectFail = true;
}
}
QmlEngine::~QmlEngine()
......@@ -416,6 +419,7 @@ void QmlEngine::connectionEstablished()
void QmlEngine::tryToConnect(quint16 port)
{
showMessage(QLatin1String("QML Debugger: No application output received in time, trying to connect ..."), LogStatus);
d->m_retryOnConnectFail = true;
beginConnection(port);
}
......@@ -447,15 +451,9 @@ void QmlEngine::beginConnection(quint16 port)
void QmlEngine::connectionStartupFailed()
{
if (isSlaveEngine()) {
if (masterEngine()->state() != InferiorRunOk) {
// we're right now debugging C++, just try longer ...
beginConnection();
return;
}
}
if (d->m_retryOnConnectFail) {
beginConnection();
// retry after 3 seconds ...
QTimer::singleShot(3000, this, SLOT(beginConnection()));
return;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment