aboutsummaryrefslogtreecommitdiff
path: root/source/Symbol/SymbolFile.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-01-02 19:26:05 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-01-02 19:26:05 +0000
commit14f1b3e8826ce43b978db93a62d1166055db5394 (patch)
tree0a00ad8d3498783fe0193f3b656bca17c4c8697d /source/Symbol/SymbolFile.cpp
parent4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff)
downloadsrc-14f1b3e8826ce43b978db93a62d1166055db5394.tar.gz
src-14f1b3e8826ce43b978db93a62d1166055db5394.zip
Vendor import of lldb trunk r290819:vendor/lldb/lldb-trunk-r290819
Notes
Notes: svn path=/vendor/lldb/dist/; revision=311128 svn path=/vendor/lldb/lldb-trunk-r290819/; revision=311129; tag=vendor/lldb/lldb-trunk-r290819
Diffstat (limited to 'source/Symbol/SymbolFile.cpp')
-rw-r--r--source/Symbol/SymbolFile.cpp218
1 files changed, 106 insertions, 112 deletions
diff --git a/source/Symbol/SymbolFile.cpp b/source/Symbol/SymbolFile.cpp
index 808dfd3d06d6..8d8b606b5729 100644
--- a/source/Symbol/SymbolFile.cpp
+++ b/source/Symbol/SymbolFile.cpp
@@ -9,7 +9,6 @@
#include "lldb/Symbol/SymbolFile.h"
-#include "lldb/lldb-private.h"
#include "lldb/Core/Log.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/PluginManager.h"
@@ -18,141 +17,136 @@
#include "lldb/Symbol/TypeMap.h"
#include "lldb/Symbol/TypeSystem.h"
#include "lldb/Symbol/VariableList.h"
+#include "lldb/lldb-private.h"
using namespace lldb_private;
-SymbolFile*
-SymbolFile::FindPlugin (ObjectFile* obj_file)
-{
- std::unique_ptr<SymbolFile> best_symfile_ap;
- if (obj_file != nullptr)
- {
-
- // We need to test the abilities of this section list. So create what it would
- // be with this new obj_file.
- lldb::ModuleSP module_sp(obj_file->GetModule());
- if (module_sp)
- {
- // Default to the main module section list.
- ObjectFile *module_obj_file = module_sp->GetObjectFile();
- if (module_obj_file != obj_file)
- {
- // Make sure the main object file's sections are created
- module_obj_file->GetSectionList();
- obj_file->CreateSections (*module_sp->GetUnifiedSectionList());
- }
- }
+SymbolFile *SymbolFile::FindPlugin(ObjectFile *obj_file) {
+ std::unique_ptr<SymbolFile> best_symfile_ap;
+ if (obj_file != nullptr) {
+
+ // We need to test the abilities of this section list. So create what it
+ // would
+ // be with this new obj_file.
+ lldb::ModuleSP module_sp(obj_file->GetModule());
+ if (module_sp) {
+ // Default to the main module section list.
+ ObjectFile *module_obj_file = module_sp->GetObjectFile();
+ if (module_obj_file != obj_file) {
+ // Make sure the main object file's sections are created
+ module_obj_file->GetSectionList();
+ obj_file->CreateSections(*module_sp->GetUnifiedSectionList());
+ }
+ }
- // TODO: Load any plug-ins in the appropriate plug-in search paths and
- // iterate over all of them to find the best one for the job.
-
- uint32_t best_symfile_abilities = 0;
-
- SymbolFileCreateInstance create_callback;
- for (uint32_t idx = 0; (create_callback = PluginManager::GetSymbolFileCreateCallbackAtIndex(idx)) != nullptr; ++idx)
- {
- std::unique_ptr<SymbolFile> curr_symfile_ap(create_callback(obj_file));
-
- if (curr_symfile_ap.get())
- {
- const uint32_t sym_file_abilities = curr_symfile_ap->GetAbilities();
- if (sym_file_abilities > best_symfile_abilities)
- {
- best_symfile_abilities = sym_file_abilities;
- best_symfile_ap.reset (curr_symfile_ap.release());
- // If any symbol file parser has all of the abilities, then
- // we should just stop looking.
- if ((kAllAbilities & sym_file_abilities) == kAllAbilities)
- break;
- }
- }
- }
- if (best_symfile_ap.get())
- {
- // Let the winning symbol file parser initialize itself more
- // completely now that it has been chosen
- best_symfile_ap->InitializeObject();
+ // TODO: Load any plug-ins in the appropriate plug-in search paths and
+ // iterate over all of them to find the best one for the job.
+
+ uint32_t best_symfile_abilities = 0;
+
+ SymbolFileCreateInstance create_callback;
+ for (uint32_t idx = 0;
+ (create_callback = PluginManager::GetSymbolFileCreateCallbackAtIndex(
+ idx)) != nullptr;
+ ++idx) {
+ std::unique_ptr<SymbolFile> curr_symfile_ap(create_callback(obj_file));
+
+ if (curr_symfile_ap.get()) {
+ const uint32_t sym_file_abilities = curr_symfile_ap->GetAbilities();
+ if (sym_file_abilities > best_symfile_abilities) {
+ best_symfile_abilities = sym_file_abilities;
+ best_symfile_ap.reset(curr_symfile_ap.release());
+ // If any symbol file parser has all of the abilities, then
+ // we should just stop looking.
+ if ((kAllAbilities & sym_file_abilities) == kAllAbilities)
+ break;
}
+ }
}
- return best_symfile_ap.release();
+ if (best_symfile_ap.get()) {
+ // Let the winning symbol file parser initialize itself more
+ // completely now that it has been chosen
+ best_symfile_ap->InitializeObject();
+ }
+ }
+ return best_symfile_ap.release();
}
-TypeList *
-SymbolFile::GetTypeList ()
-{
- if (m_obj_file)
- return m_obj_file->GetModule()->GetTypeList();
- return nullptr;
+TypeList *SymbolFile::GetTypeList() {
+ if (m_obj_file)
+ return m_obj_file->GetModule()->GetTypeList();
+ return nullptr;
}
-TypeSystem *
-SymbolFile::GetTypeSystemForLanguage (lldb::LanguageType language)
-{
- TypeSystem *type_system = m_obj_file->GetModule()->GetTypeSystemForLanguage(language);
- if (type_system)
- type_system->SetSymbolFile(this);
- return type_system;
+TypeSystem *SymbolFile::GetTypeSystemForLanguage(lldb::LanguageType language) {
+ TypeSystem *type_system =
+ m_obj_file->GetModule()->GetTypeSystemForLanguage(language);
+ if (type_system)
+ type_system->SetSymbolFile(this);
+ return type_system;
}
-uint32_t
-SymbolFile::ResolveSymbolContext (const FileSpec& file_spec, uint32_t line, bool check_inlines, uint32_t resolve_scope, SymbolContextList& sc_list)
-{
- return 0;
+uint32_t SymbolFile::ResolveSymbolContext(const FileSpec &file_spec,
+ uint32_t line, bool check_inlines,
+ uint32_t resolve_scope,
+ SymbolContextList &sc_list) {
+ return 0;
}
-
-uint32_t
-SymbolFile::FindGlobalVariables (const ConstString &name, const CompilerDeclContext *parent_decl_ctx, bool append, uint32_t max_matches, VariableList& variables)
-{
- if (!append)
- variables.Clear();
- return 0;
+uint32_t SymbolFile::FindGlobalVariables(
+ const ConstString &name, const CompilerDeclContext *parent_decl_ctx,
+ bool append, uint32_t max_matches, VariableList &variables) {
+ if (!append)
+ variables.Clear();
+ return 0;
}
-
-uint32_t
-SymbolFile::FindGlobalVariables (const RegularExpression& regex, bool append, uint32_t max_matches, VariableList& variables)
-{
- if (!append)
- variables.Clear();
- return 0;
+uint32_t SymbolFile::FindGlobalVariables(const RegularExpression &regex,
+ bool append, uint32_t max_matches,
+ VariableList &variables) {
+ if (!append)
+ variables.Clear();
+ return 0;
}
-uint32_t
-SymbolFile::FindFunctions (const ConstString &name, const CompilerDeclContext *parent_decl_ctx, uint32_t name_type_mask, bool include_inlines, bool append, SymbolContextList& sc_list)
-{
- if (!append)
- sc_list.Clear();
- return 0;
+uint32_t SymbolFile::FindFunctions(const ConstString &name,
+ const CompilerDeclContext *parent_decl_ctx,
+ uint32_t name_type_mask,
+ bool include_inlines, bool append,
+ SymbolContextList &sc_list) {
+ if (!append)
+ sc_list.Clear();
+ return 0;
}
-uint32_t
-SymbolFile::FindFunctions (const RegularExpression& regex, bool include_inlines, bool append, SymbolContextList& sc_list)
-{
- if (!append)
- sc_list.Clear();
- return 0;
+uint32_t SymbolFile::FindFunctions(const RegularExpression &regex,
+ bool include_inlines, bool append,
+ SymbolContextList &sc_list) {
+ if (!append)
+ sc_list.Clear();
+ return 0;
}
-void
-SymbolFile::GetMangledNamesForFunction(const std::string &scope_qualified_name, std::vector<ConstString> &mangled_names)
-{
- return;
+void SymbolFile::GetMangledNamesForFunction(
+ const std::string &scope_qualified_name,
+ std::vector<ConstString> &mangled_names) {
+ return;
}
-uint32_t
-SymbolFile::FindTypes (const SymbolContext& sc, const ConstString &name, const CompilerDeclContext *parent_decl_ctx, bool append, uint32_t max_matches, llvm::DenseSet<lldb_private::SymbolFile *> &searched_symbol_files, TypeMap& types)
-{
- if (!append)
- types.Clear();
- return 0;
+uint32_t SymbolFile::FindTypes(
+ const SymbolContext &sc, const ConstString &name,
+ const CompilerDeclContext *parent_decl_ctx, bool append,
+ uint32_t max_matches,
+ llvm::DenseSet<lldb_private::SymbolFile *> &searched_symbol_files,
+ TypeMap &types) {
+ if (!append)
+ types.Clear();
+ return 0;
}
-
-size_t
-SymbolFile::FindTypes (const std::vector<CompilerContext> &context, bool append, TypeMap& types)
-{
- if (!append)
- types.Clear();
- return 0;
+size_t SymbolFile::FindTypes(const std::vector<CompilerContext> &context,
+ bool append, TypeMap &types) {
+ if (!append)
+ types.Clear();
+ return 0;
}