From efe6e4668af95159e4808701f2ee42f7cbb8c323 Mon Sep 17 00:00:00 2001 From: hjk <hjk121@nokiamail.com> Date: Thu, 16 Jan 2014 10:28:36 +0100 Subject: [PATCH] Debugger: Filter out duplicate entries in LLDB frames Task-number: QTCREATORBUG-11208 Change-Id: Iec79436b6a13a40de9b7b669bece2204ac858edb Reviewed-by: Eike Ziller <eike.ziller@digia.com> --- share/qtcreator/debugger/lldbbridge.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 365b784b761..7d8e0c7de42 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -1013,12 +1013,19 @@ class Dumper(DumperBase): self.put('data=[') self.anonNumber = 0 shadowed = {} - values = [v for v in frame.GetVariables(True, True, False, False) if v.IsValid()] + ids = {} # Filter out duplicates entries at the same address. + values = list(frame.GetVariables(True, True, True, False)) values.reverse() # To get shadowed vars numbered backwards. for value in values: + if not value.IsValid(): + continue + name = value.GetName() + id = "%s:0x%x" % (name, value.GetAddress()) + if id in ids: + continue + ids[id] = True if self.dummyValue is None: self.dummyValue = value - name = value.GetName() if name is None: warn("NO NAME FOR VALUE: %s" % value) continue -- GitLab