Debugger: Merge debug mode and analyze mode

On the user-visible side, only the 'Analyze' mode button disappears,
and instead a combobox to switch between different tools in appears
in the Debug mode toolbar.

Internally, that's quite some re-organzition: The centralized
'Analyze mode is busy' flag is gone, allowing us to run e.g.
ClangStaticAnalyzer and MemCheck in parallel.

Analyzer tools and debugger now share the same mechanism to
generate/load/save dock widgets.

Analyzer tools now create and handle their own start/stop button
when appropriate. In general, Analyzer tools can create/handle more
than one run control at a time.

Further consolidation is possible, e.g. RunControl state handling
could be merged into the base ProjectExplorer::RunControl to
avoid the still existing duplication in ~15 instances.

Change-Id: I91e5940ebc4211f98056d507cf2f7b5f8efe7f07
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
hjk
2016-03-02 13:57:37 +01:00
parent c326011feb
commit 92e301a054
79 changed files with 2135 additions and 2642 deletions

View File

@@ -56,7 +56,7 @@
#include <io.h>
#endif
using namespace Analyzer;
using namespace Debugger;
using namespace ProjectExplorer;
namespace Ios {

View File

@@ -33,7 +33,7 @@
#include <QProcess>
#include <QObject>
namespace Analyzer { class AnalyzerRunControl; }
namespace Debugger { class AnalyzerRunControl; }
namespace Ios {
namespace Internal {
@@ -47,7 +47,7 @@ class IosAnalyzeSupport : public QObject
public:
IosAnalyzeSupport(IosRunConfiguration *runConfig,
Analyzer::AnalyzerRunControl *runControl, bool cppDebug, bool qmlDebug);
Debugger::AnalyzerRunControl *runControl, bool cppDebug, bool qmlDebug);
~IosAnalyzeSupport();
private:
@@ -59,7 +59,7 @@ private:
void handleRemoteOutput(const QString &output);
void handleRemoteErrorOutput(const QString &output);
Analyzer::AnalyzerRunControl *m_runControl;
Debugger::AnalyzerRunControl *m_runControl;
IosRunner * const m_runner;
QmlDebug::QmlOutputParser m_outputParser;
int m_qmlPort;

View File

@@ -48,7 +48,7 @@
#include <qtsupport/qtsupportconstants.h>
#include <coreplugin/id.h>
using namespace Analyzer;
using namespace Debugger;
using namespace ProjectExplorer;
using namespace QmakeProjectManager;
@@ -190,7 +190,7 @@ RunControl *IosRunControlFactory::create(RunConfiguration *runConfig,
if (mode == ProjectExplorer::Constants::NORMAL_RUN_MODE)
res = new Ios::Internal::IosRunControl(rc);
else if (mode == ProjectExplorer::Constants::QML_PROFILER_RUN_MODE) {
AnalyzerRunControl *runControl = AnalyzerManager::createRunControl(runConfig, mode);
AnalyzerRunControl *runControl = Debugger::createAnalyzerRunControl(runConfig, mode);
QTC_ASSERT(runControl, return 0);
IDevice::ConstPtr device = DeviceKitInformation::device(target->kit());
if (device.isNull())