Debugger: Filter out duplicate entries in LLDB frames

Task-number: QTCREATORBUG-11208

Change-Id: Iec79436b6a13a40de9b7b669bece2204ac858edb
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
hjk
2014-01-16 10:28:36 +01:00
parent 3b2cb038cd
commit efe6e4668a

View File

@@ -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