From d5bacfc087daed9d869999986ee5bb6502ff63a7 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 24 Aug 2022 14:55:12 +0200 Subject: [PATCH] Debugger: Use qtcEnvironmentVariable* instead of qEnvironmentVariable* And instead of qgetenv. Takes Qt Creator's setting at "Environment > System > Environment" into account, which makes it easier on some platforms to set them (e.g. macOS), can be configured differently in different settings paths, and potentially can be changed at runtime (depending on usage). Change-Id: I3ea7623fb528e13a202afa2f89b00e5ee83962d8 Reviewed-by: Qt CI Bot Reviewed-by: David Schulz --- src/plugins/debugger/breakpoint.cpp | 3 ++- src/plugins/debugger/cdb/cdbengine.cpp | 12 +++++------- src/plugins/debugger/debuggeritemmanager.cpp | 8 +++----- .../debugger/debuggerrunconfigurationaspect.cpp | 3 ++- src/plugins/debugger/debuggerruncontrol.cpp | 7 ++++--- src/plugins/debugger/gdb/gdbengine.cpp | 8 +++++--- src/plugins/debugger/lldb/lldbengine.cpp | 3 ++- src/plugins/debugger/pdb/pdbengine.cpp | 3 ++- src/plugins/debugger/terminal.cpp | 3 ++- 9 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/plugins/debugger/breakpoint.cpp b/src/plugins/debugger/breakpoint.cpp index 730f15b7172..94406bdb8fd 100644 --- a/src/plugins/debugger/breakpoint.cpp +++ b/src/plugins/debugger/breakpoint.cpp @@ -7,6 +7,7 @@ #include +#include #include #include #include @@ -130,7 +131,7 @@ bool BreakpointParameters::isQmlFileAndLineBreakpoint() const if (type != BreakpointByFileAndLine) return false; - QString qmlExtensionString = QString::fromLocal8Bit(qgetenv("QTC_QMLDEBUGGER_FILEEXTENSIONS")); + QString qmlExtensionString = Utils::qtcEnvironmentVariable("QTC_QMLDEBUGGER_FILEEXTENSIONS"); if (qmlExtensionString.isEmpty()) qmlExtensionString = ".qml;.js;.mjs"; diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp index 7b2a2f56fb3..61ee6c9180a 100644 --- a/src/plugins/debugger/cdb/cdbengine.cpp +++ b/src/plugins/debugger/cdb/cdbengine.cpp @@ -42,6 +42,7 @@ #include #include +#include #include #include #include @@ -421,12 +422,9 @@ void CdbEngine::setupEngine() static const char cdbExtensionPathVariableC[] = "_NT_DEBUGGER_EXTENSION_PATH"; inferiorEnvironment.prependOrSet(cdbExtensionPathVariableC, extensionFi.absolutePath(), {";"}); - const QByteArray oldCdbExtensionPath = qgetenv(cdbExtensionPathVariableC); - if (!oldCdbExtensionPath.isEmpty()) { - inferiorEnvironment.appendOrSet(cdbExtensionPathVariableC, - QString::fromLocal8Bit(oldCdbExtensionPath), - {";"}); - } + const QString oldCdbExtensionPath = qtcEnvironmentVariable(cdbExtensionPathVariableC); + if (!oldCdbExtensionPath.isEmpty()) + inferiorEnvironment.appendOrSet(cdbExtensionPathVariableC, oldCdbExtensionPath, {";"}); m_process.setEnvironment(inferiorEnvironment); if (!sp.inferior.workingDirectory.isEmpty()) @@ -1051,7 +1049,7 @@ void CdbEngine::doUpdateLocals(const UpdateParameters &updateParameters) watchHandler()->appendFormatRequests(&cmd); watchHandler()->appendWatchersAndTooltipRequests(&cmd); - const static bool alwaysVerbose = qEnvironmentVariableIsSet("QTC_DEBUGGER_PYTHON_VERBOSE"); + const bool alwaysVerbose = qtcEnvironmentVariableIsSet("QTC_DEBUGGER_PYTHON_VERBOSE"); cmd.arg("passexceptions", alwaysVerbose); cmd.arg("fancy", s.useDebuggingHelpers.value()); cmd.arg("autoderef", s.autoDerefPointers.value()); diff --git a/src/plugins/debugger/debuggeritemmanager.cpp b/src/plugins/debugger/debuggeritemmanager.cpp index 34313aca602..b8892409e99 100644 --- a/src/plugins/debugger/debuggeritemmanager.cpp +++ b/src/plugins/debugger/debuggeritemmanager.cpp @@ -592,11 +592,9 @@ void DebuggerItemManagerPrivate::autoDetectCdbDebuggers() { FilePaths cdbs; - const QStringList programDirs = { - QString::fromLocal8Bit(qgetenv("ProgramFiles")), - QString::fromLocal8Bit(qgetenv("ProgramFiles(x86)")), - QString::fromLocal8Bit(qgetenv("ProgramW6432")) - }; + const QStringList programDirs = {qtcEnvironmentVariable("ProgramFiles"), + qtcEnvironmentVariable("ProgramFiles(x86)"), + qtcEnvironmentVariable("ProgramW6432")}; QFileInfoList kitFolders; diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp index ccc3a9d7bd8..311e268de91 100644 --- a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp +++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp @@ -20,6 +20,7 @@ #include +#include #include #include @@ -156,7 +157,7 @@ DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect(Target *target) builder.addRow(m_qmlAspect); builder.addRow(m_overrideStartupAspect); - static const QByteArray env = qgetenv("QTC_DEBUGGER_MULTIPROCESS"); + static const QString env = qtcEnvironmentVariable("QTC_DEBUGGER_MULTIPROCESS"); if (env.toInt()) builder.addRow(m_multiProcessAspect); return builder.emerge(Layouting::WithoutMargins); diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index 86cb83871a9..1bdbdc314ef 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -891,9 +892,9 @@ DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerm setUseTerminal(allowTerminal == DoAllowTerminal && m_runParameters.useTerminal); - const QByteArray envBinary = qgetenv("QTC_DEBUGGER_PATH"); + const QString envBinary = qtcEnvironmentVariable("QTC_DEBUGGER_PATH"); if (!envBinary.isEmpty()) - m_runParameters.debugger.command.setExecutable(FilePath::fromString(QString::fromLocal8Bit(envBinary))); + m_runParameters.debugger.command.setExecutable(FilePath::fromString(envBinary)); if (Project *project = runControl->project()) { m_runParameters.projectSourceDirectory = project->projectDirectory(); @@ -903,7 +904,7 @@ DebuggerRunTool::DebuggerRunTool(RunControl *runControl, AllowTerminal allowTerm m_runParameters.toolChainAbi = ToolChainKitAspect::targetAbi(kit); bool ok = false; - const int nativeMixedOverride = qEnvironmentVariableIntValue("QTC_DEBUGGER_NATIVE_MIXED", &ok); + const int nativeMixedOverride = qtcEnvironmentVariableIntValue("QTC_DEBUGGER_NATIVE_MIXED", &ok); if (ok) m_runParameters.nativeMixedEnabled = bool(nativeMixedOverride); diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index eb77a9034d7..65f692dfe58 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -37,6 +37,7 @@ #include #include +#include #include #include #include @@ -2599,7 +2600,8 @@ void GdbEngine::insertBreakpoint(const Breakpoint &bp) } // for dumping of expressions - const static bool alwaysVerbose = qEnvironmentVariableIsSet("QTC_DEBUGGER_PYTHON_VERBOSE"); + const bool alwaysVerbose = qtcEnvironmentVariableIsSet( + "QTC_DEBUGGER_PYTHON_VERBOSE"); const DebuggerSettings &s = *debuggerSettings(); cmd.arg("passexceptions", alwaysVerbose); cmd.arg("fancy", s.useDebuggingHelpers.value()); @@ -3810,7 +3812,7 @@ void GdbEngine::setupEngine() gdbCommand.addArg("--tty=" + m_outputCollector.serverName()); } - const QStringList testList = QString::fromLocal8Bit(qgetenv("QTC_DEBUGGER_TESTS")).split(','); + const QStringList testList = qtcEnvironmentVariable("QTC_DEBUGGER_TESTS").split(','); for (const QString &test : testList) m_testCases.insert(test.toInt()); for (int test : qAsConst(m_testCases)) @@ -5044,7 +5046,7 @@ void GdbEngine::doUpdateLocals(const UpdateParameters ¶ms) watchHandler()->appendFormatRequests(&cmd); watchHandler()->appendWatchersAndTooltipRequests(&cmd); - const static bool alwaysVerbose = qEnvironmentVariableIsSet("QTC_DEBUGGER_PYTHON_VERBOSE"); + const bool alwaysVerbose = qtcEnvironmentVariableIsSet("QTC_DEBUGGER_PYTHON_VERBOSE"); const DebuggerSettings &s = *debuggerSettings(); cmd.arg("passexceptions", alwaysVerbose); cmd.arg("fancy", s.useDebuggingHelpers.value()); diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 2d880ed9b4d..20040262391 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -28,6 +28,7 @@ #include #include +#include #include #include #include @@ -729,7 +730,7 @@ void LldbEngine::doUpdateLocals(const UpdateParameters ¶ms) watchHandler()->appendFormatRequests(&cmd); watchHandler()->appendWatchersAndTooltipRequests(&cmd); - const static bool alwaysVerbose = qEnvironmentVariableIsSet("QTC_DEBUGGER_PYTHON_VERBOSE"); + const bool alwaysVerbose = qtcEnvironmentVariableIsSet("QTC_DEBUGGER_PYTHON_VERBOSE"); const DebuggerSettings &s = *debuggerSettings(); cmd.arg("passexceptions", alwaysVerbose); cmd.arg("fancy", s.useDebuggingHelpers.value()); diff --git a/src/plugins/debugger/pdb/pdbengine.cpp b/src/plugins/debugger/pdb/pdbengine.cpp index bccd7218bce..25ba35fabb4 100644 --- a/src/plugins/debugger/pdb/pdbengine.cpp +++ b/src/plugins/debugger/pdb/pdbengine.cpp @@ -21,6 +21,7 @@ #include #include +#include #include #include @@ -538,7 +539,7 @@ void PdbEngine::updateLocals() watchHandler()->appendFormatRequests(&cmd); watchHandler()->appendWatchersAndTooltipRequests(&cmd); - const static bool alwaysVerbose = qEnvironmentVariableIsSet("QTC_DEBUGGER_PYTHON_VERBOSE"); + const bool alwaysVerbose = qtcEnvironmentVariableIsSet("QTC_DEBUGGER_PYTHON_VERBOSE"); cmd.arg("passexceptions", alwaysVerbose); cmd.arg("fancy", debuggerSettings()->useDebuggingHelpers.value()); diff --git a/src/plugins/debugger/terminal.cpp b/src/plugins/debugger/terminal.cpp index 39e0ac84a55..70e8749c635 100644 --- a/src/plugins/debugger/terminal.cpp +++ b/src/plugins/debugger/terminal.cpp @@ -9,6 +9,7 @@ #include +#include #include #include #include @@ -51,7 +52,7 @@ Terminal::Terminal(QObject *parent) void Terminal::setup() { #ifdef DEBUGGER_USE_TERMINAL - if (!qEnvironmentVariableIsSet("QTC_USE_PTY")) + if (!qtcEnvironmentVariableIsSet("QTC_USE_PTY")) return; m_masterFd = ::open("/dev/ptmx", O_RDWR);