<rdar://problem/15235492>
Extend DummySyntheticProvider to actually use debug-info vended children as the source of information
Make Python synthetic children either be valid, or fallback to the dummy, like their C++ counterparts
This allows LLDB to actually stop bailing out upon encountering an invalid synthetic children provider front-end, and still displaying the non synthetized ivar info
llvm-svn: 192741
diff --git a/lldb/source/DataFormatters/FormatManager.cpp b/lldb/source/DataFormatters/FormatManager.cpp
index e8bc54f..0faf817 100644
--- a/lldb/source/DataFormatters/FormatManager.cpp
+++ b/lldb/source/DataFormatters/FormatManager.cpp
@@ -801,6 +801,12 @@
#endif
}
+static SyntheticChildrenFrontEnd*
+FooStructSynth (CXXSyntheticChildren*, lldb::ValueObjectSP)
+{
+ return NULL;
+}
+
void
FormatManager::LoadSystemFormatters()
{
@@ -834,6 +840,8 @@
sys_category_sp->GetSummaryNavigator()->Add(ConstString("unsigned char *"), string_format);
sys_category_sp->GetRegexSummaryNavigator()->Add(any_size_char_arr, string_array_format);
+ AddCXXSynthetic(sys_category_sp, FooStructSynth, "Foo synth", ConstString("Foo"), ScriptedSyntheticChildren::Flags(), false);
+
lldb::TypeSummaryImplSP ostype_summary(new StringSummaryFormat(TypeSummaryImpl::Flags().SetCascades(false)
.SetSkipPointers(true)
.SetSkipReferences(true)