diff --git a/src/plugins/debugger/cdb/cdbdebugengine.cpp b/src/plugins/debugger/cdb/cdbdebugengine.cpp index 730ac6eece6..7a801654d77 100644 --- a/src/plugins/debugger/cdb/cdbdebugengine.cpp +++ b/src/plugins/debugger/cdb/cdbdebugengine.cpp @@ -328,7 +328,7 @@ void CdbDebugEnginePrivate::checkVersion() } // Compare const double minVersion = 6.11; - manager()->showDebuggerOutput(LogMisc, CdbDebugEngine::tr("Version: %1").arg(version)); + showMessage(CdbDebugEngine::tr("Version: %1").arg(version)); if (version.toDouble() < minVersion) { const QString msg = CdbDebugEngine::tr( "The installed version of the Debugging Tools for Windows (%1) " @@ -410,7 +410,7 @@ void CdbDebugEngine::startDebugger() // Options QString errorMessage; if (!m_d->setBreakOnThrow(theDebuggerBoolSetting(BreakOnThrow), &errorMessage)) - manager()->showDebuggerOutput(LogWarning, errorMessage); + showMessage(errorMessage, LogWarning); m_d->setVerboseSymbolLoading(m_d->m_options->verboseSymbolLoading); // Figure out dumper. @TODO: same in gdb... const QString dumperLibName = QDir::toNativeSeparators(manager()->qtDumperLibraryName()); @@ -532,7 +532,7 @@ void CdbDebugEnginePrivate::processCreatedAttached(ULONG64 processHandle, ULONG6 void CdbDebugEngine::processTerminated(unsigned long exitCode) { - manager()->showDebuggerOutput(LogMisc, tr("The process exited with exit code %1.").arg(exitCode)); + showMessage(tr("The process exited with exit code %1.").arg(exitCode)); if (state() != InferiorStopping) setState(InferiorStopping, Q_FUNC_INFO, __LINE__); setState(InferiorStopped, Q_FUNC_INFO, __LINE__); @@ -612,7 +612,7 @@ void CdbDebugEnginePrivate::endDebugging(EndDebuggingMode em) // Need a stopped debuggee to act if (!endInferior(action, &errorMessage)) { errorMessage = QString::fromLatin1("Unable to detach from/end the debuggee: %1").arg(errorMessage); - manager()->showDebuggerOutput(LogError, errorMessage); + showMessage(errorMessage, LogError); } errorMessage.clear(); } @@ -623,7 +623,7 @@ void CdbDebugEnginePrivate::endDebugging(EndDebuggingMode em) m_engine->setState(DebuggerNotReady, Q_FUNC_INFO, __LINE__); if (!endedCleanly) { errorMessage = QString::fromLatin1("There were errors trying to end debugging:\n%1").arg(errorMessage); - manager()->showDebuggerOutput(LogError, errorMessage); + showMessage(errorMessage, LogError); } } @@ -713,7 +713,7 @@ bool CdbDebugEnginePrivate::executeContinueCommand(const QString &command) clearForRun(); updateCodeLevel(); // Step by instruction m_engine->setState(InferiorRunningRequested, Q_FUNC_INFO, __LINE__); - manager()->showDebuggerOutput(LogMisc, CdbDebugEngine::tr("Continuing with '%1'...").arg(command)); + showMessage(CdbDebugEngine::tr("Continuing with '%1'...").arg(command)); QString errorMessage; const bool success = executeDebuggerCommand(command, &errorMessage); if (success) { @@ -795,7 +795,7 @@ bool CdbDebugEngine::step(unsigned long executionStatus) str << "gu"; break; } - manager()->showDebuggerOutput(tr("Stepping %1").arg(command)); + showMessage(tr("Stepping %1").arg(command)); const HRESULT hr = m_d->interfaces().debugControl->Execute(DEBUG_OUTCTL_THIS_CLIENT, command.toLatin1().constData(), DEBUG_EXECUTE_ECHO); success = SUCCEEDED(hr); if (!success) @@ -931,7 +931,7 @@ void CdbDebugEngine::slotBreakAttachToCrashed() // Force a break when attaching to crashed process (if Creator was not spawned // from handler). if (state() != InferiorStopped) { - manager()->showDebuggerOutput(LogMisc, QLatin1String("Forcing break...")); + showMessage(QLatin1String("Forcing break...")); m_d->m_dumper->disable(); interruptInferior(); } @@ -952,7 +952,7 @@ void CdbDebugEngine::interruptInferior() void CdbDebugEngine::executeRunToLine(const QString &fileName, int lineNumber) { - manager()->showDebuggerOutput(LogMisc, tr("Running up to %1:%2...").arg(fileName).arg(lineNumber)); + showMessage(tr("Running up to %1:%2...").arg(fileName).arg(lineNumber)); QString errorMessage; CdbCore::BreakPoint tempBreakPoint; tempBreakPoint.fileName = fileName; @@ -966,7 +966,7 @@ void CdbDebugEngine::executeRunToLine(const QString &fileName, int lineNumber) void CdbDebugEngine::executeRunToFunction(const QString &functionName) { - manager()->showDebuggerOutput(LogMisc, tr("Running up to function '%1()'...").arg(functionName)); + showMessage(tr("Running up to function '%1()'...").arg(functionName)); QString errorMessage; CdbCore::BreakPoint tempBreakPoint; tempBreakPoint.funcName = functionName; @@ -1277,10 +1277,10 @@ void CdbDebugEngine::slotConsoleStubTerminated() exitDebugger(); } -void CdbDebugEngine::warning(const QString &w) +void CdbDebugEngine::warning(const QString &msg) { - manager()->showDebuggerOutput(LogWarning, w); - qWarning("%s\n", qPrintable(w)); + showMessage(msg, LogWarning); + qWarning("%s\n", qPrintable(msg)); } void CdbDebugEnginePrivate::notifyException(long code, bool fatal, const QString &message) @@ -1296,7 +1296,7 @@ void CdbDebugEnginePrivate::notifyException(long code, bool fatal, const QString break; case EXCEPTION_BREAKPOINT: if (m_ignoreInitialBreakPoint && !m_inferiorStartupComplete && m_breakEventMode == BreakEventHandle) { - manager()->showDebuggerOutput(LogMisc, CdbDebugEngine::tr("Ignoring initial breakpoint...")); + showMessage(CdbDebugEngine::tr("Ignoring initial breakpoint...")); m_breakEventMode = BreakEventIgnoreOnce; } break; @@ -1356,7 +1356,7 @@ void CdbDebugEnginePrivate::handleDebugEvent() const QString msg = m_interrupted ? CdbDebugEngine::tr("Interrupted in thread %1, current thread: %2").arg(m_interruptArticifialThreadId).arg(m_currentThreadId) : CdbDebugEngine::tr("Stopped, current thread: %1").arg(m_currentThreadId); - manager()->showDebuggerOutput(LogMisc, msg); + showMessage(msg); const int threadIndex = threadIndexById(threadsHandler, m_currentThreadId); if (threadIndex != -1) threadsHandler->setCurrentThread(threadIndex); diff --git a/src/plugins/debugger/cdb/cdbdebugeventcallback.cpp b/src/plugins/debugger/cdb/cdbdebugeventcallback.cpp index 23d4b0f992e..ef0171140b0 100644 --- a/src/plugins/debugger/cdb/cdbdebugeventcallback.cpp +++ b/src/plugins/debugger/cdb/cdbdebugeventcallback.cpp @@ -79,8 +79,8 @@ STDMETHODIMP CdbDebugEventCallback::Exception( const bool fatal = isFatalException(Exception->ExceptionCode); if (debugCDB) qDebug() << Q_FUNC_INFO << "\nex=" << Exception->ExceptionCode << " fatal=" << fatal << msg; - m_pEngine->manager()->showApplicationOutput(msg, true); - m_pEngine->manager()->showDebuggerOutput(LogMisc, msg); + m_pEngine->showMessage(msg, AppError); + m_pEngine->showMessage(msg, LogMisc); m_pEngine->m_d->notifyException(Exception->ExceptionCode, fatal, msg); return S_OK; } @@ -207,11 +207,10 @@ STDMETHODIMP CdbDebugEventCallback::SystemError( // -----------ExceptionLoggerEventCallback CdbExceptionLoggerEventCallback::CdbExceptionLoggerEventCallback(int logChannel, - bool skipNonFatalExceptions, - DebuggerManager *manager) : + bool skipNonFatalExceptions, CdbDebugEngine *engine) : m_logChannel(logChannel), m_skipNonFatalExceptions(skipNonFatalExceptions), - m_manager(manager) + m_engine(engine) { } @@ -228,15 +227,15 @@ STDMETHODIMP CdbExceptionLoggerEventCallback::Exception( ) { const bool recordException = !m_skipNonFatalExceptions || isFatalException(Exception->ExceptionCode); - QString message; - formatException(Exception, QTextStream(&message)); + QString msg; + formatException(Exception, QTextStream(&msg)); if (recordException) { m_exceptionCodes.push_back(Exception->ExceptionCode); - m_exceptionMessages.push_back(message); + m_exceptionMessages.push_back(msg); } if (debugCDB) - qDebug() << Q_FUNC_INFO << '\n' << message; - m_manager->showDebuggerOutput(m_logChannel, message); + qDebug() << Q_FUNC_INFO << '\n' << msg; + m_engine->showMessage(msg, m_logChannel); if (recordException) QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents); return S_OK; diff --git a/src/plugins/debugger/cdb/cdbdebugeventcallback.h b/src/plugins/debugger/cdb/cdbdebugeventcallback.h index c073cff77e4..95cac83cbab 100644 --- a/src/plugins/debugger/cdb/cdbdebugeventcallback.h +++ b/src/plugins/debugger/cdb/cdbdebugeventcallback.h @@ -35,8 +35,6 @@ #include namespace Debugger { -class DebuggerManager; - namespace Internal { class CdbDebugEngine; @@ -129,7 +127,7 @@ class CdbExceptionLoggerEventCallback : public CdbCore::DebugEventCallbackBase public: CdbExceptionLoggerEventCallback(int logChannel, bool skipNonFatalExceptions, - DebuggerManager *access); + CdbDebugEngine *engine); STDMETHOD(GetInterestMask)( THIS_ @@ -149,7 +147,7 @@ public: private: const int m_logChannel; const bool m_skipNonFatalExceptions; - DebuggerManager *m_manager; + CdbDebugEngine *m_engine; QList m_exceptionCodes; QStringList m_exceptionMessages; }; diff --git a/src/plugins/debugger/cdb/cdbdumperhelper.cpp b/src/plugins/debugger/cdb/cdbdumperhelper.cpp index 624a776becb..8ece900f1f2 100644 --- a/src/plugins/debugger/cdb/cdbdumperhelper.cpp +++ b/src/plugins/debugger/cdb/cdbdumperhelper.cpp @@ -99,7 +99,7 @@ namespace Internal { // the QtCored4.pdb file to be present as we need "qstrdup" // as dummy symbol. This is ok ATM since dumpers only // make sense for Qt apps. -static bool debuggeeLoadLibrary(DebuggerManager *manager, +static bool debuggeeLoadLibrary(CdbDebugEngine *manager, CdbCore::CoreEngine *engine, unsigned long threadId, const QString &moduleName, @@ -231,10 +231,10 @@ bool CdbDumperInitThread::ensureDumperInitialized(CdbDumperHelper &h, QString *e QApplication::setOverrideCursor(Qt::BusyCursor); CdbDumperInitThread thread(h, errorMessage); connect(&thread, SIGNAL(statusMessage(QString,int)), - h.m_manager, SLOT(showStatusMessage(QString,int)), + h.m_engine, SLOT(showStatusMessage(QString,int)), Qt::QueuedConnection); connect(&thread, SIGNAL(logMessage(int,QString)), - h.m_manager, SLOT(showDebuggerOutput(int,QString)), + h.m_engine, SLOT(showMessage(int,QString)), Qt::QueuedConnection); QEventLoop eventLoop; connect(&thread, SIGNAL(finished()), &eventLoop, SLOT(quit()), Qt::QueuedConnection); @@ -243,14 +243,14 @@ bool CdbDumperInitThread::ensureDumperInitialized(CdbDumperHelper &h, QString *e eventLoop.exec(QEventLoop::ExcludeUserInputEvents); QApplication::restoreOverrideCursor(); if (thread.m_ok) { - h.m_manager->showStatusMessage(QCoreApplication::translate("Debugger::Internal::CdbDumperHelper", "Stopped / Custom dumper library initialized."), messageTimeOut); - h.m_manager->showDebuggerOutput(LogMisc, h.m_helper.toString()); + h.m_engine->showStatusMessage(QCoreApplication::translate("Debugger::Internal::CdbDumperHelper", "Stopped / Custom dumper library initialized."), messageTimeOut); + h.m_engine->showMessage(h.m_helper.toString()); h.m_state = CdbDumperHelper::Initialized; } else { h.m_state = CdbDumperHelper::Disabled; // No message here *errorMessage = QCoreApplication::translate("Debugger::Internal::CdbDumperHelper", "The custom dumper library could not be initialized: %1").arg(*errorMessage); - h.m_manager->showStatusMessage(*errorMessage, messageTimeOut); - h.m_manager->showQtDumperLibraryWarning(*errorMessage); + h.m_engine->showStatusMessage(*errorMessage, messageTimeOut); + h.m_engine->showQtDumperLibraryWarning(*errorMessage); } if (loadDebug) qDebug() << Q_FUNC_INFO << '\n' << thread.m_ok; @@ -293,13 +293,13 @@ void CdbDumperInitThread ::run() // ------------------- CdbDumperHelper -CdbDumperHelper::CdbDumperHelper(DebuggerManager *manager, +CdbDumperHelper::CdbDumperHelper(CdbDebugEngine *engine, CdbCore::CoreEngine *coreEngine) : m_tryInjectLoad(true), m_msgDisabled(QLatin1String("Dumpers are disabled")), m_msgNotInScope(QLatin1String("Data not in scope")), m_state(NotLoaded), - m_manager(manager), + m_engine(engine), m_coreEngine(coreEngine), m_inBufferAddress(0), m_inBufferSize(0), @@ -320,7 +320,7 @@ void CdbDumperHelper::disable() { if (loadDebug) qDebug() << Q_FUNC_INFO; - m_manager->showDebuggerOutput(LogMisc, QCoreApplication::translate("Debugger::Internal::CdbDumperHelper", "Disabling dumpers due to debuggee crash...")); + m_engine->showMessage(QCoreApplication::translate("Debugger::Internal::CdbDumperHelper", "Disabling dumpers due to debuggee crash...")); m_state = Disabled; } @@ -359,7 +359,7 @@ void CdbDumperHelper::moduleLoadHook(const QString &module, HANDLE debuggeeHandl // for the thread to finish as this would lock up. if (m_tryInjectLoad && module.contains(QLatin1String("Qt"), Qt::CaseInsensitive)) { // Also shows up in the log window. - m_manager->showStatusMessage(msgLoading(m_library, true), messageTimeOut); + m_engine->showMessage(msgLoading(m_library, true), StatusBar, messageTimeOut); QString errorMessage; SharedLibraryInjector sh(GetProcessId(debuggeeHandle)); if (sh.remoteInject(m_library, false, &errorMessage)) { @@ -367,7 +367,7 @@ void CdbDumperHelper::moduleLoadHook(const QString &module, HANDLE debuggeeHandl } else { m_state = InjectLoadFailed; // Ok, try call loading... - m_manager->showDebuggerOutput(LogMisc, msgLoadFailed(m_library, true, errorMessage)); + m_engine->showMessage(msgLoadFailed(m_library, true, errorMessage)); } } break; @@ -375,7 +375,7 @@ void CdbDumperHelper::moduleLoadHook(const QString &module, HANDLE debuggeeHandl // check if gdbmacros.dll loaded if (module.contains(QLatin1String(dumperModuleNameC), Qt::CaseInsensitive)) { m_state = Loaded; - m_manager->showDebuggerOutput(LogMisc, msgLoadSucceeded(m_library, true)); + m_engine->showMessage(msgLoadSucceeded(m_library, true)); } break; } @@ -397,7 +397,7 @@ CdbDumperHelper::CallLoadResult CdbDumperHelper::initCallLoad(QString *errorMess if (modules.filter(QLatin1String(qtCoreModuleNameC), Qt::CaseInsensitive).isEmpty()) return CallLoadNoQtApp; // Try to load - if (!debuggeeLoadLibrary(m_manager, m_coreEngine, m_dumperCallThread, m_library, errorMessage)) + if (!debuggeeLoadLibrary(m_engine, m_coreEngine, m_dumperCallThread, m_library, errorMessage)) return CallLoadError; return CallLoadOk; } @@ -493,7 +493,8 @@ CdbDumperHelper::CallResult { *outDataPtr = 0; // Skip stray startup-complete trap exceptions. - QSharedPointer exLogger(new CdbExceptionLoggerEventCallback(LogWarning, true, m_manager)); + QSharedPointer exLogger(new +CdbExceptionLoggerEventCallback(LogWarning, true, m_engine)); CdbCore::EventCallbackRedirector eventRedir(m_coreEngine, exLogger); Q_UNUSED(eventRedir) // write input buffer @@ -630,7 +631,7 @@ CdbDumperHelper::DumpResult CdbDumperHelper::dumpTypeI(const WatchData &wd, bool // Ensure types are parsed and known. if (!CdbDumperInitThread::ensureDumperInitialized(*this, errorMessage)) { *errorMessage = msgDumpFailed(wd, errorMessage); - m_manager->showDebuggerOutput(LogError, *errorMessage); + m_engine->showMessage(*errorMessage, LogError); return DumpError; } @@ -647,7 +648,7 @@ CdbDumperHelper::DumpResult CdbDumperHelper::dumpTypeI(const WatchData &wd, bool const QString message = QCoreApplication::translate("Debugger::Internal::CdbDumperHelper", "Querying dumpers for '%1'/'%2' (%3)"). arg(QString::fromLatin1(wd.iname), wd.exp, wd.type); - m_manager->showDebuggerOutput(LogMisc, message); + m_engine->showMessage(message); const DumpExecuteResult der = executeDump(wd, td, dumpChildren, result, errorMessage); if (der == DumpExecuteOk) @@ -659,7 +660,7 @@ CdbDumperHelper::DumpResult CdbDumperHelper::dumpTypeI(const WatchData &wd, bool } // log error *errorMessage = msgDumpFailed(wd, errorMessage); - m_manager->showDebuggerOutput(LogWarning, *errorMessage); + m_engine->showMessage(*errorMessage, LogWarning); return DumpError; } diff --git a/src/plugins/debugger/cdb/cdbdumperhelper.h b/src/plugins/debugger/cdb/cdbdumperhelper.h index a7742685e8d..916d168428c 100644 --- a/src/plugins/debugger/cdb/cdbdumperhelper.h +++ b/src/plugins/debugger/cdb/cdbdumperhelper.h @@ -85,7 +85,7 @@ public: Initialized, // List of types, etc. retrieved }; - explicit CdbDumperHelper(DebuggerManager *manager, + explicit CdbDumperHelper(CdbDebugEngine *engine, CdbCore::CoreEngine *coreEngine); ~CdbDumperHelper(); @@ -139,7 +139,7 @@ private: const QString m_msgDisabled; const QString m_msgNotInScope; State m_state; - DebuggerManager *m_manager; + CdbDebugEngine *m_engine; CdbCore::CoreEngine *m_coreEngine; QString m_library;