mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-07 12:28:24 +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:
@@ -15,6 +15,9 @@ def __lldb_init_module(debugger, internal_dict):
|
|||||||
debugger.HandleCommand('type synthetic add -w llvm '
|
debugger.HandleCommand('type synthetic add -w llvm '
|
||||||
'-l lldbDataFormatters.ArrayRefSynthProvider '
|
'-l lldbDataFormatters.ArrayRefSynthProvider '
|
||||||
'-x "^llvm::ArrayRef<.+>$"')
|
'-x "^llvm::ArrayRef<.+>$"')
|
||||||
|
debugger.HandleCommand('type summary add -w llvm '
|
||||||
|
'-F lldbDataFormatters.OptionalSummaryProvider '
|
||||||
|
'-x "^llvm::Optional<.+>$"')
|
||||||
|
|
||||||
# Pretty printer for llvm::SmallVector/llvm::SmallVectorImpl
|
# Pretty printer for llvm::SmallVector/llvm::SmallVectorImpl
|
||||||
class SmallVectorSynthProvider:
|
class SmallVectorSynthProvider:
|
||||||
@@ -86,3 +89,10 @@ class ArrayRefSynthProvider:
|
|||||||
self.data_type = self.data.GetType().GetPointeeType()
|
self.data_type = self.data.GetType().GetPointeeType()
|
||||||
self.type_size = self.data_type.GetByteSize()
|
self.type_size = self.data_type.GetByteSize()
|
||||||
assert self.type_size != 0
|
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))
|
||||||
|
Reference in New Issue
Block a user