forked from OSchip/llvm-project
[utils/ClangDataFormat.py] In the summary of SourceLocation, include whether it is
local or loaded. llvm-svn: 168002
This commit is contained in:
parent
5bbe0e18e9
commit
a3caaf3a05
|
@ -16,7 +16,7 @@ After that, instead of getting this:
|
||||||
you'll get:
|
you'll get:
|
||||||
|
|
||||||
(lldb) p Tok.Loc
|
(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
|
import lldb
|
||||||
|
@ -37,6 +37,9 @@ class SourceLocation(object):
|
||||||
def isMacro(self):
|
def isMacro(self):
|
||||||
return getValueFromExpression(self.srcloc, ".isMacroID()").GetValueAsUnsigned()
|
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):
|
def getPrint(self, srcmgr_path):
|
||||||
print_str = getValueFromExpression(self.srcloc, ".printToString(%s)" % srcmgr_path)
|
print_str = getValueFromExpression(self.srcloc, ".printToString(%s)" % srcmgr_path)
|
||||||
return print_str.GetSummary()
|
return print_str.GetSummary()
|
||||||
|
@ -45,7 +48,7 @@ class SourceLocation(object):
|
||||||
desc = "(offset: %d, %s)" % (self.offset(), "macro" if self.isMacro() else "file")
|
desc = "(offset: %d, %s)" % (self.offset(), "macro" if self.isMacro() else "file")
|
||||||
srcmgr_path = findObjectExpressionPath("clang::SourceManager", lldb.frame)
|
srcmgr_path = findObjectExpressionPath("clang::SourceManager", lldb.frame)
|
||||||
if srcmgr_path:
|
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
|
return desc
|
||||||
|
|
||||||
# Key is a (function address, type name) tuple, value is the expression path for
|
# Key is a (function address, type name) tuple, value is the expression path for
|
||||||
|
|
Loading…
Reference in New Issue