diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index dcc62945f2c7754690afec1dc6b491ac94166508..7f42953870812cdfb6f61d6fa97cc68568d60e11 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -217,6 +217,7 @@ CdbEngine::CdbEngine(const DebuggerStartParameters &startParameters) : DebuggerEngine(startParameters), m_d(new CdbEnginePrivate(this)) { + setObjectName(QLatin1String("CdbEngine")); m_d->m_consoleStubProc.setMode(Utils::ConsoleProcess::Suspend); connect(&m_d->m_consoleStubProc, SIGNAL(processMessage(QString,bool)), this, SLOT(slotConsoleStubMessage(QString, bool))); diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 13cd1c8cfc562cac1e37cc52cd09f0db1e9a0672..24609f446a2715fc697e63487a2dc790674e8e63 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -657,7 +657,10 @@ QAbstractItemModel *DebuggerEngine::sourceFilesModel() const QAbstractItemModel *DebuggerEngine::commandModel() const { - return d->m_commandHandler.model(); + QAbstractItemModel *model = d->m_commandHandler.model(); + if (model->objectName().isEmpty()) // Make debugging easier. + model->setObjectName(objectName() + QLatin1String("CommandModel")); + return model; } void DebuggerEngine::fetchMemory(MemoryViewAgent *, QObject *, @@ -1097,7 +1100,6 @@ void DebuggerEngine::notifyEngineSetupOk() QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); setState(EngineSetupOk); QTC_ASSERT(d->m_runControl, return); - d->m_runControl->startSuccessful(); showMessage(_("QUEUE: SETUP INFERIOR")); QTimer::singleShot(0, d, SLOT(doSetupInferior())); } diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index a1c88ba96ea8190d00a64a7775e9adadf2c33356..eeea0e44e9fdb6e0ca7dc31851746e170293be2a 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -1982,24 +1982,24 @@ void DebuggerPluginPrivate::displayDebugger(ProjectExplorer::RunControl *rc) void DebuggerPluginPrivate::startDebugger(ProjectExplorer::RunControl *rc) { - //qDebug() << "START DEBUGGER 1"; QTC_ASSERT(rc, return); - DebuggerRunControl *runControl = qobject_cast<DebuggerRunControl *>(rc); - QTC_ASSERT(runControl, return); - activateDebugMode(); - connectEngine(runControl->engine()); - ProjectExplorerPlugin::instance()->startRunControl(runControl, PE::DEBUGMODE); - //qDebug() << "START DEBUGGER 2"; + ProjectExplorerPlugin::instance()->startRunControl(rc, PE::DEBUGMODE); } void DebuggerPluginPrivate::connectEngine(DebuggerEngine *engine, bool notify) { + const QAbstractItemModel *oldCommandModel = m_commandWindow->model(); + if (oldCommandModel == engine->commandModel()) { + // qDebug("RECONNECTING ENGINE %s", qPrintable(engine->objectName())); + return; + } + if (notify) notifyCurrentEngine(RequestActivationRole, false); - //if (engine == m_sessionEngine) - // qDebug() << "CONNECTING DUMMY ENGINE" << engine; - //else - // qDebug() << "CONNECTING ENGINE " << engine; + + // qDebug("CONNECTING ENGINE %s (OLD ENGINE: %s)", qPrintable(engine->objectName()), + // (oldCommandModel ? qPrintable(oldCommandModel->objectName()) : "")); + m_breakWindow->setModel(engine->breakModel()); m_commandWindow->setModel(engine->commandModel()); m_localsWindow->setModel(engine->localsModel()); diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp index 663d08ee965357f82a8507b19b1a2faba3c784e6..7452fa91e21d4cbca90ad014c5f142a994a67909 100644 --- a/src/plugins/debugger/debuggerrunner.cpp +++ b/src/plugins/debugger/debuggerrunner.cpp @@ -189,7 +189,6 @@ DebuggerRunControl *DebuggerRunControlFactory::create( delete runControl; return 0; } - connect(runControl, SIGNAL(started()), runControl, SLOT(handleStarted())); connect(runControl, SIGNAL(finished()), runControl, SLOT(handleFinished())); return runControl; } @@ -460,7 +459,6 @@ void DebuggerRunControl::start() QString errorMessage; QString settingsCategory; QString settingsPage; - QString settingsIdHint; if (!checkDebugConfiguration(sp.toolChainType, &errorMessage, &settingsCategory, &settingsPage)) { @@ -471,17 +469,16 @@ void DebuggerRunControl::start() return; } - plugin()->activateDebugMode(); - plugin()->showMessage(tr("Starting debugger for tool chain '%1'...") - .arg(toolChainName(sp.toolChainType)), StatusBar); + plugin()->activateDebugMode(); + + const QString message = tr("Starting debugger '%1' for tool chain '%2'..."). + arg(m_engine->objectName(), toolChainName(sp.toolChainType)); + plugin()->showMessage(message, StatusBar); plugin()->showMessage(DebuggerSettings::instance()->dump(), LogDebug); engine()->startDebugger(this); -} - -void DebuggerRunControl::startSuccessful() -{ m_running = true; + plugin()->runControlStarted(this); emit started(); } @@ -492,11 +489,6 @@ void DebuggerRunControl::startFailed() engine()->handleStartFailed(); } -void DebuggerRunControl::handleStarted() -{ - plugin()->runControlStarted(this); -} - void DebuggerRunControl::handleFinished() { engine()->handleFinished(); diff --git a/src/plugins/debugger/debuggerrunner.h b/src/plugins/debugger/debuggerrunner.h index e6dd8a354df74485993a289e63063a28d9558bc4..12a3d4d362b13ee801ce9d1a61e36019a0c6c41b 100644 --- a/src/plugins/debugger/debuggerrunner.h +++ b/src/plugins/debugger/debuggerrunner.h @@ -104,7 +104,6 @@ public: void setEnabledEngines(DebuggerEngineType enabledEngines); void startFailed(); - void startSuccessful(); void debuggingFinished(); RunConfiguration *runConfiguration() const { return m_myRunConfiguration.data(); } @@ -119,7 +118,6 @@ public: QString *settingsPage = 0); private slots: - void handleStarted(); void handleFinished(); protected: diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 7932a4611a7b94addc96434c6cd58bb48c06b227..a4ea3f156dbcad96a9d3e43585b34ed3b74b1e6b 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -178,6 +178,7 @@ static QByteArray parsePlainConsoleStream(const GdbResponse &response) GdbEngine::GdbEngine(const DebuggerStartParameters &startParameters) : DebuggerEngine(startParameters) { + setObjectName(QLatin1String("GdbEngine")); qRegisterMetaType<WatchData>("WatchData"); m_commandTimer = new QTimer(this); diff --git a/src/plugins/debugger/pdb/pdbengine.cpp b/src/plugins/debugger/pdb/pdbengine.cpp index 2395280fa0cd2f2fed2257e45c40276edc9ea88b..24b3502842a76835e2babca7e906fca2fa3fb972 100644 --- a/src/plugins/debugger/pdb/pdbengine.cpp +++ b/src/plugins/debugger/pdb/pdbengine.cpp @@ -87,7 +87,9 @@ namespace Internal { PdbEngine::PdbEngine(const DebuggerStartParameters &startParameters) : DebuggerEngine(startParameters) -{} +{ + setObjectName(QLatin1String("PdbEngine")); +} PdbEngine::~PdbEngine() {} diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index 063dd97c188b37cb54fd582745cb1da9b2845170..7d4177b132c19f6b7670fd44dc8b9c6101f8001a 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -106,7 +106,7 @@ QmlEngine::QmlEngine(const DebuggerStartParameters &startParameters) , m_adapter(new QmlAdapter(this)) , m_addedAdapterToObjectPool(false) { - + setObjectName(QLatin1String("QmlEngine")); } QmlEngine::~QmlEngine() diff --git a/src/plugins/debugger/script/scriptengine.cpp b/src/plugins/debugger/script/scriptengine.cpp index 6301a8302df0efed9005f2220f26fec89dc564ac..ef3a84460c53f414814ed0134a6053259518e913 100644 --- a/src/plugins/debugger/script/scriptengine.cpp +++ b/src/plugins/debugger/script/scriptengine.cpp @@ -204,6 +204,7 @@ void ScriptAgent::scriptUnload(qint64 scriptId) ScriptEngine::ScriptEngine(const DebuggerStartParameters &startParameters) : DebuggerEngine(startParameters) { + setObjectName(QLatin1String("ScriptEngine")); } ScriptEngine::~ScriptEngine() diff --git a/src/plugins/debugger/sessionengine.cpp b/src/plugins/debugger/sessionengine.cpp index be9fc6d3086bf3329fb59a7f730e7048aa80e125..9914ff33ed87c3dc15171573c7d1974c888fab0a 100644 --- a/src/plugins/debugger/sessionengine.cpp +++ b/src/plugins/debugger/sessionengine.cpp @@ -31,6 +31,10 @@ #include "breakhandler.h" #include "watchhandler.h" +#include <utils/qtcassert.h> + +#include <QtCore/QDebug> + namespace Debugger { namespace Internal { @@ -40,6 +44,12 @@ namespace Internal { SessionEngine::SessionEngine() : DebuggerEngine(DebuggerStartParameters()) { + setObjectName(QLatin1String("SessionEngine")); +} + +void SessionEngine::executeDebuggerCommand(const QString &command) +{ + QTC_ASSERT(false, qDebug() << command) } void SessionEngine::loadSessionData() diff --git a/src/plugins/debugger/sessionengine.h b/src/plugins/debugger/sessionengine.h index 95edc7981894f3656531128be8f78499ffb51b1a..9bdc833bc1dc4bed0bb6699a179603b874717d9c 100644 --- a/src/plugins/debugger/sessionengine.h +++ b/src/plugins/debugger/sessionengine.h @@ -45,13 +45,14 @@ class SessionEngine : public DebuggerEngine public: SessionEngine(); - void setupEngine() {} - void setupInferior() {} - void runEngine() {} - void shutdownEngine() {} - void shutdownInferior() {} + virtual void setupEngine() {} + virtual void setupInferior() {} + virtual void runEngine() {} + virtual void shutdownEngine() {} + virtual void shutdownInferior() {} + virtual void executeDebuggerCommand(const QString &command); - bool isSessionEngine() const { return true; } + virtual bool isSessionEngine() const { return true; } void loadSessionData(); void saveSessionData(); diff --git a/src/plugins/debugger/tcf/tcfengine.cpp b/src/plugins/debugger/tcf/tcfengine.cpp index f534d000fdd813e242948a20817878e855916382..88a2d33bbb1552b8981c058b1ff330f7318dbc7b 100644 --- a/src/plugins/debugger/tcf/tcfengine.cpp +++ b/src/plugins/debugger/tcf/tcfengine.cpp @@ -107,6 +107,7 @@ QString TcfEngine::TcfCommand::toString() const TcfEngine::TcfEngine(const DebuggerStartParameters &startParameters) : DebuggerEngine(startParameters) { + setObjectName(QLatin1String("TcfEngine")); m_congestion = 0; m_inAir = 0;