mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 04:30:23 +00:00
utils: Teach lldbDataFormatters about llvm::Optional
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229956 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4fd100f9e9
commit
fa5fd07866
@ -15,6 +15,9 @@ def __lldb_init_module(debugger, internal_dict):
|
||||
debugger.HandleCommand('type synthetic add -w llvm '
|
||||
'-l lldbDataFormatters.ArrayRefSynthProvider '
|
||||
'-x "^llvm::ArrayRef<.+>$"')
|
||||
debugger.HandleCommand('type summary add -w llvm '
|
||||
'-F lldbDataFormatters.OptionalSummaryProvider '
|
||||
'-x "^llvm::Optional<.+>$"')
|
||||
|
||||
# Pretty printer for llvm::SmallVector/llvm::SmallVectorImpl
|
||||
class SmallVectorSynthProvider:
|
||||
@ -86,3 +89,10 @@ class ArrayRefSynthProvider:
|
||||
self.data_type = self.data.GetType().GetPointeeType()
|
||||
self.type_size = self.data_type.GetByteSize()
|
||||
assert self.type_size != 0
|
||||
|
||||
def OptionalSummaryProvider(valobj, internal_dict):
|
||||
if not valobj.GetChildMemberWithName('hasVal').GetValueAsUnsigned(0):
|
||||
return 'None'
|
||||
underlying_type = valobj.GetType().GetTemplateArgumentType(0)
|
||||
storage = valobj.GetChildMemberWithName('storage')
|
||||
return str(storage.Cast(underlying_type))
|
||||
|
Loading…
Reference in New Issue
Block a user