[llvm] r229956 - utils: Teach lldbDataFormatters about llvm::Optional

Justin Bogner mail at justinbogner.com
Thu Feb 19 18:55:22 PST 2015


Author: bogner
Date: Thu Feb 19 20:55:22 2015
New Revision: 229956

URL: http://llvm.org/viewvc/llvm-project?rev=229956&view=rev
Log:
utils: Teach lldbDataFormatters about llvm::Optional

Modified:
    llvm/trunk/utils/lldbDataFormatters.py

Modified: llvm/trunk/utils/lldbDataFormatters.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lldbDataFormatters.py?rev=229956&r1=229955&r2=229956&view=diff
==============================================================================
--- llvm/trunk/utils/lldbDataFormatters.py (original)
+++ llvm/trunk/utils/lldbDataFormatters.py Thu Feb 19 20:55:22 2015
@@ -15,6 +15,9 @@ def __lldb_init_module(debugger, interna
     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))





More information about the llvm-commits mailing list