Debugger: use correct environment for the cdb process

Change-Id: I7027be25df7380810b7c8fbd0e9bc5b9abd67dc3
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
David Schulz
2020-05-13 11:46:09 +02:00
parent cdeac76df3
commit 4749550fbc

View File

@@ -431,24 +431,24 @@ void CdbEngine::setupEngine()
m_outputBuffer.clear(); m_outputBuffer.clear();
m_autoBreakPointCorrection = false; m_autoBreakPointCorrection = false;
Utils::Environment inferiorEnvironment = sp.inferior.environment.size() == 0 Utils::Environment debuggerEnvironment = sp.debugger.environment.size() == 0
? Utils::Environment::systemEnvironment() : sp.inferior.environment; ? Utils::Environment::systemEnvironment() : sp.debugger.environment;
// Make sure that QTestLib uses OutputDebugString for logging. // Make sure that QTestLib uses OutputDebugString for logging.
const QString qtLoggingToConsoleKey = QStringLiteral("QT_LOGGING_TO_CONSOLE"); const QString qtLoggingToConsoleKey = QStringLiteral("QT_LOGGING_TO_CONSOLE");
if (!sp.useTerminal && !inferiorEnvironment.hasKey(qtLoggingToConsoleKey)) if (!sp.useTerminal && !debuggerEnvironment.hasKey(qtLoggingToConsoleKey))
inferiorEnvironment.set(qtLoggingToConsoleKey, "0"); debuggerEnvironment.set(qtLoggingToConsoleKey, "0");
static const char cdbExtensionPathVariableC[] = "_NT_DEBUGGER_EXTENSION_PATH"; static const char cdbExtensionPathVariableC[] = "_NT_DEBUGGER_EXTENSION_PATH";
inferiorEnvironment.prependOrSet(cdbExtensionPathVariableC, extensionFi.absolutePath(), {";"}); debuggerEnvironment.prependOrSet(cdbExtensionPathVariableC, extensionFi.absolutePath(), {";"});
const QByteArray oldCdbExtensionPath = qgetenv(cdbExtensionPathVariableC); const QByteArray oldCdbExtensionPath = qgetenv(cdbExtensionPathVariableC);
if (!oldCdbExtensionPath.isEmpty()) { if (!oldCdbExtensionPath.isEmpty()) {
inferiorEnvironment.appendOrSet(cdbExtensionPathVariableC, debuggerEnvironment.appendOrSet(cdbExtensionPathVariableC,
QString::fromLocal8Bit(oldCdbExtensionPath), QString::fromLocal8Bit(oldCdbExtensionPath),
{";"}); {";"});
} }
m_process.setEnvironment(inferiorEnvironment); m_process.setEnvironment(debuggerEnvironment);
if (!sp.inferior.workingDirectory.isEmpty()) if (!sp.inferior.workingDirectory.isEmpty())
m_process.setWorkingDirectory(sp.inferior.workingDirectory); m_process.setWorkingDirectory(sp.inferior.workingDirectory);