diff --git a/src/plugins/debugger/breakpointmarker.cpp b/src/plugins/debugger/breakpointmarker.cpp
index a6781cf79e2f5c71c39103cfacdc54f1e3e1c266..9aa4029f1ef3dfcba45ea8fd8c8bb2dbb1175ea2 100644
--- a/src/plugins/debugger/breakpointmarker.cpp
+++ b/src/plugins/debugger/breakpointmarker.cpp
@@ -35,12 +35,7 @@
 #include "breakhandler.h"
 #include "debuggercore.h"
 
-#include <texteditor/basetextmark.h>
-#include <utils/qtcassert.h>
-
-#include <QtCore/QByteArray>
-#include <QtCore/QDebug>
-
+#include <QtGui/QIcon>
 
 //////////////////////////////////////////////////////////////////
 //
diff --git a/src/plugins/debugger/breakpointmarker.h b/src/plugins/debugger/breakpointmarker.h
index f4aafb65f6729f091f111bf888d90fc21a8c8b37..cd03c89a43ae98a0e6a3e5e996a5fef86225672a 100644
--- a/src/plugins/debugger/breakpointmarker.h
+++ b/src/plugins/debugger/breakpointmarker.h
@@ -34,11 +34,8 @@
 #ifndef DEBUGGER_BREAKPOINTMARKER_H
 #define DEBUGGER_BREAKPOINTMARKER_H
 
-#include <QtCore/QString>
-#include <QtGui/QIcon>
-
 #include "breakpoint.h"
-#include "breakhandler.h"
+
 #include <texteditor/basetextmark.h>
 
 namespace Debugger {
diff --git a/src/plugins/debugger/breakwindow.cpp b/src/plugins/debugger/breakwindow.cpp
index 91604c9f640fe743b1f5d49ee095320db93a2f5b..85b36694cfdef60b735263ada1ad62e0b0e31890 100644
--- a/src/plugins/debugger/breakwindow.cpp
+++ b/src/plugins/debugger/breakwindow.cpp
@@ -46,15 +46,9 @@
 #include <QtCore/QDebug>
 
 #include <QtGui/QAction>
-#include <QtGui/QHeaderView>
 #include <QtGui/QIntValidator>
-#include <QtGui/QItemSelectionModel>
 #include <QtGui/QKeyEvent>
 #include <QtGui/QMenu>
-#include <QtGui/QResizeEvent>
-#include <QtGui/QToolButton>
-#include <QtGui/QTreeView>
-
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/breakwindow.h b/src/plugins/debugger/breakwindow.h
index db3b77df68b03e5247fd164e3dcaede15c5b84cb..bfd948fd9a3ea7970acb769604b9dff493323783 100644
--- a/src/plugins/debugger/breakwindow.h
+++ b/src/plugins/debugger/breakwindow.h
@@ -34,7 +34,7 @@
 #ifndef DEBUGGER_BREAKWINDOW_H
 #define DEBUGGER_BREAKWINDOW_H
 
-#include "breakhandler.h"
+#include "breakpoint.h"
 
 #include <QtGui/QTreeView>
 
diff --git a/src/plugins/debugger/cdb2/cdbengine2.cpp b/src/plugins/debugger/cdb2/cdbengine2.cpp
index 0c710d1f8a3266a52b5655de8cecca1ab6a03766..64f1af637bacddede09ed6e5b6f0fd7d72ea2c62 100644
--- a/src/plugins/debugger/cdb2/cdbengine2.cpp
+++ b/src/plugins/debugger/cdb2/cdbengine2.cpp
@@ -32,6 +32,8 @@
 **************************************************************************/
 
 #include "cdbengine2.h"
+#include "debuggerstartparameters.h"
+#include "disassemblerlines.h"
 #include "cdboptions2.h"
 #include "cdboptionspage2.h"
 #include "bytearrayinputstream.h"
@@ -41,6 +43,7 @@
 #include "stackhandler.h"
 #include "watchhandler.h"
 #include "threadshandler.h"
+#include "moduleshandler.h"
 #include "debuggeractions.h"
 #include "debuggercore.h"
 #include "registerhandler.h"
diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp
index 4068fb9f64b012895d4845e9779c5a575d1a7447..f317291e587ddac961d0f60fa62088b6fbb040ba 100644
--- a/src/plugins/debugger/debuggeractions.cpp
+++ b/src/plugins/debugger/debuggeractions.cpp
@@ -36,8 +36,6 @@
 #include "registerpostmortemaction.h"
 #endif
 
-#include <projectexplorer/toolchain.h>
-
 #include <utils/savedaction.h>
 #include <utils/qtcassert.h>
 #include <utils/pathchooser.h>
@@ -45,13 +43,6 @@
 #include <QtCore/QDebug>
 #include <QtCore/QVariant>
 #include <QtCore/QSettings>
-#include <QtCore/QFileInfo>
-
-#include <QtGui/QAction>
-#include <QtGui/QAbstractButton>
-#include <QtGui/QRadioButton>
-#include <QtGui/QCheckBox>
-#include <QtGui/QLineEdit>
 
 using namespace Utils;
 
diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h
index adf73d26a59e9447f516780b0efe441504b4ca4c..00e18a52dd042f611dd778dc41592b84fb59cfe4 100644
--- a/src/plugins/debugger/debuggeractions.h
+++ b/src/plugins/debugger/debuggeractions.h
@@ -35,7 +35,6 @@
 #define DEBUGGER_ACTIONS_H
 
 #include <QtCore/QHash>
-#include <QtCore/QMap>
 
 QT_BEGIN_NAMESPACE
 class QSettings;
diff --git a/src/plugins/debugger/debuggercore.h b/src/plugins/debugger/debuggercore.h
index a925f5a0a0533dd6caa456f98857b9ac6ce10850..763cb7cdd87e7aa04d17ccc74e3be47db6bebf36 100644
--- a/src/plugins/debugger/debuggercore.h
+++ b/src/plugins/debugger/debuggercore.h
@@ -34,12 +34,9 @@
 #ifndef DEBUGGERCORE_H
 #define DEBUGGERCORE_H
 
-#include "debugger_global.h"
 #include "debuggerconstants.h"
 
 #include <QtCore/QObject>
-#include <QtCore/QMultiMap>
-#include <QtCore/QVector>
 
 QT_BEGIN_NAMESPACE
 class QIcon;
@@ -58,7 +55,6 @@ class SavedAction;
 namespace Debugger {
 
 class DebuggerEngine;
-class DebuggerStartParameters;
 
 namespace Internal {
 
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index 3458de14a86d093125fa80024ee10ba8a2a2bd26..6ada703f9c9d41af4de9a8a0afc0a21056c830ea 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -39,6 +39,7 @@
 #include "debuggerrunner.h"
 #include "debuggerstringutils.h"
 #include "debuggertooltip.h"
+#include "debuggerstartparameters.h"
 
 #include "memoryagent.h"
 #include "disassembleragent.h"
@@ -63,7 +64,6 @@
 #include <texteditor/itexteditor.h>
 #include <texteditor/basetextmark.h>
 
-#include <utils/environment.h>
 #include <utils/savedaction.h>
 #include <utils/qtcassert.h>
 
@@ -95,6 +95,17 @@ using namespace TextEditor;
 
 namespace Debugger {
 
+Internal::Location::Location(const StackFrame &frame, bool marker)
+{
+    init();
+    m_fileName = frame.file;
+    m_lineNumber = frame.line;
+    m_needsMarker = marker;
+    m_functionName = frame.function;
+    m_hasDebugInfo = frame.isUsable();
+    m_address = frame.address;
+}
+
 QDebug operator<<(QDebug d, DebuggerState state)
 {
     //return d << DebuggerEngine::stateName(state) << '(' << int(state) << ')';
diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h
index 42673f8bd98a57f84c8d96c2173ebfb2e26b7afe..b13820f41aa16de0fbccb193ff05bc68cdc645d6 100644
--- a/src/plugins/debugger/debuggerengine.h
+++ b/src/plugins/debugger/debuggerengine.h
@@ -36,13 +36,7 @@
 
 #include "debugger_global.h"
 #include "debuggerconstants.h"
-#include "debuggerstartparameters.h"
-#include "moduleshandler.h" // For 'Symbols'
 #include "breakpoint.h" // For 'BreakpointId'
-#include "stackframe.h"
-
-#include <coreplugin/ssh/sshconnection.h>
-#include <utils/environment.h>
 
 #include <QtCore/QObject>
 #include <QtCore/QStringList>
@@ -51,6 +45,7 @@ QT_BEGIN_NAMESPACE
 class QDebug;
 class QPoint;
 class QMessageBox;
+class QAbstractItemModel;
 QT_END_NAMESPACE
 
 namespace TextEditor {
@@ -65,7 +60,7 @@ namespace Debugger {
 
 class DebuggerEnginePrivate;
 class DebuggerRunControl;
-
+class DebuggerStartParameters;
 
 DEBUGGER_EXPORT QDebug operator<<(QDebug str, const DebuggerStartParameters &);
 DEBUGGER_EXPORT QDebug operator<<(QDebug str, DebuggerState state);
@@ -101,10 +96,7 @@ public:
     Location(const QString &file) { init(); m_fileName = file; }
     Location(const QString &file, int line, bool marker = true)
         { init(); m_lineNumber = line; m_fileName = file; m_needsMarker = marker; }
-    Location(const StackFrame &frame, bool marker = true) //: m_frame(frame)
-        { init(); m_fileName = frame.file; m_lineNumber = frame.line;
-          m_needsMarker = marker; m_functionName = frame.function;
-          m_hasDebugInfo = frame.isUsable(); m_address = frame.address; }
+    Location(const StackFrame &frame, bool marker = true);
     QString fileName() const { return m_fileName; }
     QString functionName() const { return m_functionName; }
     int lineNumber() const { return m_lineNumber; }
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 56f1346555f81c7745507d6ecf7e6d48fb4fa551..af968cb25658c9d8cafa134babc9c56a62c4aae2 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -33,6 +33,7 @@
 
 #include "debuggerplugin.h"
 
+#include "debuggerstartparameters.h"
 #include "debuggeractions.h"
 #include "debuggerconstants.h"
 #include "debuggercore.h"
@@ -50,6 +51,7 @@
 #include "disassembleragent.h"
 #include "logwindow.h"
 #include "moduleswindow.h"
+#include "moduleshandler.h"
 #include "registerwindow.h"
 #include "snapshotwindow.h"
 #include "stackhandler.h"
diff --git a/src/plugins/debugger/debuggerplugin.h b/src/plugins/debugger/debuggerplugin.h
index bb811bf9f29de1c1d17077f087029879bd63781c..cd20250eec9f60435ea8fe80a1816048d74dc2dc 100644
--- a/src/plugins/debugger/debuggerplugin.h
+++ b/src/plugins/debugger/debuggerplugin.h
@@ -38,8 +38,6 @@
 
 #include <extensionsystem/iplugin.h>
 
-#include <QtCore/QObject>
-
 namespace ProjectExplorer {
 class RunConfiguration;
 class RunControl;
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index 2be0abb040be875a56205823b1161d73c91fa46b..1b0e4c13184af1ec7012d841eba81f468e75ecc4 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -39,6 +39,7 @@
 #include "debuggermainwindow.h"
 #include "debuggerplugin.h"
 #include "debuggerstringutils.h"
+#include "debuggerstartparameters.h"
 #include "gdb/gdboptionspage.h"
 #include "lldb/lldbenginehost.h"
 
diff --git a/src/plugins/debugger/debuggerrunner.h b/src/plugins/debugger/debuggerrunner.h
index 0c87d4d76b53ec2f45d70e16a09ff749c52fb1ec..2167a7cd4750d6766ddc4cdffbcf42139a2be461 100644
--- a/src/plugins/debugger/debuggerrunner.h
+++ b/src/plugins/debugger/debuggerrunner.h
@@ -35,7 +35,6 @@
 #define DEBUGGERRUNNER_H
 
 #include "debugger_global.h"
-#include "debuggerconstants.h"
 
 #include <projectexplorer/runconfiguration.h>
 
diff --git a/src/plugins/debugger/debuggerstartparameters.h b/src/plugins/debugger/debuggerstartparameters.h
index d2a07770a878e83fabfb9e2a8c0c6e659e61927e..e35773567ec5ce9c635a38e6f2535255809a4a5a 100644
--- a/src/plugins/debugger/debuggerstartparameters.h
+++ b/src/plugins/debugger/debuggerstartparameters.h
@@ -35,6 +35,7 @@
 #define DEBUGGER_DEBUGGERSTARTPARAMETERS_H
 
 #include "debugger_global.h"
+#include "debuggerconstants.h"
 
 #include <coreplugin/ssh/sshconnection.h>
 #include <utils/environment.h>
diff --git a/src/plugins/debugger/debuggerstreamops.cpp b/src/plugins/debugger/debuggerstreamops.cpp
index ffa9cd2317655b3320d9cb9139e5c987a2978fd8..057bf2d2b07f1019ade4b502f8b489d3471518fe 100644
--- a/src/plugins/debugger/debuggerstreamops.cpp
+++ b/src/plugins/debugger/debuggerstreamops.cpp
@@ -33,6 +33,12 @@
 
 #include "debuggerstreamops.h"
 
+#include "breakpoint.h"
+#include "watchdata.h"
+#include "disassemblerlines.h"
+
+#include <QtCore/QDataStream>
+
 namespace Debugger {
 namespace Internal {
 
diff --git a/src/plugins/debugger/debuggerstreamops.h b/src/plugins/debugger/debuggerstreamops.h
index 156308639f378f549d68108ed610624d0ad64bfb..b473e9d5a1e3a2f33633ac1333209f11aa533aa3 100644
--- a/src/plugins/debugger/debuggerstreamops.h
+++ b/src/plugins/debugger/debuggerstreamops.h
@@ -34,18 +34,20 @@
 #ifndef DEBUGGERPLUGIN_STREAMOPS_H
 #define DEBUGGERPLUGIN_STREAMOPS_H
 
-#include "breakpoint.h"
-#include "stackframe.h"
 #include "threaddata.h"
-#include "watchdata.h"
-#include "disassemblerlines.h"
+#include "stackframe.h"
 
-#include <QtCore/QDataStream>
-#include <QtCore/QVector>
+QT_FORWARD_DECLARE_CLASS(QDataStream)
 
 namespace Debugger {
 namespace Internal {
 
+class BreakpointParameters;
+class BreakpointResponse;
+class WatchData;
+class DisassemblerLine;
+class DisassemblerLines;
+
 QDataStream &operator<<(QDataStream& stream, const ThreadData &thread);
 QDataStream &operator>>(QDataStream& stream, ThreadData &threads);
 QDataStream &operator<<(QDataStream& stream, const Threads &threads);
diff --git a/src/plugins/debugger/disassembleragent.cpp b/src/plugins/debugger/disassembleragent.cpp
index 00d438ff52e4398282bf6f4a4f00edfcd33e25c4..18f82af0dc15806c54f71b17764edf0242a6ca8e 100644
--- a/src/plugins/debugger/disassembleragent.cpp
+++ b/src/plugins/debugger/disassembleragent.cpp
@@ -33,6 +33,7 @@
 
 #include "disassembleragent.h"
 
+#include "disassemblerlines.h"
 #include "breakhandler.h"
 #include "debuggerengine.h"
 #include "debuggercore.h"
@@ -54,7 +55,7 @@
 
 #include <QtGui/QTextBlock>
 #include <QtGui/QIcon>
-
+#include <QtCore/QPointer>
 
 using namespace Core;
 
diff --git a/src/plugins/debugger/disassembleragent.h b/src/plugins/debugger/disassembleragent.h
index 975df0707d40c372b7b9c7dc18b510202062686f..5e57b378f097f7494dcb47f2ea18e13764354cfb 100644
--- a/src/plugins/debugger/disassembleragent.h
+++ b/src/plugins/debugger/disassembleragent.h
@@ -34,21 +34,14 @@
 #ifndef DEBUGGER_DISASSEMBLERAGENT_H
 #define DEBUGGER_DISASSEMBLERAGENT_H
 
-#include "disassemblerlines.h"
-
 #include <QtCore/QObject>
-#include <QtCore/QPointer>
-
-namespace Core {
-class IEditor;
-}
 
 namespace Debugger {
 
 class DebuggerEngine;
 
 namespace Internal {
-
+class DisassemblerLines;
 class Location;
 class DisassemblerAgentPrivate;
 
@@ -85,7 +78,6 @@ private:
     DisassemblerAgentPrivate *d;
 };
 
-
 } // namespace Internal
 } // namespace Debugger
 
diff --git a/src/plugins/debugger/gdb/abstractgdbadapter.cpp b/src/plugins/debugger/gdb/abstractgdbadapter.cpp
index 92cd683fcc6b3c9154c5b9acc12d8e7a1ea1ade6..81c43cd9784a1ff4b51c9ed1a67675a6cf9331d4 100644
--- a/src/plugins/debugger/gdb/abstractgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/abstractgdbadapter.cpp
@@ -33,6 +33,7 @@
 
 #include "abstractgdbadapter.h"
 #include "gdbengine.h"
+#include "debuggerstartparameters.h"
 #include "abstractgdbprocess.h"
 
 #include <utils/qtcassert.h>
diff --git a/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp b/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp
index 5f047ec54a49e2852fc938238f2c340266240192..bc78a68e386373cacd7c7e61f79a2160c301cd5c 100644
--- a/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp
+++ b/src/plugins/debugger/gdb/abstractplaingdbadapter.cpp
@@ -34,6 +34,7 @@
 #include "abstractplaingdbadapter.h"
 #include "gdbmi.h"
 #include "gdbengine.h"
+#include "debuggerstartparameters.h"
 #include "debuggeractions.h"
 #include "debuggercore.h"
 #include "debuggerstringutils.h"
diff --git a/src/plugins/debugger/gdb/attachgdbadapter.cpp b/src/plugins/debugger/gdb/attachgdbadapter.cpp
index f594b38956d4d362ac3764e970fbc73f77ce504a..47a5c843a56e6677b0da033dca075ebcf6e59cce 100644
--- a/src/plugins/debugger/gdb/attachgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/attachgdbadapter.cpp
@@ -33,6 +33,7 @@
 
 #include "attachgdbadapter.h"
 #include "gdbmi.h"
+#include "debuggerstartparameters.h"
 
 #include "gdbengine.h"
 #include "procinterrupt.h"
diff --git a/src/plugins/debugger/gdb/classicgdbengine.cpp b/src/plugins/debugger/gdb/classicgdbengine.cpp
index 644c3b3fdf4f5a0020b3383f52665ce16cceb2ed..58bb68f86b46a179e5146519d109ec5298702baf 100644
--- a/src/plugins/debugger/gdb/classicgdbengine.cpp
+++ b/src/plugins/debugger/gdb/classicgdbengine.cpp
@@ -34,6 +34,7 @@
 #include "gdbengine.h"
 #include "gdbmi.h"
 
+#include "debuggerstartparameters.h"
 #include "abstractgdbadapter.h"
 #include "debuggeractions.h"
 #include "debuggercore.h"
@@ -179,8 +180,7 @@ void GdbEngine::runDebuggingHelperClassic(const WatchData &data0, bool dumpChild
     QByteArray params;
     QList<QByteArray> extraArgs;
     const QtDumperHelper::TypeData td = m_dumperHelper.typeData(data0.type);
-    m_dumperHelper.evaluationParameters(data, td, QtDumperHelper::GdbDebugger,
-        &params, &extraArgs);
+    m_dumperHelper.evaluationParameters(data, td, &params, &extraArgs);
 
     //int protocol = (data.iname.startsWith("watch") && data.type == "QImage") ? 3 : 2;
     //int protocol = data.iname.startsWith("watch") ? 3 : 2;
diff --git a/src/plugins/debugger/gdb/coregdbadapter.cpp b/src/plugins/debugger/gdb/coregdbadapter.cpp
index 5f37b36333daab0ba938ef193db6ace6dcc3f03e..72ac3c5f2c69031048fe7aad770a0c38dbc2117c 100644
--- a/src/plugins/debugger/gdb/coregdbadapter.cpp
+++ b/src/plugins/debugger/gdb/coregdbadapter.cpp
@@ -33,6 +33,7 @@
 
 #include "coregdbadapter.h"
 
+#include "debuggerstartparameters.h"
 #include "debuggercore.h"
 #include "debuggeractions.h"
 #include "debuggerstringutils.h"
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp
index 02f754b675e3562a555435956f26806199084bab..22b60d5c0f795256fb59ab0cb278a4fd90becce0 100644
--- a/src/plugins/debugger/gdb/gdbengine.cpp
+++ b/src/plugins/debugger/gdb/gdbengine.cpp
@@ -35,6 +35,8 @@
 
 #include "gdbengine.h"
 
+#include "debuggerstartparameters.h"
+#include "disassemblerlines.h"
 #include "attachgdbadapter.h"
 #include "coregdbadapter.h"
 #include "localplaingdbadapter.h"
diff --git a/src/plugins/debugger/gdb/localplaingdbadapter.cpp b/src/plugins/debugger/gdb/localplaingdbadapter.cpp
index 83715e1847bb7553e56df54e28f68422684fb26f..562e3e6fb8b3ebe5d553ba03b38ed35e336a7f3a 100644
--- a/src/plugins/debugger/gdb/localplaingdbadapter.cpp
+++ b/src/plugins/debugger/gdb/localplaingdbadapter.cpp
@@ -34,6 +34,7 @@
 #include "localplaingdbadapter.h"
 
 #include "gdbengine.h"
+#include "debuggerstartparameters.h"
 #include "procinterrupt.h"
 #include "debuggercore.h"
 #include "debuggerstringutils.h"
diff --git a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
index 0afddf18546e450ce5e9451453ef0ae484b4b4fc..65e3500b3556cdc70b848473da4ec818438fa893 100644
--- a/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
+++ b/src/plugins/debugger/gdb/remotegdbserveradapter.cpp
@@ -33,6 +33,7 @@
 
 #include "remotegdbserveradapter.h"
 
+#include "debuggerstartparameters.h"
 #include "debuggercore.h"
 #include "debuggerstringutils.h"
 #include "gdbengine.h"
diff --git a/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp b/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp
index 46823086c890b8224285fb8f460f1e1f01aedc2e..3e150051b0e82e95304bb7366d8c6ec171d0f846 100644
--- a/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp
+++ b/src/plugins/debugger/gdb/remoteplaingdbadapter.cpp
@@ -33,6 +33,7 @@
 
 #include "remoteplaingdbadapter.h"
 #include "gdbengine.h"
+#include "debuggerstartparameters.h"
 
 #include <debugger/debuggeractions.h>
 #include <debugger/debuggerstringutils.h>
diff --git a/src/plugins/debugger/gdb/tcftrkgdbadapter.cpp b/src/plugins/debugger/gdb/tcftrkgdbadapter.cpp
index 993f1ae4cffe44948bc0cb0965694f43dcc90196..1845fbdd07e96df24a84d5bdbed745b80f5adb4e 100644
--- a/src/plugins/debugger/gdb/tcftrkgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/tcftrkgdbadapter.cpp
@@ -32,6 +32,8 @@
 **************************************************************************/
 
 #include "tcftrkgdbadapter.h"
+
+#include "debuggerstartparameters.h"
 #include "tcftrkdevice.h"
 #include "trkutils.h"
 #include "gdbmi.h"
diff --git a/src/plugins/debugger/gdb/termgdbadapter.cpp b/src/plugins/debugger/gdb/termgdbadapter.cpp
index e500269f2ab0625be51e25f768e281b178193964..a8273bfe84af39eef207f4fef85015bc273a90ee 100644
--- a/src/plugins/debugger/gdb/termgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/termgdbadapter.cpp
@@ -32,6 +32,8 @@
 **************************************************************************/
 
 #include "termgdbadapter.h"
+
+#include "debuggerstartparameters.h"
 #include "gdbmi.h"
 #include "gdbengine.h"
 #include "procinterrupt.h"
diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp
index 61af444278a6d6a41ff8fffb732db04702eabde0..640757dd115cae508c6671f86f4a9ea9157079d7 100644
--- a/src/plugins/debugger/gdb/trkgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp
@@ -33,6 +33,7 @@
 
 #include "trkgdbadapter.h"
 
+#include "debuggerstartparameters.h"
 #include "gdbmi.h"
 #include "launcher.h"
 #include "symbiandevicemanager.h"
diff --git a/src/plugins/debugger/lldb/ipcenginehost.cpp b/src/plugins/debugger/lldb/ipcenginehost.cpp
index 66d205ad0125f4a39147b40ca03e130be27a475e..e637d9bc5ea0eaaab29c9b38c7a57ab998c286e3 100644
--- a/src/plugins/debugger/lldb/ipcenginehost.cpp
+++ b/src/plugins/debugger/lldb/ipcenginehost.cpp
@@ -34,6 +34,7 @@
 #include "ipcenginehost.h"
 
 #include "ipcengineguest.h"
+#include "debuggerstartparameters.h"
 #include "breakhandler.h"
 #include "breakpoint.h"
 #include "disassemblerlines.h"
diff --git a/src/plugins/debugger/lldb/lldbenginehost.cpp b/src/plugins/debugger/lldb/lldbenginehost.cpp
index f9f52f397046427ef03c4ee04c0b1df1a1cb0f82..8fd5fffbbd0cc5f80237faa2fad7ab01f96a16d4 100644
--- a/src/plugins/debugger/lldb/lldbenginehost.cpp
+++ b/src/plugins/debugger/lldb/lldbenginehost.cpp
@@ -35,6 +35,7 @@
 
 #include "lldbenginehost.h"
 
+#include "debuggerstartparameters.h"
 #include "debuggeractions.h"
 #include "debuggerconstants.h"
 #include "debuggerdialogs.h"
diff --git a/src/plugins/debugger/moduleshandler.h b/src/plugins/debugger/moduleshandler.h
index 97a49be0b39b74b1dc3b51cce54de088b645f73c..b5aecd8b208026f6e597e072dba16ebfc50011bc 100644
--- a/src/plugins/debugger/moduleshandler.h
+++ b/src/plugins/debugger/moduleshandler.h
@@ -36,8 +36,9 @@
 
 #include <QtCore/QVector>
 #include <QtCore/QObject>
-#include <QtGui/QSortFilterProxyModel>
+#include <QtCore/QAbstractItemModel>
 
+QT_FORWARD_DECLARE_CLASS(QSortFilterProxyModel)
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/pdb/pdbengine.cpp b/src/plugins/debugger/pdb/pdbengine.cpp
index 15d20470534e8c1876647258a53bd422f64a9132..a4e8052c3b0b946bad54ff69281f933bb808da4d 100644
--- a/src/plugins/debugger/pdb/pdbengine.cpp
+++ b/src/plugins/debugger/pdb/pdbengine.cpp
@@ -35,6 +35,7 @@
 
 #include "pdbengine.h"
 
+#include "debuggerstartparameters.h"
 #include "debuggeractions.h"
 #include "debuggercore.h"
 #include "debuggerdialogs.h"
diff --git a/src/plugins/debugger/qml/qmladapter.cpp b/src/plugins/debugger/qml/qmladapter.cpp
index 98ea73fad0fce7ba8bd388b7318d9174b3ff8178..ffa001368703ff3b9c8e295206a6e56cf909bf9c 100644
--- a/src/plugins/debugger/qml/qmladapter.cpp
+++ b/src/plugins/debugger/qml/qmladapter.cpp
@@ -32,6 +32,8 @@
 **************************************************************************/
 
 #include "qmladapter.h"
+
+#include "debuggerstartparameters.h"
 #include "qmldebuggerclient.h"
 #include "qmljsprivateapi.h"
 
diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp
index c9741c332ed5018f03b5ad8412ffc0598df08c92..5fec32b39f9cbe57980f1bccf1dafb6083822849 100644
--- a/src/plugins/debugger/qml/qmlcppengine.cpp
+++ b/src/plugins/debugger/qml/qmlcppengine.cpp
@@ -1,4 +1,5 @@
 #include "qmlcppengine.h"
+#include "debuggerstartparameters.h"
 #include "qmlengine.h"
 #include "debuggermainwindow.h"
 #include "debuggercore.h"
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index 633e306e7fa36f1ca63cde393b70d8dc7114e2dc..b930cadc854f9a31fc1db5248ff9f3327a5b3874 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -34,6 +34,7 @@
 #include "qmlengine.h"
 #include "qmladapter.h"
 
+#include "debuggerstartparameters.h"
 #include "debuggeractions.h"
 #include "debuggerconstants.h"
 #include "debuggercore.h"
diff --git a/src/plugins/debugger/script/scriptengine.cpp b/src/plugins/debugger/script/scriptengine.cpp
index f173780e890e729050ee99a02913c9830398b501..956462c02afa7f13614c318f8a5c6804ca2cf55b 100644
--- a/src/plugins/debugger/script/scriptengine.cpp
+++ b/src/plugins/debugger/script/scriptengine.cpp
@@ -35,6 +35,7 @@
 
 #include "scriptengine.h"
 
+#include "debuggerstartparameters.h"
 #include "breakhandler.h"
 #include "debuggerconstants.h"
 #include "debuggercore.h"
diff --git a/src/plugins/debugger/snapshothandler.cpp b/src/plugins/debugger/snapshothandler.cpp
index df335391e82005fb119d6445430f6787302ecb62..0a7d62e1c548349e918cd6fac0879ea9c94954fb 100644
--- a/src/plugins/debugger/snapshothandler.cpp
+++ b/src/plugins/debugger/snapshothandler.cpp
@@ -37,6 +37,7 @@
 #include "debuggercore.h"
 #include "debuggerengine.h"
 #include "debuggerrunner.h"
+#include "debuggerstartparameters.h"
 
 #include <utils/qtcassert.h>
 
diff --git a/src/plugins/debugger/sourceagent.cpp b/src/plugins/debugger/sourceagent.cpp
index 624bc808c8c2b799a6685702d22d8cc549d71a16..c49d37f1080d348534bc971f405669fc05a8f341 100644
--- a/src/plugins/debugger/sourceagent.cpp
+++ b/src/plugins/debugger/sourceagent.cpp
@@ -43,7 +43,6 @@
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/editormanager/editormanager.h>
 #include <coreplugin/editormanager/ieditor.h>
-#include <coreplugin/mimedatabase.h>
 #include <coreplugin/icore.h>
 
 #include <texteditor/basetextdocument.h>
@@ -59,6 +58,8 @@
 #include <QtCore/QDebug>
 #include <QtCore/QMetaObject>
 #include <QtCore/QTimer>
+#include <QtCore/QPointer>
+#include <QtCore/QFileInfo>
 
 #include <QtGui/QMessageBox>
 #include <QtGui/QPlainTextEdit>
diff --git a/src/plugins/debugger/sourceagent.h b/src/plugins/debugger/sourceagent.h
index 3e929944ef5f732e55a873dcea8af9b1a0bdb3b2..0b873c9e8c3e739d231a76d1b4fc34e54b69acb8 100644
--- a/src/plugins/debugger/sourceagent.h
+++ b/src/plugins/debugger/sourceagent.h
@@ -35,9 +35,6 @@
 #define DEBUGGER_SOURCE_AGENT_H
 
 #include <QtCore/QObject>
-#include <QtCore/QHash>
-#include <QtCore/QPointer>
-#include <QtCore/QVector>
 
 namespace Debugger {
 
@@ -59,7 +56,6 @@ private:
     SourceAgentPrivate *d;
 };
 
-
 } // namespace Internal
 } // namespace Debugger
 
diff --git a/src/plugins/debugger/tcf/tcfengine.cpp b/src/plugins/debugger/tcf/tcfengine.cpp
index ebbe8c8bac72d0d6eba063f12b3b4b7673ba749c..f256705279f8e18810211e028cb26398462a054e 100644
--- a/src/plugins/debugger/tcf/tcfengine.cpp
+++ b/src/plugins/debugger/tcf/tcfengine.cpp
@@ -33,6 +33,7 @@
 
 #include "tcfengine.h"
 
+#include "debuggerstartparameters.h"
 #include "debuggerconstants.h"
 #include "debuggerdialogs.h"
 #include "debuggerstringutils.h"
diff --git a/src/plugins/debugger/threaddata.h b/src/plugins/debugger/threaddata.h
index 021455374ea4fb04ef1859dc3f00fa203eca504f..e5b8a27294e2fc1ca136aa88704c6648b60c2341 100644
--- a/src/plugins/debugger/threaddata.h
+++ b/src/plugins/debugger/threaddata.h
@@ -34,10 +34,10 @@
 #ifndef THREADDATA_H
 #define THREADDATA_H
 
-#include <QtCore/QList>
+#include <QtCore/QVector>
+#include <QtCore/QString>
 
 namespace Debugger {
-
 namespace Internal {
 
 ////////////////////////////////////////////////////////////////////////
diff --git a/src/plugins/debugger/threadshandler.h b/src/plugins/debugger/threadshandler.h
index 1a36b412b35d8b96927448827834384831caad2d..37163122fce07feac8c9834ffde51af559c21101 100644
--- a/src/plugins/debugger/threadshandler.h
+++ b/src/plugins/debugger/threadshandler.h
@@ -35,8 +35,6 @@
 #define THREADSHANDLER_H
 
 #include <QtCore/QAbstractTableModel>
-#include <QtCore/QList>
-
 #include <QtGui/QIcon>
 
 #include "threaddata.h"
diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp
index f0043ae7bf0ee906438fc94bf1e51a79c0f51330..1bfad03734d30d66016f4635838f440b163f3698 100644
--- a/src/plugins/debugger/watchutils.cpp
+++ b/src/plugins/debugger/watchutils.cpp
@@ -541,11 +541,11 @@ bool isSymbianIntType(const QByteArray &type)
     return type == "TInt" || type == "TBool";
 }
 
-QByteArray sizeofTypeExpression(const QByteArray &type, QtDumperHelper::Debugger debugger)
+QByteArray sizeofTypeExpression(const QByteArray &type)
 {
     if (type.endsWith('*'))
         return "sizeof(void*)";
-    if (debugger != QtDumperHelper::GdbDebugger || type.endsWith('>'))
+    if (type.endsWith('>'))
         return "sizeof(" + type + ')';
     return "sizeof(" + gdbQuoteTypes(type) + ')';
 }
@@ -1009,16 +1009,6 @@ bool QtDumperHelper::parseQuery(const GdbMi &contents)
     return true;
 }
 
-// parse a query
-bool QtDumperHelper::parseQuery(const char *data)
-{
-    GdbMi root;
-    root.fromStringMultiple(QByteArray(data));
-    if (!root.isValid())
-        return false;
-    return parseQuery(root);
-}
-
 void QtDumperHelper::addSize(const QByteArray &name, int size)
 {
     // Special interest cases
@@ -1074,8 +1064,7 @@ QtDumperHelper::TypeData QtDumperHelper::typeData(const QByteArray &typeName) co
 
 // Format an expression to have the debugger query the
 // size. Use size cache if possible
-QByteArray QtDumperHelper::evaluationSizeofTypeExpression(const QByteArray &typeName,
-                                                       Debugger debugger) const
+QByteArray QtDumperHelper::evaluationSizeofTypeExpression(const QByteArray &typeName) const
 {
     // Look up special size types
     const SpecialSizeType st = specialSizeType(typeName);
@@ -1088,7 +1077,7 @@ QByteArray QtDumperHelper::evaluationSizeofTypeExpression(const QByteArray &type
     if (sit != m_sizeCache.constEnd())
         return QByteArray::number(sit.value());
     // Finally have the debugger evaluate
-    return sizeofTypeExpression(typeName, debugger);
+    return sizeofTypeExpression(typeName);
 }
 
 QtDumperHelper::SpecialSizeType QtDumperHelper::specialSizeType(const QByteArray &typeName) const
@@ -1129,9 +1118,14 @@ static inline bool isInteger(const QString &n)
     return true;
 }
 
+// Return debugger expression to get the offset of a map node.
+static inline QByteArray qMapNodeValueOffsetExpression(const QByteArray &type)
+{
+        return "(size_t)&(('" + type + "'*)0)->value";
+}
+
 void QtDumperHelper::evaluationParameters(const WatchData &data,
-    const TypeData &td, Debugger debugger,
-    QByteArray *inBuffer, QByteArrayList *extraArgsIn) const
+    const TypeData &td, QByteArray *inBuffer, QByteArrayList *extraArgsIn) const
 {
     enum { maxExtraArgCount = 4 };
 
@@ -1159,7 +1153,7 @@ void QtDumperHelper::evaluationParameters(const WatchData &data,
         // gives already most information the dumpers need
         const int count = qMin(int(maxExtraArgCount), inners.size());
         for (int i = 0; i < count; i++)
-            extraArgs.push_back(evaluationSizeofTypeExpression(inners.at(i), debugger));
+            extraArgs.push_back(evaluationSizeofTypeExpression(inners.at(i)));
     }
 
     // Pad with zeros
@@ -1197,13 +1191,13 @@ void QtDumperHelper::evaluationParameters(const WatchData &data,
             }
             //qDebug() << "OUTERTYPE: " << outertype << " NODETYPE: " << nodetype
             //    << "QT VERSION" << m_qtVersion << ((4 << 16) + (5 << 8) + 0);
-            extraArgs[2] = evaluationSizeofTypeExpression(nodetype, debugger);
-            extraArgs[3] = qMapNodeValueOffsetExpression(nodetype, data.hexAddress(), debugger);
+            extraArgs[2] = evaluationSizeofTypeExpression(nodetype);
+            extraArgs[3] = qMapNodeValueOffsetExpression(nodetype);
         }
         break;
     case QMapNodeType:
-        extraArgs[2] = evaluationSizeofTypeExpression(data.type, debugger);
-        extraArgs[3] = qMapNodeValueOffsetExpression(data.type, data.hexAddress(), debugger);
+        extraArgs[2] = evaluationSizeofTypeExpression(data.type);
+        extraArgs[3] = qMapNodeValueOffsetExpression(data.type);
         break;
     case StdVectorType:
         //qDebug() << "EXTRACT TEMPLATE: " << outertype << inners;
@@ -1243,23 +1237,10 @@ void QtDumperHelper::evaluationParameters(const WatchData &data,
                 bracketPos = pairType.lastIndexOf(closingBracket, bracketPos - pairType.size() - 1);
             if (bracketPos != -1)
                 pairType.truncate(bracketPos + 1);
-            if (debugger == GdbDebugger) {
-                extraArgs[2] = "(size_t)&(('";
-                extraArgs[2] += pairType;
-                extraArgs[2] += "'*)0)->second";
-            } else {
-                // Cdb: The std::pair is usually in scope. Still, this expression
-                // occasionally fails for complex types (std::string).
-                // We need an address as CDB cannot do the 0-trick.
-                // Use data address or try at least cache if missing.
-                const QByteArray address = data.address ?
-                                           data.hexAddress() :
-                                           "DUMMY_ADDRESS";
-                QByteArray offsetExpr = "(size_t)&(((" + pairType + " *)" + address
-                        + ")->second)" + '-' + address;
-                extraArgs[2] = lookupCdbDummyAddressExpression(offsetExpr, address);
-            }
-        }
+            extraArgs[2] = "(size_t)&(('";
+            extraArgs[2] += pairType;
+            extraArgs[2] += "'*)0)->second";
+    }
         break;
     case StdStringType:
         //qDebug() << "EXTRACT TEMPLATE: " << outertype << inners;
@@ -1310,255 +1291,6 @@ void QtDumperHelper::evaluationParameters(const WatchData &data,
         qDebug() << '\n' << Q_FUNC_INFO << '\n' << data.toString() << "\n-->" << outertype << td.type << extraArgs;
 }
 
-// Return debugger expression to get the offset of a map node.
-QByteArray QtDumperHelper::qMapNodeValueOffsetExpression
-    (const QByteArray &type, const QByteArray &addressIn, Debugger debugger) const
-{
-    switch (debugger) {
-    case GdbDebugger:
-        return "(size_t)&(('" + type + "'*)0)->value";
-    case CdbDebugger: {
-            // Cdb: This will only work if a QMapNode is in scope.
-            // We need an address as CDB cannot do the 0-trick.
-            // Use data address or try at least cache if missing.
-            const QByteArray address = addressIn.isEmpty() ? "DUMMY_ADDRESS" : addressIn;
-            QByteArray offsetExpression = "(size_t)&(((" + type
-                    + " *)" + address + ")->value)-" + address;
-            return lookupCdbDummyAddressExpression(offsetExpression, address);
-        }
-    }
-    return QByteArray();
-}
-
-/* Cdb cannot do tricks like ( "&(std::pair<int,int>*)(0)->second)",
- * that is, use a null pointer to determine the offset of a member.
- * It tries to dereference the address at some point and fails with
- * "memory access error". As a trick, use the address of the watch item
- * to do this. However, in the expression cache, 0 is still used, so,
- * for cache lookups,  use '0' as address. */
-QByteArray QtDumperHelper::lookupCdbDummyAddressExpression
-    (const QByteArray &expr, const QByteArray &address) const
-{
-    QByteArray nullExpr = expr;
-    nullExpr.replace(address, "0");
-    const QByteArray rc = m_expressionCache.value(nullExpr, expr);
-    if (debug)
-        qDebug() << "lookupCdbDummyAddressExpression" << expr << rc;
-    return rc;
-}
-
-// GdbMi parsing helpers for parsing dumper value results
-
-static bool gdbMiGetIntValue(int *target, const GdbMi &node, const char *child)
-{
-    *target = -1;
-    const GdbMi childNode = node.findChild(child);
-    if (!childNode.isValid())
-        return false;
-    bool ok;
-    *target = childNode.data().toInt(&ok);
-    return ok;
-}
-
-// Find a string child node and assign value if it exists.
-// Optionally decode.
-static bool gdbMiGetStringValue(QString *target,
-                             const GdbMi &node,
-                             const char *child,
-                             const char *encodingChild = 0)
-{
-    target->clear();
-    const GdbMi childNode = node.findChild(child);
-    if (!childNode.isValid())
-        return false;
-    // Encoded data
-    if (encodingChild) {
-        int encoding;
-        if (!gdbMiGetIntValue(&encoding, node, encodingChild))
-            encoding = 0;
-        *target = decodeData(childNode.data(), encoding);
-        return true;
-    }
-    // Plain data
-    *target = QLatin1String(childNode.data());
-    return true;
-}
-
-static bool gdbMiGetByteArrayValue(QByteArray *target,
-                             const GdbMi &node,
-                             const char *child,
-                             const char *encodingChild = 0)
-{
-    QString str;
-    const bool success = gdbMiGetStringValue(&str, node, child, encodingChild);
-    *target = str.toLatin1();
-    return success;
-}
-
-static bool gdbMiGetBoolValue(bool *target,
-                             const GdbMi &node,
-                             const char *child)
-{
-    *target = false;
-    const GdbMi childNode = node.findChild(child);
-    if (!childNode.isValid())
-        return false;
-    *target = childNode.data() == "true";
-    return true;
-}
-
-/* Context to store parameters that influence the next level children.
- *  (next level only, it is not further inherited). For example, the root item
- * can provide a "childtype" node that specifies the type of the children. */
-
-struct GdbMiRecursionContext
-{
-    enum Type
-    {
-        Debugger,    // Debugger symbol dump, recursive/symmetrical
-        GdbMacrosCpp // old gdbmacros.cpp format, unsymmetrical
-    };
-
-    GdbMiRecursionContext(Type t, int recursionLevelIn = 0) :
-            type(t), recursionLevel(recursionLevelIn), childNumChild(-1), childIndex(0) {}
-
-    const Type type;
-    int recursionLevel;
-    int childNumChild;
-    int childIndex;
-    QString childType;
-    QByteArray parentIName;
-};
-
-static void gbdMiToWatchData(const GdbMi &root,
-                             const GdbMiRecursionContext &ctx,
-                             QList<WatchData> *wl)
-{
-    if (debug > 1)
-        qDebug() << Q_FUNC_INFO << '\n' << root.toString(false, 0);
-    WatchData w;
-    QString v;
-    QByteArray b;
-    // Check for name/iname and use as expression default
-    w.sortId = ctx.childIndex;
-    // Fully symmetrical
-    if (ctx.type == GdbMiRecursionContext::Debugger) {
-        gdbMiGetByteArrayValue(&w.iname, root, "iname");
-        gdbMiGetStringValue(&w.name, root, "name");
-        gdbMiGetByteArrayValue(&w.exp, root, "exp");
-    } else {
-        // gdbmacros.cpp: iname/name present according to recursion level
-        // Check for name/iname and use as expression default
-        if (ctx.recursionLevel == 0) {
-            // parents have only iname, from which name is derived
-            QString iname;
-            if (!gdbMiGetStringValue(&iname, root, "iname"))
-                qWarning("Internal error: iname missing");
-            w.iname = iname.toLatin1();
-            w.name = iname;
-            const int lastDotPos = w.name.lastIndexOf(QLatin1Char('.'));
-            if (lastDotPos != -1)
-                w.name.remove(0, lastDotPos + 1);
-            w.exp = w.name.toLatin1();
-        } else {
-            // Children can have a 'name' attribute. If missing, assume array index
-            // For display purposes, it can be overridden by "key"
-            if (!gdbMiGetStringValue(&w.name, root, "name")) {
-                w.name = QString::number(ctx.childIndex);
-            }
-            // Set iname
-            w.iname = ctx.parentIName;
-            w.iname += '.';
-            w.iname += w.name.toLatin1();
-            // Key?
-            QString key;
-            if (gdbMiGetStringValue(&key, root, "key", "keyencoded")) {
-                w.name = key.size() > 13 ? key.mid(0, 13) + QLatin1String("...") : key;
-            }
-        }
-    }
-    if (w.name.isEmpty()) {
-        const QString msg = QString::fromLatin1(
-            "Internal error: Unable to determine name at level %1/%2 for %3")
-            .arg(ctx.recursionLevel).arg(w.iname, QLatin1String(root.toString(true, 2)));
-        qWarning("%s\n", qPrintable(msg));
-    }
-    gdbMiGetStringValue(&w.displayedType, root, "displayedtype");
-    if (gdbMiGetByteArrayValue(&b, root, "editvalue"))
-        w.editvalue = b;
-    if (gdbMiGetByteArrayValue(&b, root, "exp"))
-        w.exp = b;
-    QByteArray addressBA;
-    gdbMiGetByteArrayValue(&addressBA, root, "addr");
-    if (addressBA.startsWith("0x")) { // Item model dumper pulls tricks
-        w.setHexAddress(addressBA);
-    } else {
-        w.dumperFlags = addressBA;
-    }
-    gdbMiGetBoolValue(&w.valueEnabled, root, "valueenabled");
-    gdbMiGetBoolValue(&w.valueEditable, root, "valueeditable");
-    if (gdbMiGetStringValue(&v, root, "valuetooltip", "valuetooltipencoded"))
-        w.setValue(v);
-    if (gdbMiGetStringValue(&v, root, "value", "valueencoded"))
-        w.setValue(v);
-    // Type from context or self
-    if (ctx.childType.isEmpty()) {
-        if (gdbMiGetStringValue(&v, root, "type"))
-            w.setType(v.toUtf8());
-    } else {
-        w.setType(ctx.childType.toUtf8());
-    }
-    // child count?
-    int numChild = -1;
-    if (ctx.childNumChild >= 0) {
-        numChild = ctx.childNumChild;
-    } else {
-        gdbMiGetIntValue(&numChild, root, "numchild");
-    }
-    if (numChild >= 0)
-        w.setHasChildren(numChild > 0);
-    wl->push_back(w);
-    // Parse children with a new context
-    if (numChild == 0)
-        return;
-    const GdbMi childrenNode = root.findChild("children");
-    if (!childrenNode.isValid())
-        return;
-    const QList<GdbMi> children =childrenNode.children();
-    if (children.empty())
-        return;
-    wl->back().setChildrenUnneeded();
-    GdbMiRecursionContext nextLevelContext(ctx.type, ctx.recursionLevel + 1);
-    nextLevelContext.parentIName = w.iname;
-    gdbMiGetStringValue(&nextLevelContext.childType, root, "childtype");
-    if (!gdbMiGetIntValue(&nextLevelContext.childNumChild, root, "childnumchild"))
-        nextLevelContext.childNumChild = -1;
-    foreach (const GdbMi &child, children) {
-        gbdMiToWatchData(child, nextLevelContext, wl);
-        nextLevelContext.childIndex++;
-    }
-}
-
-bool QtDumperHelper::parseValue(const char *data, QList<WatchData> *l)
-{
-    l->clear();
-    GdbMi root;
-    // Array (CDB2)
-    if (*data == '[') {
-        root.fromString(data);
-        if (!root.isValid())
-            return false;
-        foreach(const GdbMi &child, root.children())
-            gbdMiToWatchData(child, GdbMiRecursionContext(GdbMiRecursionContext::Debugger), l);
-    } else {
-        root.fromStringMultiple(QByteArray(data));
-        if (!root.isValid())
-            return false;
-        gbdMiToWatchData(root, GdbMiRecursionContext(GdbMiRecursionContext::GdbMacrosCpp), l);
-    }
-    return true;
-}
-
 QDebug operator<<(QDebug in, const QtDumperHelper::TypeData &d)
 {
     QDebug nsp = in.nospace();
@@ -1568,7 +1300,6 @@ QDebug operator<<(QDebug in, const QtDumperHelper::TypeData &d)
     return in;
 }
 
-
 //////////////////////////////////////////////////////////////////////
 //
 // GdbMi interaction
diff --git a/src/plugins/debugger/watchutils.h b/src/plugins/debugger/watchutils.h
index 7616802cab5e667f72a3e995e0f1c0296b1fe9b6..e79a85eb84437758e14f42c3ebd9de1c0e75effc 100644
--- a/src/plugins/debugger/watchutils.h
+++ b/src/plugins/debugger/watchutils.h
@@ -175,7 +175,6 @@ public:
 
     // Complete parse of "query" (protocol 1) response from debuggee buffer.
     // 'data' excludes the leading indicator character.
-    bool parseQuery(const char *data);
     bool parseQuery(const GdbMi &data);
     // Sizes can be added as the debugger determines them
     void addSize(const QByteArray &type, int size);
@@ -183,14 +182,9 @@ public:
     // Determine the parameters required for an "evaluate" (protocol 2) call
     void evaluationParameters(const WatchData &data,
                               const TypeData &td,
-                              Debugger debugger,
                               QByteArray *inBuffer,
                               QList<QByteArray> *extraParameters) const;
 
-    // Parse the value response (protocol 2) from debuggee buffer.
-    // 'data' excludes the leading indicator character.
-    static bool parseValue(const char *data, QList<WatchData> *l);
-
     QString toString(bool debug = false) const;
 
     static QString msgDumperOutdated(double requiredVersion, double currentVersion);
@@ -200,12 +194,7 @@ private:
     typedef QMap<QByteArray, int> SizeCache;
 
     // Look up a simple (namespace) type
-    QByteArray evaluationSizeofTypeExpression(const QByteArray &typeName, Debugger d) const;
-    QByteArray qMapNodeValueOffsetExpression(const QByteArray &type,
-        const QByteArray &addressIn, Debugger debugger) const;
-
-    QByteArray lookupCdbDummyAddressExpression
-        (const QByteArray &expr, const QByteArray &address) const;
+    QByteArray evaluationSizeofTypeExpression(const QByteArray &typeName) const;
 
     NameTypeMap m_nameTypeMap;
     SizeCache m_sizeCache;
diff --git a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
index e559a184c50e80b54ea579110c8319634851ed6d..cec33a8002b11937c9fb7108d7c6cb379c3c9f35 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
@@ -47,6 +47,7 @@
 #include <debugger/debuggerplugin.h>
 #include <debugger/debuggerconstants.h>
 #include <debugger/debuggerengine.h>
+#include <debugger/debuggerstartparameters.h>
 #include <qmljsinspector/qmljsinspectorconstants.h>
 #include <qt4projectmanager/qtversionmanager.h>
 #include <qt4projectmanager/qmlobservertool.h>
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemodebugsupport.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemodebugsupport.cpp
index a80a11cf80efd15ea87bca9c9e0935158aeefee0..014bf49dfc555b73c35ab46a2034623f4ee11b07 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemodebugsupport.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemodebugsupport.cpp
@@ -42,6 +42,7 @@
 
 #include <coreplugin/ssh/sftpchannel.h>
 #include <debugger/debuggerplugin.h>
+#include <debugger/debuggerstartparameters.h>
 #include <debugger/debuggerrunner.h>
 #include <debugger/debuggerengine.h>
 
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
index 936588e5b6b0b810d82589381bfec6a523150447..5f82caa2b4a91edf587896ef050db19da9f6c6f1 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp
@@ -52,6 +52,7 @@
 #include <coreplugin/progressmanager/progressmanager.h>
 
 #include <debugger/debuggerengine.h>
+#include <debugger/debuggerstartparameters.h>
 
 #include <QtGui/QMessageBox>
 #include <QtGui/QMainWindow>
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp b/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp
index ced7efa1705ecfed181226ef55e8f93364b2b042..4607cd728556f8ce8de3ea197a9feb60ca7d8092 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp
@@ -48,6 +48,7 @@
 #include <coreplugin/icore.h>
 #include <extensionsystem/pluginmanager.h>
 #include <projectexplorer/projectexplorerconstants.h>
+#include <debugger/debuggerconstants.h>
 #include <utils/qtcassert.h>
 
 #include <QtGui/QMainWindow>