Debugger: Transform a few fields of DebuggerRunParameters

Transform interpreter and mainScript.

Task-number: QTCREATORBUG-29168
Change-Id: Ic2fa64b1f7fa7ba3958885a0f451d833cd3f12e9
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2025-01-13 17:10:28 +01:00
parent c1fcd7fb3a
commit 8bb1fc5764
4 changed files with 18 additions and 13 deletions

View File

@@ -215,9 +215,9 @@ void PyDapEngine::setupEngine()
{ {
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
Utils::FilePath interpreter = runParameters().interpreter; Utils::FilePath interpreter = runParameters().interpreter();
const FilePath scriptFile = runParameters().mainScript; const FilePath scriptFile = runParameters().mainScript();
if (!scriptFile.isReadableFile()) { if (!scriptFile.isReadableFile()) {
MessageManager::writeDisrupting( MessageManager::writeDisrupting(
"Python Error" + QString("Cannot open script file %1").arg(scriptFile.toUserOutput())); "Python Error" + QString("Cannot open script file %1").arg(scriptFile.toUserOutput()));
@@ -234,11 +234,11 @@ void PyDapEngine::setupEngine()
info.addCustomButton(Tr::tr("Install debugpy"), [this] { info.addCustomButton(Tr::tr("Install debugpy"), [this] {
Core::ICore::infoBar()->removeInfo(installDebugPyInfoBarId); Core::ICore::infoBar()->removeInfo(installDebugPyInfoBarId);
Core::ICore::infoBar()->globallySuppressInfo(installDebugPyInfoBarId); Core::ICore::infoBar()->globallySuppressInfo(installDebugPyInfoBarId);
const FilePath target = packageDir(runParameters().interpreter, "debugpy"); const FilePath target = packageDir(runParameters().interpreter(), "debugpy");
QTC_ASSERT(target.isSameDevice(runParameters().interpreter), return); QTC_ASSERT(target.isSameDevice(runParameters().interpreter()), return);
m_installProcess.reset(new Process); m_installProcess.reset(new Process);
m_installProcess->setCommand( m_installProcess->setCommand(
{runParameters().interpreter, {runParameters().interpreter(),
{"-m", {"-m",
"pip", "pip",
"install", "install",

View File

@@ -221,9 +221,11 @@ public:
void setApplicationMainThreadId(qint64 threadId) { m_applicationMainThreadId = threadId; } void setApplicationMainThreadId(qint64 threadId) { m_applicationMainThreadId = threadId; }
qint64 applicationMainThreadId() const { return m_applicationMainThreadId; } qint64 applicationMainThreadId() const { return m_applicationMainThreadId; }
// Used by Script debugging void setInterpreter(const Utils::FilePath &path) { m_interpreter = path; }
Utils::FilePath interpreter; Utils::FilePath interpreter() const { return m_interpreter; }
Utils::FilePath mainScript;
void setMainScript(const Utils::FilePath &path) { m_mainScript = path; }
Utils::FilePath mainScript() const { return m_mainScript; }
// Used by AttachCrashedExternal. // Used by AttachCrashedExternal.
QString crashParameter; QString crashParameter;
@@ -325,6 +327,9 @@ private:
qint64 m_applicationPid = 0; // Terminal qint64 m_applicationPid = 0; // Terminal
qint64 m_applicationMainThreadId = 0; // Terminal qint64 m_applicationMainThreadId = 0; // Terminal
Utils::FilePath m_interpreter; // Used by Script debugging
Utils::FilePath m_mainScript; // Used by Script debugging
}; };
namespace Internal { namespace Internal {

View File

@@ -259,7 +259,7 @@ void DebuggerRunTool::continueAfterTerminalStart()
// User canceled input dialog asking for executable when working on library project. // User canceled input dialog asking for executable when working on library project.
if (m_runParameters.startMode() == StartInternal if (m_runParameters.startMode() == StartInternal
&& m_runParameters.inferior().command.isEmpty() && m_runParameters.inferior().command.isEmpty()
&& m_runParameters.interpreter.isEmpty()) { && m_runParameters.interpreter().isEmpty()) {
reportFailure(Tr::tr("No executable specified.")); reportFailure(Tr::tr("No executable specified."));
return; return;
} }
@@ -362,8 +362,8 @@ void DebuggerRunTool::continueAfterDebugServerStart()
const FilePath mainScript = mainScriptAspect->filePath; const FilePath mainScript = mainScriptAspect->filePath;
const FilePath interpreter = interpreterAspect->filePath; const FilePath interpreter = interpreterAspect->filePath;
if (!interpreter.isEmpty() && mainScript.endsWith(".py")) { if (!interpreter.isEmpty() && mainScript.endsWith(".py")) {
m_runParameters.mainScript = mainScript; m_runParameters.setMainScript(mainScript);
m_runParameters.interpreter = interpreter; m_runParameters.setInterpreter(interpreter);
} }
} }
} }

View File

@@ -95,7 +95,7 @@ void PdbEngine::setupEngine()
{ {
QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state()); QTC_ASSERT(state() == EngineSetupRequested, qDebug() << state());
m_interpreter = runParameters().interpreter; m_interpreter = runParameters().interpreter();
const FilePath bridge = ICore::resourcePath("debugger/pdbbridge.py"); const FilePath bridge = ICore::resourcePath("debugger/pdbbridge.py");
connect(&m_proc, &Process::started, this, &PdbEngine::handlePdbStarted); connect(&m_proc, &Process::started, this, &PdbEngine::handlePdbStarted);
@@ -103,7 +103,7 @@ void PdbEngine::setupEngine()
connect(&m_proc, &Process::readyReadStandardOutput, this, &PdbEngine::readPdbStandardOutput); connect(&m_proc, &Process::readyReadStandardOutput, this, &PdbEngine::readPdbStandardOutput);
connect(&m_proc, &Process::readyReadStandardError, this, &PdbEngine::readPdbStandardError); connect(&m_proc, &Process::readyReadStandardError, this, &PdbEngine::readPdbStandardError);
const FilePath scriptFile = runParameters().mainScript; const FilePath scriptFile = runParameters().mainScript();
if (!scriptFile.isReadableFile()) { if (!scriptFile.isReadableFile()) {
AsynchronousMessageBox::critical(Tr::tr("Python Error"), AsynchronousMessageBox::critical(Tr::tr("Python Error"),
QString("Cannot open script file %1") QString("Cannot open script file %1")