forked from qt-creator/qt-creator
Debugger: Change semantics of DebuggerEngine::masterEngine()
Make it return 'this' if 'this' is the master engine itself. Adapt users. Also do not let the QmlEngine try to beginConnection() when the combined engine was isDying() already. Change-Id: I308deae14a3c4966be381f321c0d9dfaf82c40d6 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
@@ -931,9 +931,6 @@ void DebuggerEngine::notifyDebuggerProcessFinished(int exitCode,
|
|||||||
break;
|
break;
|
||||||
default: {
|
default: {
|
||||||
// Initiate shutdown sequence
|
// Initiate shutdown sequence
|
||||||
if (isMasterEngine())
|
|
||||||
notifyEngineIll();
|
|
||||||
else
|
|
||||||
masterEngine()->notifyInferiorIll();
|
masterEngine()->notifyInferiorIll();
|
||||||
const QString msg = exitStatus == QProcess::CrashExit ?
|
const QString msg = exitStatus == QProcess::CrashExit ?
|
||||||
tr("The %1 process terminated.") :
|
tr("The %1 process terminated.") :
|
||||||
@@ -1019,9 +1016,9 @@ void DebuggerEngine::setMasterEngine(DebuggerEngine *masterEngine)
|
|||||||
d->m_masterEngine = masterEngine;
|
d->m_masterEngine = masterEngine;
|
||||||
}
|
}
|
||||||
|
|
||||||
DebuggerEngine *DebuggerEngine::masterEngine() const
|
DebuggerEngine *DebuggerEngine::masterEngine()
|
||||||
{
|
{
|
||||||
return d->m_masterEngine;
|
return d->m_masterEngine ? d->m_masterEngine : this;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DebuggerEngine::canDisplayTooltip() const
|
bool DebuggerEngine::canDisplayTooltip() const
|
||||||
|
@@ -364,7 +364,7 @@ public:
|
|||||||
void updateViews();
|
void updateViews();
|
||||||
bool isSlaveEngine() const;
|
bool isSlaveEngine() const;
|
||||||
bool isMasterEngine() const;
|
bool isMasterEngine() const;
|
||||||
DebuggerEngine *masterEngine() const;
|
DebuggerEngine *masterEngine();
|
||||||
virtual DebuggerEngine *activeEngine() { return this; }
|
virtual DebuggerEngine *activeEngine() { return this; }
|
||||||
virtual DebuggerEngine *cppEngine() { return 0; }
|
virtual DebuggerEngine *cppEngine() { return 0; }
|
||||||
|
|
||||||
|
@@ -348,11 +348,8 @@ void QmlEngine::tryToConnect()
|
|||||||
showMessage("QML Debugger: Trying to connect ...", LogStatus);
|
showMessage("QML Debugger: Trying to connect ...", LogStatus);
|
||||||
d->retryOnConnectFail = true;
|
d->retryOnConnectFail = true;
|
||||||
if (state() == EngineRunRequested) {
|
if (state() == EngineRunRequested) {
|
||||||
if (isSlaveEngine()) {
|
if (isDying()) {
|
||||||
// Probably cpp is being debugged and hence we did not get the output yet.
|
// Probably cpp is being debugged and hence we did not get the output yet.
|
||||||
if (!masterEngine()->isDying())
|
|
||||||
beginConnection();
|
|
||||||
else
|
|
||||||
appStartupFailed(tr("No application output received in time"));
|
appStartupFailed(tr("No application output received in time"));
|
||||||
} else {
|
} else {
|
||||||
beginConnection();
|
beginConnection();
|
||||||
@@ -779,7 +776,7 @@ void QmlEngine::attemptBreakpointSynchronization()
|
|||||||
|
|
||||||
BreakHandler *handler = breakHandler();
|
BreakHandler *handler = breakHandler();
|
||||||
|
|
||||||
DebuggerEngine *bpOwner = isSlaveEngine() ? masterEngine() : this;
|
DebuggerEngine *bpOwner = masterEngine();
|
||||||
foreach (Breakpoint bp, handler->unclaimedBreakpoints()) {
|
foreach (Breakpoint bp, handler->unclaimedBreakpoints()) {
|
||||||
// Take ownership of the breakpoint. Requests insertion.
|
// Take ownership of the breakpoint. Requests insertion.
|
||||||
if (acceptsBreakpoint(bp))
|
if (acceptsBreakpoint(bp))
|
||||||
|
@@ -70,7 +70,7 @@ QmlInspectorAgent::QmlInspectorAgent(QmlEngine *engine, QmlDebugConnection *conn
|
|||||||
, m_engineQueryId(0)
|
, m_engineQueryId(0)
|
||||||
, m_rootContextQueryId(0)
|
, m_rootContextQueryId(0)
|
||||||
, m_objectToSelect(WatchItem::InvalidId)
|
, m_objectToSelect(WatchItem::InvalidId)
|
||||||
, m_masterEngine(engine)
|
, m_masterEngine(engine->masterEngine())
|
||||||
, m_toolsClient(0)
|
, m_toolsClient(0)
|
||||||
, m_targetToSync(NoTarget)
|
, m_targetToSync(NoTarget)
|
||||||
, m_debugIdToSelect(WatchItem::InvalidId)
|
, m_debugIdToSelect(WatchItem::InvalidId)
|
||||||
@@ -92,9 +92,6 @@ QmlInspectorAgent::QmlInspectorAgent(QmlEngine *engine, QmlDebugConnection *conn
|
|||||||
connect(&m_delayQueryTimer, &QTimer::timeout,
|
connect(&m_delayQueryTimer, &QTimer::timeout,
|
||||||
this, &QmlInspectorAgent::queryEngineContext);
|
this, &QmlInspectorAgent::queryEngineContext);
|
||||||
|
|
||||||
if (!m_masterEngine->isMasterEngine())
|
|
||||||
m_masterEngine = m_masterEngine->masterEngine();
|
|
||||||
|
|
||||||
auto engineClient1 = new DeclarativeEngineDebugClient(connection);
|
auto engineClient1 = new DeclarativeEngineDebugClient(connection);
|
||||||
connect(engineClient1, &BaseEngineDebugClient::newState,
|
connect(engineClient1, &BaseEngineDebugClient::newState,
|
||||||
this, &QmlInspectorAgent::clientStateChanged);
|
this, &QmlInspectorAgent::clientStateChanged);
|
||||||
|
Reference in New Issue
Block a user