summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2010-06-22 14:23:22 +0200
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>2010-06-22 14:23:22 +0200
commitcda5f5d69b5cea392ca840ab4a49014849817b1c (patch)
tree60bfb58afcfaa7f25be959a14c342994a7b287df
parent0db5e8026191bfadd32c461035364ab6f742ec2e (diff)
downloadqt-creator-cda5f5d69b5cea392ca840ab4a49014849817b1c.tar.gz
Debugger: Re-enable CDB
-rw-r--r--src/plugins/debugger/cdb/cdbcore.pri4
-rw-r--r--src/plugins/debugger/cdb/cdbdebugengine.cpp33
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp1
3 files changed, 28 insertions, 10 deletions
diff --git a/src/plugins/debugger/cdb/cdbcore.pri b/src/plugins/debugger/cdb/cdbcore.pri
index e42c1e513c..4fb6739dff 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 8b790bdb66..44799a3f16 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 5ac3aaf89b..7757fd7d5f 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)