diff options
author | hjk <hjk121@nokiamail.com> | 2014-04-11 13:20:59 +0200 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2014-04-11 14:24:35 +0200 |
commit | 03c6df1fabe796fc71ad32251ff89093cca129f1 (patch) | |
tree | cc3771dccb178a0662f9965635de1a37458396ec /share/qtcreator/debugger/lldbbridge.py | |
parent | 7d6c823b86692fec33e5cdd6f025fa0f450a7d25 (diff) | |
download | qt-creator-03c6df1fabe796fc71ad32251ff89093cca129f1.tar.gz |
Debugger: Fix staticMetaObject extraction with LLDB
When asked for Foo::staticMetaObject, it will find
any *::staticMetaObject. Looking for the mangled name
finds the one we need.
Change-Id: I4508a3c282bc8a46efa011efb73f32cdbf46398c
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Diffstat (limited to 'share/qtcreator/debugger/lldbbridge.py')
-rw-r--r-- | share/qtcreator/debugger/lldbbridge.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 421261408f..b5c737dda7 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -883,6 +883,13 @@ class Dumper(DumperBase): buf[i] = data.GetUnsignedInt8(error, i) return Blob(bytes(buf)) + def mangleName(self, typeName): + return '_ZN%sE' % ''.join(map(lambda x: "%d%s" % (len(x), x), typeName.split('::'))) + + def findStaticMetaObject(self, typeName): + symbolName = self.mangleName(typeName + '::staticMetaObject') + return self.target.FindFirstGlobalVariable(symbolName) + def findSymbol(self, symbolName): return self.target.FindFirstGlobalVariable(symbolName) |