From 1a6737cbee3717ed368e09375f0bf4addbcb092c Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Date: Thu, 18 Nov 2010 16:06:02 +0100
Subject: [PATCH] Debugger[new CDB]: Handle command line arguments correctly.

---
 src/plugins/debugger/cdb2/cdbengine2.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/plugins/debugger/cdb2/cdbengine2.cpp b/src/plugins/debugger/cdb2/cdbengine2.cpp
index a737388589b..98d54a71be6 100644
--- a/src/plugins/debugger/cdb2/cdbengine2.cpp
+++ b/src/plugins/debugger/cdb2/cdbengine2.cpp
@@ -401,9 +401,7 @@ bool CdbEngine::doSetupEngine(QString *errorMessage)
     switch (sp.startMode) {
     case StartInternal:
     case StartExternal:
-        arguments << sp.executable;
-        foreach(const QString &arg, sp.processArgs)
-            arguments << arg; // @TODO quoting/env
+        arguments << QDir::toNativeSeparators(sp.executable);
         break;
     case AttachExternal:
     case AttachCrashedExternal:   // @TODO: event handle for crashed?
@@ -425,6 +423,10 @@ bool CdbEngine::doSetupEngine(QString *errorMessage)
 
     m_outputBuffer.clear();
     m_process.setEnvironment(mergeEnvironment(sp.environment.toStringList(), extensionFi.absolutePath()));
+#ifdef Q_OS_WIN
+    if (!sp.processArgs.isEmpty()) // Appends
+        m_process.setNativeArguments(sp.processArgs);
+#endif
     m_process.start(executable, arguments);
     if (!m_process.waitForStarted()) {
         *errorMessage = QString::fromLatin1("Internal error: Cannot start process %1: %2").
-- 
GitLab