Make a synthetic children provider for the ObjC Class type
llvm-svn: 180588
This commit is contained in:
parent
d813420816
commit
c76b97bcce
|
@ -81,6 +81,8 @@ namespace lldb_private {
|
||||||
bool
|
bool
|
||||||
ObjCClassSummaryProvider (ValueObject& valobj, Stream& stream);
|
ObjCClassSummaryProvider (ValueObject& valobj, Stream& stream);
|
||||||
|
|
||||||
|
SyntheticChildrenFrontEnd* ObjCClassSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP);
|
||||||
|
|
||||||
template<bool name_entries>
|
template<bool name_entries>
|
||||||
bool
|
bool
|
||||||
NSDictionarySummaryProvider (ValueObject& valobj, Stream& stream);
|
NSDictionarySummaryProvider (ValueObject& valobj, Stream& stream);
|
||||||
|
|
|
@ -761,6 +761,56 @@ lldb_private::formatters::ObjCClassSummaryProvider (ValueObject& valobj, Stream&
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ObjCClassSyntheticChildrenFrontEnd : public SyntheticChildrenFrontEnd
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ObjCClassSyntheticChildrenFrontEnd (lldb::ValueObjectSP valobj_sp) :
|
||||||
|
SyntheticChildrenFrontEnd(*valobj_sp.get())
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual size_t
|
||||||
|
CalculateNumChildren ()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual lldb::ValueObjectSP
|
||||||
|
GetChildAtIndex (size_t idx)
|
||||||
|
{
|
||||||
|
return lldb::ValueObjectSP();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool
|
||||||
|
Update()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool
|
||||||
|
MightHaveChildren ()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual size_t
|
||||||
|
GetIndexOfChildWithName (const ConstString &name)
|
||||||
|
{
|
||||||
|
return UINT32_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual
|
||||||
|
~ObjCClassSyntheticChildrenFrontEnd ()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
SyntheticChildrenFrontEnd*
|
||||||
|
lldb_private::formatters::ObjCClassSyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp)
|
||||||
|
{
|
||||||
|
return new ObjCClassSyntheticChildrenFrontEnd(valobj_sp);
|
||||||
|
}
|
||||||
|
|
||||||
template<bool needs_at>
|
template<bool needs_at>
|
||||||
bool
|
bool
|
||||||
lldb_private::formatters::NSDataSummaryProvider (ValueObject& valobj, Stream& stream)
|
lldb_private::formatters::NSDataSummaryProvider (ValueObject& valobj, Stream& stream)
|
||||||
|
|
|
@ -770,6 +770,11 @@ FormatManager::LoadObjCFormatters()
|
||||||
AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<true>, "SEL summary provider", ConstString("SEL *"), objc_flags);
|
AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<true>, "SEL summary provider", ConstString("SEL *"), objc_flags);
|
||||||
|
|
||||||
AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCClassSummaryProvider, "Class summary provider", ConstString("Class"), objc_flags);
|
AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCClassSummaryProvider, "Class summary provider", ConstString("Class"), objc_flags);
|
||||||
|
|
||||||
|
SyntheticChildren::Flags class_synth_flags;
|
||||||
|
class_synth_flags.SetCascades(true).SetSkipPointers(false).SetSkipReferences(false);
|
||||||
|
|
||||||
|
AddCXXSynthetic(objc_category_sp, lldb_private::formatters::ObjCClassSyntheticFrontEndCreator, "Class synthetic children", ConstString("Class"), class_synth_flags);
|
||||||
#endif // LLDB_DISABLE_PYTHON
|
#endif // LLDB_DISABLE_PYTHON
|
||||||
|
|
||||||
objc_flags.SetSkipPointers(false);
|
objc_flags.SetSkipPointers(false);
|
||||||
|
|
Loading…
Reference in New Issue