From 4f88388c0bc7f5926e880fb6f75ec909c6d7bc88 Mon Sep 17 00:00:00 2001 From: Davide Italiano Date: Thu, 25 Apr 2019 00:03:02 +0000 Subject: [PATCH] [utils] Add a lldb data formatter for llvm::SmallString. Result: (lldb) p val (llvm::SmallString<32>) $31 = "patatino" llvm-svn: 359157 --- llvm/utils/lldbDataFormatters.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/llvm/utils/lldbDataFormatters.py b/llvm/utils/lldbDataFormatters.py index fcb381c..de0710a 100644 --- a/llvm/utils/lldbDataFormatters.py +++ b/llvm/utils/lldbDataFormatters.py @@ -18,6 +18,9 @@ def __lldb_init_module(debugger, internal_dict): debugger.HandleCommand('type summary add -w llvm ' '-F lldbDataFormatters.OptionalSummaryProvider ' '-x "^llvm::Optional<.+>$"') + debugger.HandleCommand('type summary add -w llvm ' + '-F lldbDataFormatters.SmallStringSummaryProvider ' + '-x "^llvm::SmallString<.+>$"') # Pretty printer for llvm::SmallVector/llvm::SmallVectorImpl class SmallVectorSynthProvider: @@ -104,3 +107,11 @@ def OptionalSummaryProvider(valobj, internal_dict): underlying_type = storage.GetType().GetTemplateArgumentType(0) storage = storage.GetChildMemberWithName('storage') return str(storage.Cast(underlying_type)) + +def SmallStringSummaryProvider(valobj, internal_dict): + num_elements = valobj.GetNumChildren() + res = "\"" + for i in range(0, num_elements): + res += valobj.GetChildAtIndex(i).GetValue().strip("'") + res += "\"" + return res -- 2.7.4