diff options
author | Pavel Labath <labath@google.com> | 2015-09-01 09:02:54 +0000 |
---|---|---|
committer | Pavel Labath <labath@google.com> | 2015-09-01 09:02:54 +0000 |
commit | f15a16704bad82b39dbd7f69c88b422bee7a5449 (patch) | |
tree | 5a69e9bbb6f70e87028121dda4f86d33aa2a425a /lldb/source/DataFormatters/FormatManager.cpp | |
parent | dfff2542b88a3db903361346e8a48adf5f4c3fd8 (diff) | |
download | bcm5719-llvm-f15a16704bad82b39dbd7f69c88b422bee7a5449.tar.gz bcm5719-llvm-f15a16704bad82b39dbd7f69c88b422bee7a5449.zip |
Revert "Add support for language plugins to provide data formatters"
This reverts r246515 (and related cmake fixes) as it breaks all libcxx tests.
llvm-svn: 246536
Diffstat (limited to 'lldb/source/DataFormatters/FormatManager.cpp')
-rw-r--r-- | lldb/source/DataFormatters/FormatManager.cpp | 150 |
1 files changed, 16 insertions, 134 deletions
diff --git a/lldb/source/DataFormatters/FormatManager.cpp b/lldb/source/DataFormatters/FormatManager.cpp index 52209cae3be..e41d341a21e 100644 --- a/lldb/source/DataFormatters/FormatManager.cpp +++ b/lldb/source/DataFormatters/FormatManager.cpp @@ -16,13 +16,10 @@ #include "lldb/Core/Debugger.h" #include "lldb/DataFormatters/CXXFormatterFunctions.h" -#include "lldb/DataFormatters/LanguageCategory.h" #include "lldb/Target/ExecutionContext.h" #include "lldb/Target/Platform.h" #include "llvm/ADT/STLExtras.h" -#include <initializer_list> - using namespace lldb; using namespace lldb_private; @@ -475,20 +472,6 @@ FormatManager::GetValidatorForType (lldb::TypeNameSpecifierImplSP type_sp) return validator_chosen_sp; } -void -FormatManager::LoopThroughCategories (CategoryCallback callback, void* param) -{ - m_categories_map.LoopThrough(callback, param); - for (const auto& entry : m_language_categories_map) - { - if (auto category_sp = entry.second->GetCategory()) - { - if (!callback(param, category_sp)) - break; - } - } -} - lldb::TypeCategoryImplSP FormatManager::GetCategory (const ConstString& category_name, bool can_create) @@ -613,8 +596,8 @@ FormatManager::GetValidTypeName (const ConstString& type) } ConstString -FormatManager::GetTypeForCache (ValueObject& valobj, - lldb::DynamicValueType use_dynamic) +GetTypeForCache (ValueObject& valobj, + lldb::DynamicValueType use_dynamic) { if (use_dynamic == lldb::eNoDynamicValues) { @@ -635,28 +618,6 @@ FormatManager::GetTypeForCache (ValueObject& valobj, return ConstString(); } -static std::initializer_list<lldb::LanguageType> -GetCandidateLanguages (ValueObject& valobj) -{ - lldb::LanguageType lang_type = valobj.GetObjectRuntimeLanguage(); - switch (lang_type) - { - default: - return {lang_type}; - } -} - -LanguageCategory* -FormatManager::GetCategoryForLanguage (lldb::LanguageType lang_type) -{ - auto iter = m_language_categories_map.find(lang_type), end = m_language_categories_map.end(); - if (iter != end) - return iter->second.get(); - LanguageCategory* lang_category = new LanguageCategory(lang_type); - m_language_categories_map[lang_type] = LanguageCategory::UniquePointer(lang_category); - return lang_category; -} - lldb::TypeFormatImplSP FormatManager::GetHardcodedFormat (ValueObject& valobj, lldb::DynamicValueType use_dynamic) @@ -694,29 +655,7 @@ FormatManager::GetFormat (ValueObject& valobj, if (log) log->Printf("[FormatManager::GetFormat] Cache search failed. Going normal route"); } - - FormattersMatchVector matches = GetPossibleMatches(valobj, use_dynamic); - - retval = m_categories_map.GetFormat(valobj, use_dynamic, matches); - if (!retval) - { - if (log) - log->Printf("[FormatManager::GetFormat] Search failed. Giving language a chance."); - for (lldb::LanguageType lang_type : GetCandidateLanguages(valobj)) - { - if (LanguageCategory* lang_category = GetCategoryForLanguage(lang_type)) - { - if (lang_category->Get(valobj, use_dynamic, matches, retval)) - break; - } - } - if (retval) - { - if (log) - log->Printf("[FormatManager::GetFormat] Language search success. Returning."); - return retval; - } - } + retval = m_categories_map.GetFormat(valobj, use_dynamic); if (!retval) { if (log) @@ -774,29 +713,7 @@ FormatManager::GetSummaryFormat (ValueObject& valobj, if (log) log->Printf("[FormatManager::GetSummaryFormat] Cache search failed. Going normal route"); } - - FormattersMatchVector matches = GetPossibleMatches(valobj, use_dynamic); - - retval = m_categories_map.GetSummaryFormat(valobj, use_dynamic, matches); - if (!retval) - { - if (log) - log->Printf("[FormatManager::GetSummaryFormat] Search failed. Giving language a chance."); - for (lldb::LanguageType lang_type : GetCandidateLanguages(valobj)) - { - if (LanguageCategory* lang_category = GetCategoryForLanguage(lang_type)) - { - if (lang_category->Get(valobj, use_dynamic, matches, retval)) - break; - } - } - if (retval) - { - if (log) - log->Printf("[FormatManager::GetSummaryFormat] Language search success. Returning."); - return retval; - } - } + retval = m_categories_map.GetSummaryFormat(valobj, use_dynamic); if (!retval) { if (log) @@ -855,29 +772,7 @@ FormatManager::GetSyntheticChildren (ValueObject& valobj, if (log) log->Printf("[FormatManager::GetSyntheticChildren] Cache search failed. Going normal route"); } - - FormattersMatchVector matches = GetPossibleMatches(valobj, use_dynamic); - - retval = m_categories_map.GetSyntheticChildren(valobj, use_dynamic, matches); - if (!retval) - { - if (log) - log->Printf("[FormatManager::GetSyntheticChildren] Search failed. Giving language a chance."); - for (lldb::LanguageType lang_type : GetCandidateLanguages(valobj)) - { - if (LanguageCategory* lang_category = GetCategoryForLanguage(lang_type)) - { - if (lang_category->Get(valobj, use_dynamic, matches, retval)) - break; - } - } - if (retval) - { - if (log) - log->Printf("[FormatManager::GetSyntheticChildren] Language search success. Returning."); - return retval; - } - } + retval = m_categories_map.GetSyntheticChildren(valobj, use_dynamic); if (!retval) { if (log) @@ -923,29 +818,7 @@ FormatManager::GetValidator (ValueObject& valobj, if (log) log->Printf("[FormatManager::GetValidator] Cache search failed. Going normal route"); } - - FormattersMatchVector matches = GetPossibleMatches(valobj, use_dynamic); - - retval = m_categories_map.GetValidator(valobj, use_dynamic, matches); - if (!retval) - { - if (log) - log->Printf("[FormatManager::GetValidator] Search failed. Giving language a chance."); - for (lldb::LanguageType lang_type : GetCandidateLanguages(valobj)) - { - if (LanguageCategory* lang_category = GetCategoryForLanguage(lang_type)) - { - if (lang_category->Get(valobj, use_dynamic, matches, retval)) - break; - } - } - if (retval) - { - if (log) - log->Printf("[FormatManager::GetValidator] Language search success. Returning."); - return retval; - } - } + retval = m_categories_map.GetValidator(valobj, use_dynamic); if (!retval) { if (log) @@ -984,7 +857,6 @@ FormatManager::FormatManager() : m_named_summaries_map(this), m_last_revision(0), m_categories_map(this), - m_language_categories_map(), m_default_category_name(ConstString("default")), m_system_category_name(ConstString("system")), m_gnu_cpp_category_name(ConstString("gnu-libstdc++")), @@ -1211,7 +1083,17 @@ FormatManager::LoadLibcxxFormatters() lldb::TypeSummaryImplSP std_wstring_summary_sp(new CXXFunctionSummaryFormat(stl_summary_flags, lldb_private::formatters::LibcxxWStringSummaryProvider, "std::wstring summary provider")); TypeCategoryImpl::SharedPointer libcxx_category_sp = GetCategory(m_libcxx_category_name); + + libcxx_category_sp->GetTypeSummariesContainer()->Add(ConstString("std::__1::string"), + std_string_summary_sp); + libcxx_category_sp->GetTypeSummariesContainer()->Add(ConstString("std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >"), + std_string_summary_sp); + libcxx_category_sp->GetTypeSummariesContainer()->Add(ConstString("std::__1::wstring"), + std_wstring_summary_sp); + libcxx_category_sp->GetTypeSummariesContainer()->Add(ConstString("std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >"), + std_wstring_summary_sp); + SyntheticChildren::Flags stl_synth_flags; stl_synth_flags.SetCascades(true).SetSkipPointers(false).SetSkipReferences(false); |