From ba93c22db1765e82842502e3b0e8eb06c17f6824 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 29 Jan 2014 14:41:00 +0100 Subject: [PATCH] Debugger: Filter out well-known static variables Change-Id: I2c95ab4ab7f765ad42bf6bd35c6f790de5f03668 Reviewed-by: Eike Ziller --- share/qtcreator/debugger/lldbbridge.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index cd514a9caed..5824df84582 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -1066,7 +1066,22 @@ class Dumper(DumperBase): self.anonNumber = 0 shadowed = {} ids = {} # Filter out duplicates entries at the same address. - values = list(frame.GetVariables(True, True, True, False)) + values = list(frame.GetVariables(True, True, False, False)) + + # We need to look at static variables to get access to + # local constants. But not at all of them. + for staticVar in frame.GetVariables(False, False, True, False): + typename = staticVar.GetType().GetName() + name = staticVar.GetName() + if name.startswith("qt_meta_stringdata_"): + continue + if name.startswith("qt_meta_data_"): + continue + if name.endswith("::staticMetaObject") \ + and typename.endswith("QMetaObject"): + continue + values.append(staticVar) + values.reverse() # To get shadowed vars numbered backwards. for value in values: if not value.IsValid():