diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index f7cd2f591bb..36302be0d6a 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -841,7 +841,7 @@ class Dumper(DumperBase): self.startMode_ = args.get('startmode', 1) self.breakOnMain_ = args.get('breakonmain', 0) self.useTerminal_ = args.get('useterminal', 0) - self.processArgs_ = self.hexdecode(args.get('processargs')) + self.processArgs_ = self.hexdecode(args.get('processargs', '')).split('\0') self.environment_ = args.get('environment', []) self.environment_ = list(map(lambda x: self.hexdecode(x), self.environment_)) self.attachPid_ = args.get('attachpid', 0) @@ -932,19 +932,7 @@ class Dumper(DumperBase): else: self.reportState('enginerunfailed') else: - # This does not seem to work on Linux nor macOS? - #launchInfo = lldb.SBLaunchInfo([self.processArgs_]) - #launchInfo.SetShellExpandArguments(True) - args = [] - try: - import subprocess - cmd = 'for x in {} ; do printf "%s\n" "$x" ; done' \ - .format(self.processArgs_) - args = subprocess.check_output(cmd, shell=True, cwd=self.workingDirectory_).split() - except: - # Wrong, but... - args = self.processArgs_ - launchInfo = lldb.SBLaunchInfo(args) + launchInfo = lldb.SBLaunchInfo(self.processArgs_) launchInfo.SetWorkingDirectory(self.workingDirectory_) launchInfo.SetEnvironmentEntries(self.environment_, False) if self.breakOnMain_: diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 3047fb8ad4b..ee0fd4f087b 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -275,7 +275,7 @@ void LldbEngine::setupEngine() cmd2.arg("nativemixed", isNativeMixedActive()); cmd2.arg("workingdirectory", rp.inferior.workingDirectory); cmd2.arg("environment", rp.inferior.environment.toStringList()); - cmd2.arg("processargs", toHex(rp.inferior.commandLineArguments)); + cmd2.arg("processargs", toHex(QtcProcess::splitArgs(rp.inferior.commandLineArguments).join(QChar(0)))); if (terminal()) { const qint64 attachedPID = terminal()->applicationPid();