Debugger: Add toolchain combos to start dialogs, refactor detection.

Add combo box listing toolchains with debuggers to start external,
attach and core.
Another attempt at streamlining engine detection:
Split in detection functions that first collect a list of
available engines by preference, then remove disabled and
wrongly configured engines and use the remaining best.
matching. checkconfiguration is now the central place where
engine detection and config check takes place.

Rubber-stamped-by: hjk
This commit is contained in:
Friedemann Kleint
2011-02-24 16:50:15 +01:00
parent 93b3c8bbd2
commit 75f4b9cf25
23 changed files with 1053 additions and 537 deletions

View File

@@ -35,11 +35,13 @@
#define DEBUGGERRUNNER_H
#include "debugger_global.h"
#include "debuggerconstants.h"
#include <projectexplorer/abi.h>
#include <projectexplorer/runconfiguration.h>
#include <QtCore/QScopedPointer>
#include <QtCore/QPair>
namespace Utils {
class Environment;
@@ -59,16 +61,16 @@ class DebuggerRunControlFactory;
class DEBUGGER_EXPORT ConfigurationCheck
{
public:
ConfigurationCheck() {}
operator bool() const { return errorMessage.isEmpty(); }
ConfigurationCheck();
operator bool() const;
public:
QString errorMessage;
QString settingsCategory;
QString settingsPage;
QPair<DebuggerEngineType, DebuggerEngineType> masterSlaveEngineTypes;
};
DEBUGGER_EXPORT ConfigurationCheck checkDebugConfiguration(const ProjectExplorer::Abi &abi);
DEBUGGER_EXPORT ConfigurationCheck checkDebugConfiguration(const DebuggerStartParameters &sp);
// This is a job description containing all data "local" to the jobs, including
// the models of the individual debugger views.
@@ -79,8 +81,10 @@ class DEBUGGER_EXPORT DebuggerRunControl
public:
typedef ProjectExplorer::RunConfiguration RunConfiguration;
DebuggerRunControl(RunConfiguration *runConfiguration,
const DebuggerStartParameters &sp);
explicit DebuggerRunControl(RunConfiguration *runConfiguration,
const DebuggerStartParameters &sp,
const QPair<DebuggerEngineType, DebuggerEngineType> &masterSlaveEngineTypes);
~DebuggerRunControl();
// ProjectExplorer::RunControl