Debugger: Transform DebuggerRunParameters::useCtrlCStub

Task-number: QTCREATORBUG-29168
Change-Id: Ic576c8d0e4e2dd00e5a2577c64271cd1f82fe499
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2025-01-10 13:17:22 +01:00
parent 519446e05b
commit 473af38b14
5 changed files with 10 additions and 15 deletions

View File

@@ -141,8 +141,8 @@ public:
void addExpectedSignal(const QString &signal) { m_expectedSignals.append(signal); } void addExpectedSignal(const QString &signal) { m_expectedSignals.append(signal); }
QStringList expectedSignals() const { return m_expectedSignals; } QStringList expectedSignals() const { return m_expectedSignals; }
// For QNX debugging void setUseCtrlCStub(bool on) { m_useCtrlCStub = on; }
bool useCtrlCStub = false; bool useCtrlCStub() const { return m_useCtrlCStub; }
// Used by Android to avoid false positives on warnOnRelease // Used by Android to avoid false positives on warnOnRelease
bool skipExecutableValidation = false; bool skipExecutableValidation = false;
@@ -246,6 +246,8 @@ private:
QString m_commandsAfterConnect; // Additional commands to post after connection to debug target QString m_commandsAfterConnect; // Additional commands to post after connection to debug target
QStringList m_expectedSignals; // Used by Valgrind QStringList m_expectedSignals; // Used by Valgrind
bool m_useCtrlCStub = false; // For QNX debugging.
}; };
namespace Internal { namespace Internal {

View File

@@ -128,11 +128,6 @@ void DebuggerRunTool::setSkipExecutableValidation(bool on)
m_runParameters.skipExecutableValidation = on; m_runParameters.skipExecutableValidation = on;
} }
void DebuggerRunTool::setUseCtrlCStub(bool on)
{
m_runParameters.useCtrlCStub = on;
}
void DebuggerRunTool::setBreakOnMain(bool on) void DebuggerRunTool::setBreakOnMain(bool on)
{ {
m_runParameters.breakOnMain = on; m_runParameters.breakOnMain = on;

View File

@@ -66,7 +66,6 @@ public:
void setUseTargetAsync(bool on); void setUseTargetAsync(bool on);
void setSkipExecutableValidation(bool on); void setSkipExecutableValidation(bool on);
void setUseCtrlCStub(bool on);
void setIosPlatform(const QString &platform); void setIosPlatform(const QString &platform);
void setDeviceSymbolsRoot(const QString &deviceSymbolsRoot); void setDeviceSymbolsRoot(const QString &deviceSymbolsRoot);

View File

@@ -3827,12 +3827,11 @@ void GdbEngine::setupEngine()
CHECK_STATE(EngineSetupRequested); CHECK_STATE(EngineSetupRequested);
showMessage("TRYING TO START ADAPTER"); showMessage("TRYING TO START ADAPTER");
if (isRemoteEngine())
m_gdbProc.setUseCtrlCStub(runParameters().useCtrlCStub); // This is only set for QNX
const DebuggerRunParameters &rp = runParameters(); const DebuggerRunParameters &rp = runParameters();
CommandLine gdbCommand = rp.debugger.command; if (isRemoteEngine())
m_gdbProc.setUseCtrlCStub(rp.useCtrlCStub()); // This is only set for QNX
CommandLine gdbCommand = rp.debugger.command;
if (usesOutputCollector()) { if (usesOutputCollector()) {
if (!m_outputCollector.listen()) { if (!m_outputCollector.listen()) {
handleAdapterStartFailed(Tr::tr("Cannot set up communication with child process: %1") handleAdapterStartFailed(Tr::tr("Cannot set up communication with child process: %1")

View File

@@ -133,9 +133,10 @@ void showAttachToProcessDialog()
auto runControl = new RunControl(ProjectExplorer::Constants::DEBUG_RUN_MODE); auto runControl = new RunControl(ProjectExplorer::Constants::DEBUG_RUN_MODE);
runControl->copyDataFromRunConfiguration(runConfig); runControl->copyDataFromRunConfiguration(runConfig);
auto debugger = new DebuggerRunTool(runControl); auto debugger = new DebuggerRunTool(runControl);
DebuggerRunParameters &rp = debugger->runParameters();
debugger->setId("QnxAttachDebugSupport"); debugger->setId("QnxAttachDebugSupport");
debugger->setupPortsGatherer(); debugger->setupPortsGatherer();
debugger->setUseCtrlCStub(true); rp.setUseCtrlCStub(true);
if (debugger->isCppDebugging()) { if (debugger->isCppDebugging()) {
auto pdebugRunner = new ProcessRunner(runControl); auto pdebugRunner = new ProcessRunner(runControl);
pdebugRunner->setId("PDebugRunner"); pdebugRunner->setId("PDebugRunner");
@@ -147,7 +148,6 @@ void showAttachToProcessDialog()
debugger->addStartDependency(pdebugRunner); debugger->addStartDependency(pdebugRunner);
} }
DebuggerRunParameters &rp = debugger->runParameters();
rp.setStartMode(AttachToRemoteServer); rp.setStartMode(AttachToRemoteServer);
rp.setCloseMode(DetachAtClose); rp.setCloseMode(DetachAtClose);
rp.setSymbolFile(localExecutable); rp.setSymbolFile(localExecutable);
@@ -206,7 +206,7 @@ public:
DebuggerRunParameters &rp = debugger->runParameters(); DebuggerRunParameters &rp = debugger->runParameters();
rp.setStartMode(AttachToRemoteServer); rp.setStartMode(AttachToRemoteServer);
rp.setCloseMode(KillAtClose); rp.setCloseMode(KillAtClose);
debugger->setUseCtrlCStub(true); rp.setUseCtrlCStub(true);
rp.setSolibSearchPath(FileUtils::toFilePathList(searchPaths(k))); rp.setSolibSearchPath(FileUtils::toFilePathList(searchPaths(k)));
if (auto qtVersion = dynamic_cast<QnxQtVersion *>(QtSupport::QtKitAspect::qtVersion(k))) { if (auto qtVersion = dynamic_cast<QnxQtVersion *>(QtSupport::QtKitAspect::qtVersion(k))) {
debugger->setSysRoot(qtVersion->qnxTarget()); debugger->setSysRoot(qtVersion->qnxTarget());