From bf5f96e4232730eab1db761feac380100e9ed6eb Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 26 Sep 2016 13:47:19 +0200 Subject: [PATCH] Debugger: Fix passing working directory with LLDB It's not the one of the lldb process anymore, so set it explicitly. Change-Id: Ibcc2b63631c4096f860996ad6ccfc12415d8aefd Reviewed-by: Alexandru Croitor --- share/qtcreator/debugger/lldbbridge.py | 5 ++++- src/plugins/debugger/lldb/lldbengine.cpp | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 18c6a408b5e..7c21ddb96fd 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -652,6 +652,9 @@ class Dumper(DumperBase): self.remoteChannel_ = args.get('remotechannel', '') self.platform_ = args.get('platform', '') self.nativeMixed = int(args.get('nativemixed', 0)) + self.workingDirectory_ = args.get('workingdirectory', '') + if self.workingDirectory_ == '': + self.workingDirectory_ = os.getcwd() self.ignoreStops = 0 self.silentStops = 0 @@ -729,7 +732,7 @@ class Dumper(DumperBase): self.reportState("enginerunokandinferiorunrunnable") else: launchInfo = lldb.SBLaunchInfo(self.processArgs_) - launchInfo.SetWorkingDirectory(os.getcwd()) + launchInfo.SetWorkingDirectory(self.workingDirectory_) environmentList = [key + "=" + value for key,value in os.environ.items()] if self.dyldImageSuffix: environmentList.append('DYLD_IMAGE_SUFFIX=' + self.dyldImageSuffix) diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 6938c51ae15..df738f68ac6 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -349,6 +349,7 @@ void LldbEngine::setupInferior() cmd2.arg("dyldimagesuffix", rp.inferior.environment.value("DYLD_IMAGE_SUFFIX")); cmd2.arg("dyldframeworkpath", rp.inferior.environment.value("DYLD_LIBRARY_PATH")); cmd2.arg("dyldlibrarypath", rp.inferior.environment.value("DYLD_FRAMEWORK_PATH")); + cmd2.arg("workingdirectory", rp.inferior.workingDirectory); QJsonArray processArgs; foreach (const QString &arg, args.toUnixArgs())