forked from qt-creator/qt-creator
Debugger: Only pass environmental differences to inferior
This amends 0f46ad4a55.
Passing the whole environment is unneeded, and can cause
problems with multi-line variables.
Change-Id: I49a32c550ba52737bb8f797e227bb883be8b1df1
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
This commit is contained in:
@@ -4263,9 +4263,13 @@ void GdbEngine::loadInitScript()
|
|||||||
|
|
||||||
void GdbEngine::setEnvironmentVariables()
|
void GdbEngine::setEnvironmentVariables()
|
||||||
{
|
{
|
||||||
if (runParameters().environment.size()) {
|
Environment sysEnv = Environment::systemEnvironment();
|
||||||
foreach (const QString &env, runParameters().environment.toStringList())
|
Environment runEnv = runParameters().environment;
|
||||||
postCommand("-gdb-set environment " + env.toUtf8());
|
foreach (const EnvironmentItem &item, sysEnv.diff(runEnv)) {
|
||||||
|
if (item.unset)
|
||||||
|
postCommand("unset environment " + item.name.toUtf8());
|
||||||
|
else
|
||||||
|
postCommand("-gdb-set environment " + item.name.toUtf8() + '=' + item.value.toUtf8());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -290,9 +290,15 @@ void LldbEngine::startLldbStage2()
|
|||||||
|
|
||||||
void LldbEngine::setupInferior()
|
void LldbEngine::setupInferior()
|
||||||
{
|
{
|
||||||
if (runParameters().environment.size()) {
|
Environment sysEnv = Environment::systemEnvironment();
|
||||||
foreach (const QString &env, runParameters().environment.toStringList())
|
Environment runEnv = runParameters().environment;
|
||||||
runCommand("env " + env.toUtf8());
|
foreach (const EnvironmentItem &item, sysEnv.diff(runEnv)) {
|
||||||
|
DebuggerCommand cmd("executeDebuggerCommand");
|
||||||
|
if (item.unset)
|
||||||
|
cmd.arg("command", "settings remove target.env-vars " + item.name.toUtf8());
|
||||||
|
else
|
||||||
|
cmd.arg("command", "settings set target.env-vars " + item.name.toUtf8() + '=' + item.value.toUtf8());
|
||||||
|
runCommand(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString path = stringSetting(ExtraDumperFile);
|
const QString path = stringSetting(ExtraDumperFile);
|
||||||
|
|||||||
Reference in New Issue
Block a user