From 80f3f34c96ed2eca80b50c8d3aadb39195eeace0 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 2 Apr 2020 17:58:24 +0200 Subject: [PATCH] Debugger: Pass symbol file to LLDB and use it Instead of guessing from the executable. Change-Id: I5f57020446bc5e0f7915dac487a32d673eb97952 Reviewed-by: Christian Stenger --- share/qtcreator/debugger/lldbbridge.py | 6 +++--- src/plugins/debugger/lldb/lldbengine.cpp | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 2995256b1ad..e3d91963451 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -111,6 +111,7 @@ class Dumper(DumperBase): self.runEngineAttempted = False self.executable_ = None + self.symbolFile_ = None self.startMode_ = None self.processArgs_ = None self.attachPid_ = None @@ -857,6 +858,7 @@ class Dumper(DumperBase): self.remoteChannel_ = args.get('remotechannel', '') self.platform_ = args.get('platform', '') self.nativeMixed = int(args.get('nativemixed', 0)) + self.symbolFile_ = args['symbolfile']; self.workingDirectory_ = args.get('workingdirectory', '') if self.workingDirectory_ == '': try: @@ -878,10 +880,8 @@ class Dumper(DumperBase): if self.sysRoot_: self.debugger.SetCurrentPlatformSDKRoot(self.sysRoot_) - exefile = None if self.attachPid_ > 0 else self.executable_ - self.target = self.debugger.CreateTarget( - exefile, None, self.platform_, True, error) + self.symbolFile_, None, self.platform_, True, error) if not error.Success(): self.report(self.describeError(error)) diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 70f2c708814..a4dd48228aa 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -279,6 +279,7 @@ void LldbEngine::setupEngine() cmd2.arg("environment", rp.inferior.environment.toStringList()); cmd2.arg("processargs", toHex(QtcProcess::splitArgs(rp.inferior.commandLineArguments).join(QChar(0)))); cmd2.arg("platform", rp.platform); + cmd2.arg("symbolfile", rp.symbolFile); if (terminal()) { const qint64 attachedPID = terminal()->applicationPid();