diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 365b784b761e30e3f96aef554e3a674c0cab8cd2..7d8e0c7de42e954b0d110e9c2d15ee1aefc929c2 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