forked from qt-creator/qt-creator
Debugger: Also move is{Cpp,Qml}Debugging() to DebuggerRunParameters
Change-Id: Ic318c5813316da66097c8438ec26602491b4f863 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -105,7 +105,7 @@ public:
|
||||
rp.setUseTargetAsync(true);
|
||||
}
|
||||
|
||||
if (isCppDebugging()) {
|
||||
if (rp.isCppDebugging()) {
|
||||
qCDebug(androidDebugSupportLog) << "C++ debugging enabled";
|
||||
const ProjectNode *node = target->project()->findNodeForBuildKey(runControl->buildKey());
|
||||
FilePaths solibSearchPath = getSoLibSearchPath(node);
|
||||
@@ -147,7 +147,7 @@ public:
|
||||
qCDebug(androidDebugSupportLog).noquote() << "Sysroot: " << sysRoot.toUserOutput();
|
||||
}
|
||||
}
|
||||
if (isQmlDebugging()) {
|
||||
if (rp.isQmlDebugging()) {
|
||||
qCDebug(androidDebugSupportLog) << "QML debugging enabled. QML server: "
|
||||
<< runControl->qmlChannel().toDisplayString();
|
||||
//TODO: Not sure if these are the right paths.
|
||||
@@ -170,7 +170,7 @@ void AndroidDebugSupport::start()
|
||||
{
|
||||
DebuggerRunParameters &rp = runParameters();
|
||||
rp.setAttachPid(m_runner->pid());
|
||||
if (isCppDebugging()) {
|
||||
if (rp.isCppDebugging()) {
|
||||
if (cppEngineType() == LldbEngineType) {
|
||||
QString deviceSerialNumber = Internal::deviceSerialNumber(runControl()->target());
|
||||
const int colonPos = deviceSerialNumber.indexOf(QLatin1Char(':'));
|
||||
@@ -187,7 +187,7 @@ void AndroidDebugSupport::start()
|
||||
rp.setRemoteChannel(debugServer);
|
||||
}
|
||||
}
|
||||
if (isQmlDebugging())
|
||||
if (rp.isQmlDebugging())
|
||||
rp.setQmlServer(runControl()->qmlChannel());
|
||||
DebuggerRunTool::start();
|
||||
}
|
||||
|
@@ -148,7 +148,7 @@ DebuggerRunParameters DebuggerRunParameters::fromRunControl(ProjectExplorer::Run
|
||||
if (auto aspect = runControl->aspectData<DebuggerRunConfigurationAspect>()) {
|
||||
if (!aspect->useCppDebugger)
|
||||
params.cppEngineType = NoEngineType;
|
||||
params.isQmlDebugging = aspect->useQmlDebugger;
|
||||
params.m_isQmlDebugging = aspect->useQmlDebugger;
|
||||
params.isPythonDebugging = aspect->usePythonDebugger;
|
||||
params.multiProcess = aspect->useMultiProcess;
|
||||
params.additionalStartupCommands = aspect->overrideStartup;
|
||||
@@ -226,7 +226,7 @@ Result DebuggerRunParameters::fixupParameters(ProjectExplorer::RunControl *runCo
|
||||
if (!validationErrors.isEmpty())
|
||||
return Result::Error(validationErrors.join('\n'));
|
||||
|
||||
if (isQmlDebugging) {
|
||||
if (m_isQmlDebugging) {
|
||||
const auto device = runControl->device();
|
||||
if (device && device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) {
|
||||
if (m_qmlServer.port() <= 0) {
|
||||
@@ -253,7 +253,7 @@ Result DebuggerRunParameters::fixupParameters(ProjectExplorer::RunControl *runCo
|
||||
}
|
||||
}
|
||||
|
||||
if (isQmlDebugging) {
|
||||
if (m_isQmlDebugging) {
|
||||
QmlDebugServicesPreset service;
|
||||
if (isCppDebugging()) {
|
||||
if (nativeMixedEnabled) {
|
||||
@@ -310,7 +310,7 @@ void DebuggerRunParameters::setStartMode(DebuggerStartMode startMode)
|
||||
return;
|
||||
|
||||
cppEngineType = NoEngineType;
|
||||
isQmlDebugging = true;
|
||||
m_isQmlDebugging = true;
|
||||
m_closeMode = KillAtClose;
|
||||
|
||||
// FIXME: This is horribly wrong.
|
||||
@@ -346,7 +346,7 @@ bool DebuggerRunParameters::isCppDebugging() const
|
||||
|
||||
bool DebuggerRunParameters::isNativeMixedDebugging() const
|
||||
{
|
||||
return nativeMixedEnabled && isCppDebugging() && isQmlDebugging;
|
||||
return nativeMixedEnabled && isCppDebugging() && m_isQmlDebugging;
|
||||
}
|
||||
|
||||
namespace Internal {
|
||||
@@ -2899,7 +2899,7 @@ QString DebuggerEngine::formatStartParameters() const
|
||||
str << "Languages: ";
|
||||
if (sp.isCppDebugging())
|
||||
str << "c++ ";
|
||||
if (sp.isQmlDebugging)
|
||||
if (sp.isQmlDebugging())
|
||||
str << "qml";
|
||||
str << '\n';
|
||||
if (!sp.inferior().command.isEmpty()) {
|
||||
|
@@ -109,6 +109,9 @@ public:
|
||||
void setQmlServer(const QUrl &qmlServer) { m_qmlServer = qmlServer; }
|
||||
QUrl qmlServer() const { return m_qmlServer; }
|
||||
|
||||
bool isQmlDebugging() const { return m_isQmlDebugging; }
|
||||
void setQmlDebugging(bool on) { m_isQmlDebugging = on; }
|
||||
|
||||
void setRemoteChannel(const QString &channel) { m_remoteChannel = channel; }
|
||||
void setRemoteChannel(const QUrl &url) {
|
||||
m_remoteChannel = QString("%1:%2").arg(url.host()).arg(url.port());
|
||||
@@ -176,7 +179,6 @@ public:
|
||||
DebuggerEngineType cppEngineType = NoEngineType;
|
||||
QString version;
|
||||
|
||||
bool isQmlDebugging = false;
|
||||
bool isPythonDebugging = false;
|
||||
bool breakOnMain = false;
|
||||
bool multiProcess = false; // Whether to set detach-on-fork off.
|
||||
@@ -244,6 +246,7 @@ private:
|
||||
Utils::FilePaths m_solibSearchPath;
|
||||
|
||||
QUrl m_qmlServer; // Used by Qml debugging.
|
||||
bool m_isQmlDebugging = false;
|
||||
|
||||
QString m_remoteChannel; // Used by general remote debugging.
|
||||
bool m_useExtendedRemote = false; // Whether to use GDB's target extended-remote or not.
|
||||
|
@@ -281,7 +281,7 @@ void DebuggerRunTool::continueAfterTerminalStart()
|
||||
if (runControl()->usesQmlChannel()) {
|
||||
m_runParameters.setQmlServer(runControl()->qmlChannel());
|
||||
if (d->addQmlServerInferiorCommandLineArgumentIfNeeded
|
||||
&& m_runParameters.isQmlDebugging
|
||||
&& m_runParameters.isQmlDebugging()
|
||||
&& m_runParameters.isCppDebugging()) {
|
||||
|
||||
int qmlServerPort = m_runParameters.qmlServer().port();
|
||||
@@ -373,7 +373,7 @@ void DebuggerRunTool::continueAfterDebugServerStart()
|
||||
m_engines << createUvscEngine();
|
||||
break;
|
||||
default:
|
||||
if (!m_runParameters.isQmlDebugging) {
|
||||
if (!m_runParameters.isQmlDebugging()) {
|
||||
reportFailure(noEngineMessage() + '\n' +
|
||||
Tr::tr("Specify Debugger settings in Projects > Run."));
|
||||
return;
|
||||
@@ -386,7 +386,7 @@ void DebuggerRunTool::continueAfterDebugServerStart()
|
||||
if (m_runParameters.isPythonDebugging)
|
||||
m_engines << createPdbEngine();
|
||||
|
||||
if (m_runParameters.isQmlDebugging)
|
||||
if (m_runParameters.isQmlDebugging())
|
||||
m_engines << createQmlEngine();
|
||||
}
|
||||
|
||||
@@ -558,22 +558,12 @@ void DebuggerRunTool::handleEngineFinished(DebuggerEngine *engine)
|
||||
}
|
||||
}
|
||||
|
||||
bool DebuggerRunTool::isCppDebugging() const
|
||||
{
|
||||
return m_runParameters.isCppDebugging();
|
||||
}
|
||||
|
||||
bool DebuggerRunTool::isQmlDebugging() const
|
||||
{
|
||||
return m_runParameters.isQmlDebugging;
|
||||
}
|
||||
|
||||
void DebuggerRunTool::setupPortsGatherer()
|
||||
{
|
||||
if (isCppDebugging())
|
||||
if (m_runParameters.isCppDebugging())
|
||||
runControl()->requestDebugChannel();
|
||||
|
||||
if (isQmlDebugging())
|
||||
if (m_runParameters.isQmlDebugging())
|
||||
runControl()->requestQmlChannel();
|
||||
}
|
||||
|
||||
|
@@ -47,14 +47,9 @@ public:
|
||||
void kickoffTerminalProcess();
|
||||
void interruptTerminal();
|
||||
|
||||
DebuggerRunParameters &runParameters() { return m_runParameters; }
|
||||
|
||||
void addQmlServerInferiorCommandLineArgumentIfNeeded();
|
||||
void setupPortsGatherer();
|
||||
|
||||
bool isCppDebugging() const;
|
||||
bool isQmlDebugging() const;
|
||||
|
||||
void modifyDebuggerEnvironment(const Utils::EnvironmentItems &item);
|
||||
|
||||
void setDeviceUuid(const QString &uuid);
|
||||
@@ -63,6 +58,8 @@ public:
|
||||
|
||||
DebuggerEngineType cppEngineType() const;
|
||||
|
||||
DebuggerRunParameters &runParameters() { return m_runParameters; }
|
||||
|
||||
private:
|
||||
void showMessage(const QString &msg, int channel = LogDebug, int timeout = -1);
|
||||
|
||||
|
@@ -907,21 +907,21 @@ IosDebugSupport::IosDebugSupport(RunControl *runControl)
|
||||
setId("IosDebugSupport");
|
||||
|
||||
IosDevice::ConstPtr dev = std::dynamic_pointer_cast<const IosDevice>(device());
|
||||
DebuggerRunParameters &rp = runParameters();
|
||||
|
||||
if (dev->type() == Ios::Constants::IOS_SIMULATOR_TYPE
|
||||
|| dev->handler() == IosDevice::Handler::IosTool) {
|
||||
m_iosRunner = new IosRunner(runControl);
|
||||
m_iosRunner->setCppDebugging(isCppDebugging());
|
||||
m_iosRunner->setQmlDebugging(isQmlDebugging() ? QmlDebuggerServices : NoQmlDebugServices);
|
||||
m_iosRunner->setCppDebugging(rp.isCppDebugging());
|
||||
m_iosRunner->setQmlDebugging(rp.isQmlDebugging() ? QmlDebuggerServices : NoQmlDebugServices);
|
||||
addStartDependency(m_iosRunner);
|
||||
} else {
|
||||
QTC_CHECK(isCppDebugging());
|
||||
QTC_CHECK(rp.isCppDebugging());
|
||||
m_deviceCtlRunner = new DeviceCtlRunner(runControl);
|
||||
m_deviceCtlRunner->setStartStopped(true);
|
||||
addStartDependency(m_deviceCtlRunner);
|
||||
}
|
||||
|
||||
DebuggerRunParameters &rp = runParameters();
|
||||
if (device()->type() == Ios::Constants::IOS_DEVICE_TYPE) {
|
||||
if (dev->handler() == IosDevice::Handler::DeviceCtl) {
|
||||
QTC_CHECK(IosDeviceManager::isDeviceCtlDebugSupported());
|
||||
@@ -957,12 +957,12 @@ void IosDebugSupport::start()
|
||||
const auto msgOnlyCppDebuggingSupported = [] {
|
||||
return Tr::tr("Only C++ debugging is supported for devices with iOS 17 and later.");
|
||||
};
|
||||
if (!isCppDebugging()) {
|
||||
if (!rp.isCppDebugging()) {
|
||||
reportFailure(msgOnlyCppDebuggingSupported());
|
||||
return;
|
||||
}
|
||||
if (isQmlDebugging()) {
|
||||
runParameters().isQmlDebugging = false;
|
||||
if (rp.isQmlDebugging()) {
|
||||
rp.setQmlDebugging(false);
|
||||
appendMessage(msgOnlyCppDebuggingSupported(), OutputFormat::LogMessageFormat, true);
|
||||
}
|
||||
rp.setAttachPid(m_deviceCtlRunner->processIdentifier());
|
||||
@@ -980,8 +980,8 @@ void IosDebugSupport::start()
|
||||
const Port qmlServerPort = m_iosRunner->qmlServerPort();
|
||||
rp.setAttachPid(m_iosRunner->pid());
|
||||
|
||||
const bool cppDebug = isCppDebugging();
|
||||
const bool qmlDebug = isQmlDebugging();
|
||||
const bool cppDebug = rp.isCppDebugging();
|
||||
const bool qmlDebug = rp.isQmlDebugging();
|
||||
if (cppDebug) {
|
||||
rp.setInferiorExecutable(data->localExecutable);
|
||||
rp.setRemoteChannel("connect://localhost:" + gdbServerPort.toString());
|
||||
|
@@ -137,7 +137,7 @@ void showAttachToProcessDialog()
|
||||
debugger->setId("QnxAttachDebugSupport");
|
||||
debugger->setupPortsGatherer();
|
||||
rp.setUseCtrlCStub(true);
|
||||
if (debugger->isCppDebugging()) {
|
||||
if (rp.isCppDebugging()) {
|
||||
auto pdebugRunner = new ProcessRunner(runControl);
|
||||
pdebugRunner->setId("PDebugRunner");
|
||||
pdebugRunner->setStartModifier([pdebugRunner, runControl] {
|
||||
|
@@ -156,10 +156,10 @@ private:
|
||||
rp.setStartMode(Debugger::AttachToRemoteServer);
|
||||
rp.setCloseMode(Debugger::KillAndExitMonitorAtClose);
|
||||
|
||||
if (isQmlDebugging())
|
||||
if (rp.isQmlDebugging())
|
||||
rp.setQmlServer(runControl()->qmlChannel());
|
||||
|
||||
if (isCppDebugging()) {
|
||||
if (rp.isCppDebugging()) {
|
||||
rp.setUseExtendedRemote(false);
|
||||
rp.setUseContinueInsteadOfRun(true);
|
||||
rp.setContinueAfterAttach(true);
|
||||
|
Reference in New Issue
Block a user