From ca862e3fff5f55bc9521a88afd1e453e46578025 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 6 May 2020 11:10:04 +0200 Subject: [PATCH] Debugger: Fix LLDB listing registers when no frame is selected Change-Id: I6c3d193a2622ed07c34e68bf8b5780d55520e4f2 Reviewed-by: Christian Stenger --- share/qtcreator/debugger/lldbbridge.py | 34 +++++++++++++++----------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index ca3627fb061..cd855f41484 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -1267,23 +1267,29 @@ class Dumper(DumperBase): self.put('],partial="%d"' % isPartial) self.reportResult(self.output, args) + def fetchRegisters(self, args=None): - if self.process is None: - result = 'process="none"' - else: - frame = self.currentFrame() - if frame: - result = 'registers=[' - for group in frame.GetRegisters(): - for reg in group: - value = ''.join(["%02x" % x for x in reg.GetData().uint8s]) - result += '{name="%s"' % reg.GetName() - result += ',value="0x%s"' % value - result += ',size="%s"' % reg.GetByteSize() - result += ',type="%s"},' % reg.GetType() - result += ']' + if not self.process: + self.reportResult('process="none",registers=[]', args) + return + + frame = self.currentFrame() + if not frame or not frame.IsValid(): + self.reportResult('frame="none",registers=[]', args) + return + + result = 'registers=[' + for group in frame.GetRegisters(): + for reg in group: + value = ''.join(["%02x" % x for x in reg.GetData().uint8s]) + result += '{name="%s"' % reg.GetName() + result += ',value="0x%s"' % value + result += ',size="%s"' % reg.GetByteSize() + result += ',type="%s"},' % reg.GetType() + result += ']' self.reportResult(result, args) + def setRegister(self, args): name = args["name"] value = args["value"]