From: Argyrios Kyrtzidis Date: Wed, 14 Nov 2012 23:52:11 +0000 (+0000) Subject: [utils/ClangDataFormat.py] In the summary of SourceLocation, include whether it is X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=29a67e8f3adbd433acf271f7be699c50ceb7bdef;p=clang [utils/ClangDataFormat.py] In the summary of SourceLocation, include whether it is local or loaded. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168002 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/ClangDataFormat.py b/utils/ClangDataFormat.py index ec44d2a31b..817c0b6056 100644 --- a/utils/ClangDataFormat.py +++ b/utils/ClangDataFormat.py @@ -16,7 +16,7 @@ After that, instead of getting this: you'll get: (lldb) p Tok.Loc -(clang::SourceLocation) $4 = "/usr/include/i386/_types.h:37:1" (offset: 123582, file) +(clang::SourceLocation) $4 = "/usr/include/i386/_types.h:37:1" (offset: 123582, file, local) """ import lldb @@ -37,6 +37,9 @@ class SourceLocation(object): def isMacro(self): return getValueFromExpression(self.srcloc, ".isMacroID()").GetValueAsUnsigned() + def isLocal(self, srcmgr_path): + return lldb.frame.EvaluateExpression("(%s).isLocalSourceLocation(%s)" % (srcmgr_path, getExpressionPath(self.srcloc))).GetValueAsUnsigned() + def getPrint(self, srcmgr_path): print_str = getValueFromExpression(self.srcloc, ".printToString(%s)" % srcmgr_path) return print_str.GetSummary() @@ -45,7 +48,7 @@ class SourceLocation(object): desc = "(offset: %d, %s)" % (self.offset(), "macro" if self.isMacro() else "file") srcmgr_path = findObjectExpressionPath("clang::SourceManager", lldb.frame) if srcmgr_path: - desc = self.getPrint(srcmgr_path) + " " + desc + desc = "%s (offset: %d, %s, %s)" % (self.getPrint(srcmgr_path), self.offset(), "macro" if self.isMacro() else "file", "local" if self.isLocal(srcmgr_path) else "loaded") return desc # Key is a (function address, type name) tuple, value is the expression path for