diff --git a/src/plugins/debugger/cdb/cdbcore.pri b/src/plugins/debugger/cdb/cdbcore.pri index e42c1e513cc17d42e09f67075b2354813bdec70e..4fb6739dff50ae1442727317cb49c8289a3bc182 100644 --- a/src/plugins/debugger/cdb/cdbcore.pri +++ b/src/plugins/debugger/cdb/cdbcore.pri @@ -3,8 +3,6 @@ # FIXME CDB_PATH="" -false { - win32 { contains(QMAKE_CXX, cl) { @@ -54,5 +52,3 @@ LIBS+=-lpsapi } # exists($$CDB_PATH) } # (QMAKE_CXX, cl) } # win32 - -} # false diff --git a/src/plugins/debugger/cdb/cdbdebugengine.cpp b/src/plugins/debugger/cdb/cdbdebugengine.cpp index 8b790bdb66088311ea4e0e65dd3c91622ade7d35..44799a3f163652b487f8125a6d2a47c9b7e17068 100644 --- a/src/plugins/debugger/cdb/cdbdebugengine.cpp +++ b/src/plugins/debugger/cdb/cdbdebugengine.cpp @@ -61,6 +61,7 @@ #include <texteditor/itexteditor.h> #include <utils/savedaction.h> #include <utils/checkablemessagebox.h> +#include <projectexplorer/toolchain.h> #include <QtCore/QDebug> #include <QtCore/QTimer> @@ -206,7 +207,7 @@ void CdbDebugEnginePrivate::cleanStackTrace() } CdbDebugEngine::CdbDebugEngine(const DebuggerStartParameters &startParameters) : - DebuggerEngine(startParamters), + DebuggerEngine(startParameters), m_d(new CdbDebugEnginePrivate(this)) { m_d->m_consoleStubProc.setMode(Utils::ConsoleProcess::Suspend); @@ -374,8 +375,8 @@ void CdbDebugEngine::startupChecks() void CdbDebugEngine::startDebugger() { - QTC_ASSERT(runControl(), return); - const DebuggerStartParameters &sp = runControl()->sp(); + setState(EngineStarting, Q_FUNC_INFO, __LINE__); + const DebuggerStartParameters &sp = startParameters(); if (debugCDBExecution) qDebug() << "startDebugger"; CdbCore::BreakPoint::clearNormalizeFileNameCache(); @@ -514,7 +515,7 @@ void CdbDebugEnginePrivate::processCreatedAttached(ULONG64 processHandle, ULONG6 // the exception to be delivered to the debugger // Also, see special handling in slotModulesLoaded(). if (m_mode == AttachCrashedExternal) { - const QString crashParameter = m_engine->runControl()->sp().crashParameter; + const QString crashParameter = m_engine->startParameters().crashParameter; if (!crashParameter.isEmpty()) { ULONG64 evtNr = crashParameter.toULongLong(); const HRESULT hr = interfaces().debugControl->SetNotifyEventHandle(evtNr); @@ -1125,7 +1126,7 @@ bool CdbDebugEnginePrivate::attemptBreakpointSynchronization(QString *errorMessa QStringList warnings; const bool ok = synchronizeBreakPoints(interfaces().debugControl, interfaces().debugSymbols, - breakHandler(), + m_engine->breakHandler(), errorMessage, &warnings); if (const int warningsCount = warnings.size()) for (int w = 0; w < warningsCount; w++) @@ -1255,7 +1256,7 @@ void CdbDebugEngine::slotConsoleStubStarted() QString errorMessage; if (startAttachDebugger(appPid, AttachExternal, &errorMessage)) { m_d->startWatchTimer(); - runControl()->notifyInferiorPid(appPid); + notifyInferiorPid(appPid); } else { QMessageBox::critical(DebuggerUISwitcher::instance()->mainWindow(), tr("Debugger Error"), errorMessage); } @@ -1632,6 +1633,26 @@ void addCdbOptionPages(QList<Core::IOptionsPage *> *opts) opts->push_back(theOptionsPage); } +bool checkCdbConfiguration(int toolChainI, QString *errorMsg, QString *settingsPage) +{ + const ProjectExplorer::ToolChain::ToolChainType toolChain = static_cast<ProjectExplorer::ToolChain::ToolChainType>(toolChainI); + switch (toolChain) { + case ProjectExplorer::ToolChain::MinGW: // Do our best + case ProjectExplorer::ToolChain::MSVC: + case ProjectExplorer::ToolChain::WINCE: + case ProjectExplorer::ToolChain::OTHER: + case ProjectExplorer::ToolChain::UNKNOWN: + case ProjectExplorer::ToolChain::INVALID: + break; + default: + *errorMsg = CdbDebugEngine::tr("The CDB debug engine does not support the '%1"). + arg(ProjectExplorer::ToolChain::toolChainName(toolChain)); + *settingsPage = CdbOptionsPage::settingsId(); + return false; + } + return true; +} + } // namespace Internal } // namespace Debugger diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 5ac3aaf89b37619fca8603253575b6ce295b1178..7757fd7d5f6ba6f2668314ccfce54756eda610d6 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -960,6 +960,7 @@ DebuggerPluginPrivate::DebuggerPluginPrivate(DebuggerPlugin *plugin) m_debugMode = 0; m_uiSwitcher = 0; + m_state = DebuggerNotReady; } bool DebuggerPluginPrivate::initialize(const QStringList &arguments, QString *errorMessage)