From bd704d49268ecfb399b05d74a3a16593e672bbd4 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Wed, 12 Jan 2011 15:31:40 +0100 Subject: [PATCH] Debugger: Fix python path for Windows. Fix 07cac21957dac9f69126fa13b37b5842fb219a44. Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com> --- src/plugins/debugger/gdb/gdbengine.cpp | 31 +++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 57190e22b71..a7c0ac61e44 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -4122,26 +4122,31 @@ bool GdbEngine::startGdb(const QStringList &args, const QString &gdb, const QStr const QString pythonPathVariable = QLatin1String("PYTHONPATH"); QString pythonPath; + const QString environmentPythonPath = environment.value(pythonPathVariable); if (dir.exists(winPythonVersion)) { pythonPath = QDir::toNativeSeparators(dir.absoluteFilePath(winPythonVersion)); } else if (dir.exists(QLatin1String("lib"))) { // Needed for our gdb 7.2 packages pythonPath = QDir::toNativeSeparators(dir.absoluteFilePath(QLatin1String("lib"))); } else { - if (environment.contains(pythonPathVariable)) { - pythonPath = environment.value(pythonPathVariable); - } else { - showMessage(_("GDB %1 CANNOT FIND PYTHON INSTALLATION.").arg(m_gdb)); - showStatusMessage(_("Gdb at %1 cannot find python").arg(m_gdb)); - const QString msg = tr("The gdb installed at %1 cannot " - "find a valid python installation in its %2 subdirectory.\n" - "You may set the PYTHONPATH to your installation.") - .arg(m_gdb).arg(winPythonVersion); - handleAdapterStartFailed(msg, settingsIdHint); - return false; - } + pythonPath = environmentPythonPath; + } + if (pythonPath.isEmpty()) { + const QString nativeGdb = QDir::toNativeSeparators(m_gdb); + showMessage(_("GDB %1 CANNOT FIND THE PYTHON INSTALLATION.").arg(nativeGdb)); + showStatusMessage(_("%1 cannot find python").arg(nativeGdb)); + const QString msg = tr("The gdb installed at %1 cannot " + "find a valid python installation in its %2 subdirectory.\n" + "You may set the PYTHONPATH to your installation.") + .arg(nativeGdb).arg(winPythonVersion); + handleAdapterStartFailed(msg, settingsIdHint); + return false; } - environment.insert(pythonPathVariable, pythonPath); showMessage(_("Python path: %1").arg(pythonPath), LogMisc); + // Apply to process + if (pythonPath != environmentPythonPath) { + environment.insert(pythonPathVariable, pythonPath); + gdbProc()->setProcessEnvironment(environment); + } #endif connect(gdbProc(), SIGNAL(error(QProcess::ProcessError)), -- GitLab