diff options
author | hjk <hjk@qt.io> | 2018-11-07 12:31:30 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2018-11-08 14:21:21 +0000 |
commit | c016c6737b4d9392d9df4f2f0b5c10b4511c4ed0 (patch) | |
tree | f8212d39e06776f980b9595135a9aa1b698d0eb5 /share | |
parent | 0a29e12d0cad2921a187d8d895c7b70381a25f40 (diff) | |
download | qt-creator-c016c6737b4d9392d9df4f2f0b5c10b4511c4ed0.tar.gz |
Debugger: Fix LLDB start with complex command lines
Fixes: QTCREATORBUG-21433
Change-Id: I1a248272566eac7f5fd07a8346500d245b62fbfa
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'share')
-rw-r--r-- | share/qtcreator/debugger/lldbbridge.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index a6d844a2b4..70a682a1a9 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -830,8 +830,7 @@ class Dumper(DumperBase): self.startMode_ = args.get('startmode', 1) self.breakOnMain_ = args.get('breakonmain', 0) self.useTerminal_ = args.get('useterminal', 0) - self.processArgs_ = args.get('processargs', []) - self.processArgs_ = list(map(lambda x: self.hexdecode(x), self.processArgs_)) + self.processArgs_ = self.hexdecode(args.get('processargs')) self.environment_ = args.get('environment', []) self.environment_ = list(map(lambda x: self.hexdecode(x), self.environment_)) self.attachPid_ = args.get('attachpid', 0) @@ -928,7 +927,19 @@ class Dumper(DumperBase): else: self.reportState('enginerunfailed') else: - launchInfo = lldb.SBLaunchInfo(self.processArgs_) + # 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.SetWorkingDirectory(self.workingDirectory_) launchInfo.SetEnvironmentEntries(self.environment_, False) if self.breakOnMain_: |