aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/debuggerrunner.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2012-03-28 09:37:02 +0200
committerhjk <[email protected]>2012-03-28 10:47:06 +0200
commitf67c6dba113c337e8f45e9d7a7ff2abb6cd9201c (patch)
tree1e64bc1011d48b588b7b0d5832a81a370566278e /src/plugins/debugger/debuggerrunner.cpp
parent66cf82a45729a111f4346dbdf3cfa14fc408fa39 (diff)
debugger: prepare naive handling of multiple inferiors
Diffstat (limited to 'src/plugins/debugger/debuggerrunner.cpp')
-rw-r--r--src/plugins/debugger/debuggerrunner.cpp45
1 files changed, 32 insertions, 13 deletions
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index fcb8fc788ec..f4296747e4a 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -167,9 +167,10 @@ public:
QString displayName() const { return tr("Debugger Settings"); }
private slots:
- void useCppDebuggerToggled(bool toggled);
- void useQmlDebuggerToggled(bool toggled);
+ void useCppDebuggerToggled(bool on);
+ void useQmlDebuggerToggled(bool on);
void qmlDebugServerPortChanged(int port);
+ void useMultiProcessToggled(bool on);
public:
DebuggerRunConfigurationAspect *m_aspect; // not owned
@@ -179,6 +180,7 @@ public:
QSpinBox *m_debugServerPort;
QLabel *m_debugServerPortLabel;
QLabel *m_qmlDebuggerInfoLabel;
+ QCheckBox *m_useMultiProcess;
};
DebuggerRunConfigWidget::DebuggerRunConfigWidget(RunConfiguration *runConfiguration)
@@ -204,6 +206,12 @@ DebuggerRunConfigWidget::DebuggerRunConfigWidget(RunConfiguration *runConfigurat
m_debugServerPort->setValue(m_aspect->qmlDebugServerPort());
+ static const QByteArray env = qgetenv("QTC_DEBUGGER_MULTIPROCESS");
+ m_useMultiProcess =
+ new QCheckBox(tr("Enable Debugging of Subprocesses"), this);
+ m_useMultiProcess->setChecked(m_aspect->useMultiProcess());
+ m_useMultiProcess->setVisible(env.toInt());
+
connect(m_qmlDebuggerInfoLabel, SIGNAL(linkActivated(QString)),
Core::HelpManager::instance(), SLOT(handleHelpRequest(QString)));
connect(m_useQmlDebugger, SIGNAL(toggled(bool)),
@@ -212,6 +220,8 @@ DebuggerRunConfigWidget::DebuggerRunConfigWidget(RunConfiguration *runConfigurat
SLOT(useCppDebuggerToggled(bool)));
connect(m_debugServerPort, SIGNAL(valueChanged(int)),
SLOT(qmlDebugServerPortChanged(int)));
+ connect(m_useMultiProcess, SIGNAL(toggled(bool)),
+ SLOT(useMultiProcessToggled(bool)));
if (m_aspect->isDisplaySuppressed())
hide();
@@ -242,6 +252,7 @@ DebuggerRunConfigWidget::DebuggerRunConfigWidget(RunConfiguration *runConfigurat
layout->setMargin(0);
layout->addWidget(m_useCppDebugger);
layout->addLayout(qmlLayout);
+ layout->addWidget(m_useMultiProcess);
setLayout(layout);
}
@@ -250,25 +261,30 @@ void DebuggerRunConfigWidget::qmlDebugServerPortChanged(int port)
m_aspect->m_qmlDebugServerPort = port;
}
-void DebuggerRunConfigWidget::useCppDebuggerToggled(bool toggled)
+void DebuggerRunConfigWidget::useCppDebuggerToggled(bool on)
{
- m_aspect->m_useCppDebugger = toggled;
- if (!toggled && !m_useQmlDebugger->isChecked())
+ m_aspect->m_useCppDebugger = on;
+ if (!on && !m_useQmlDebugger->isChecked())
m_useQmlDebugger->setChecked(true);
}
-void DebuggerRunConfigWidget::useQmlDebuggerToggled(bool toggled)
+void DebuggerRunConfigWidget::useQmlDebuggerToggled(bool on)
{
- m_debugServerPort->setEnabled(toggled);
- m_debugServerPortLabel->setEnabled(toggled);
+ m_debugServerPort->setEnabled(on);
+ m_debugServerPortLabel->setEnabled(on);
- m_aspect->m_useQmlDebugger = toggled
+ m_aspect->m_useQmlDebugger = on
? DebuggerRunConfigurationAspect::EnableQmlDebugger
: DebuggerRunConfigurationAspect::DisableQmlDebugger;
- if (!toggled && !m_useCppDebugger->isChecked())
+ if (!on && !m_useCppDebugger->isChecked())
m_useCppDebugger->setChecked(true);
}
+void DebuggerRunConfigWidget::useMultiProcessToggled(bool on)
+{
+ m_aspect->m_useMultiProcess = on;
+}
+
////////////////////////////////////////////////////////////////////////
//
// DebuggerRunControlPrivate
@@ -900,12 +916,15 @@ static DebuggerStartParameters localStartParameters(RunConfiguration *runConfigu
}
}
- if (runConfiguration->debuggerAspect()->useCppDebugger())
+ DebuggerRunConfigurationAspect *aspect = runConfiguration->debuggerAspect();
+ sp.multiProcess = aspect->useMultiProcess();
+
+ if (aspect->useCppDebugger())
sp.languages |= CppLanguage;
- if (runConfiguration->debuggerAspect()->useQmlDebugger()) {
+ if (aspect->useQmlDebugger()) {
sp.qmlServerAddress = _("127.0.0.1");
- sp.qmlServerPort = runConfiguration->debuggerAspect()->qmlDebugServerPort();
+ sp.qmlServerPort = aspect->qmlDebugServerPort();
sp.languages |= QmlLanguage;
// Makes sure that all bindings go through the JavaScript engine, so that