summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h')
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h259
1 files changed, 0 insertions, 259 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
deleted file mode 100644
index 4ac0f4c97721..000000000000
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h
+++ /dev/null
@@ -1,259 +0,0 @@
-//===-- SymbolFileDWARFDebugMap.h ------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef SymbolFileDWARF_SymbolFileDWARFDebugMap_h_
-#define SymbolFileDWARF_SymbolFileDWARFDebugMap_h_
-
-
-#include <vector>
-#include <bitset>
-
-#include "clang/AST/CharUnits.h"
-
-#include "lldb/Symbol/SymbolFile.h"
-
-#include "UniqueDWARFASTType.h"
-
-class SymbolFileDWARF;
-class DWARFCompileUnit;
-class DWARFDebugInfoEntry;
-
-class SymbolFileDWARFDebugMap : public lldb_private::SymbolFile
-{
-public:
- //------------------------------------------------------------------
- // Static Functions
- //------------------------------------------------------------------
- static void
- Initialize();
-
- static void
- Terminate();
-
- static const char *
- GetPluginNameStatic();
-
- static const char *
- GetPluginDescriptionStatic();
-
- static lldb_private::SymbolFile *
- CreateInstance (lldb_private::ObjectFile* obj_file);
-
- //------------------------------------------------------------------
- // Constructors and Destructors
- //------------------------------------------------------------------
- SymbolFileDWARFDebugMap (lldb_private::ObjectFile* ofile);
- virtual ~ SymbolFileDWARFDebugMap ();
-
- virtual uint32_t CalculateAbilities ();
-
- virtual void InitializeObject();
-
- //------------------------------------------------------------------
- // Compile Unit function calls
- //------------------------------------------------------------------
- virtual uint32_t GetNumCompileUnits ();
- virtual lldb::CompUnitSP ParseCompileUnitAtIndex (uint32_t index);
-
- virtual size_t ParseCompileUnitFunctions (const lldb_private::SymbolContext& sc);
- virtual bool ParseCompileUnitLineTable (const lldb_private::SymbolContext& sc);
- virtual bool ParseCompileUnitSupportFiles (const lldb_private::SymbolContext& sc, lldb_private::FileSpecList &support_files);
- virtual size_t ParseFunctionBlocks (const lldb_private::SymbolContext& sc);
- virtual size_t ParseTypes (const lldb_private::SymbolContext& sc);
- virtual size_t ParseVariablesForContext (const lldb_private::SymbolContext& sc);
-
- virtual lldb_private::Type* ResolveTypeUID (lldb::user_id_t type_uid);
- virtual clang::DeclContext* GetClangDeclContextContainingTypeUID (lldb::user_id_t type_uid);
- virtual clang::DeclContext* GetClangDeclContextForTypeUID (const lldb_private::SymbolContext &sc, lldb::user_id_t type_uid);
- virtual lldb::clang_type_t ResolveClangOpaqueTypeDefinition (lldb::clang_type_t clang_Type);
- virtual uint32_t ResolveSymbolContext (const lldb_private::Address& so_addr, uint32_t resolve_scope, lldb_private::SymbolContext& sc);
- virtual uint32_t ResolveSymbolContext (const lldb_private::FileSpec& file_spec, uint32_t line, bool check_inlines, uint32_t resolve_scope, lldb_private::SymbolContextList& sc_list);
- virtual uint32_t FindGlobalVariables (const lldb_private::ConstString &name, const lldb_private::ClangNamespaceDecl *namespace_decl, bool append, uint32_t max_matches, lldb_private::VariableList& variables);
- virtual uint32_t FindGlobalVariables (const lldb_private::RegularExpression& regex, bool append, uint32_t max_matches, lldb_private::VariableList& variables);
- virtual uint32_t FindFunctions (const lldb_private::ConstString &name, const lldb_private::ClangNamespaceDecl *namespace_decl, uint32_t name_type_mask, bool include_inlines, bool append, lldb_private::SymbolContextList& sc_list);
- virtual uint32_t FindFunctions (const lldb_private::RegularExpression& regex, bool include_inlines, bool append, lldb_private::SymbolContextList& sc_list);
- virtual uint32_t FindTypes (const lldb_private::SymbolContext& sc, const lldb_private::ConstString &name, const lldb_private::ClangNamespaceDecl *namespace_decl, bool append, uint32_t max_matches, lldb_private::TypeList& types);
- virtual lldb_private::ClangNamespaceDecl
- FindNamespace (const lldb_private::SymbolContext& sc,
- const lldb_private::ConstString &name,
- const lldb_private::ClangNamespaceDecl *parent_namespace_decl);
-
-
- //------------------------------------------------------------------
- // ClangASTContext callbacks for external source lookups.
- //------------------------------------------------------------------
- static void
- CompleteTagDecl (void *baton, clang::TagDecl *);
-
- static void
- CompleteObjCInterfaceDecl (void *baton, clang::ObjCInterfaceDecl *);
-
- static bool
- LayoutRecordType (void *baton,
- const clang::RecordDecl *record_decl,
- uint64_t &size,
- uint64_t &alignment,
- llvm::DenseMap <const clang::FieldDecl *, uint64_t> &field_offsets,
- llvm::DenseMap <const clang::CXXRecordDecl *, clang::CharUnits> &base_offsets,
- llvm::DenseMap <const clang::CXXRecordDecl *, clang::CharUnits> &vbase_offsets);
-
-
- //------------------------------------------------------------------
- // PluginInterface protocol
- //------------------------------------------------------------------
- virtual const char *
- GetPluginName();
-
- virtual const char *
- GetShortPluginName();
-
- virtual uint32_t
- GetPluginVersion();
-
-protected:
- enum
- {
- kHaveInitializedOSOs = (1 << 0),
- kNumFlags
- };
-
- friend class SymbolFileDWARF;
-
- //------------------------------------------------------------------
- // Class specific types
- //------------------------------------------------------------------
- struct CompileUnitInfo
- {
- lldb_private::FileSpec so_file;
- lldb_private::Symbol *so_symbol;
- lldb_private::Symbol *oso_symbol;
- lldb_private::Symbol *last_symbol;
- uint32_t first_symbol_index;
- uint32_t last_symbol_index;
- lldb::ModuleSP oso_module_sp;
- lldb::CompUnitSP oso_compile_unit_sp;
- lldb_private::SymbolVendor *oso_symbol_vendor;
- std::vector<uint32_t> function_indexes;
- std::vector<uint32_t> static_indexes;
- STD_SHARED_PTR(lldb_private::SectionList) debug_map_sections_sp;
- bool symbol_file_supported;
-
- CompileUnitInfo() :
- so_file (),
- so_symbol (NULL),
- oso_symbol (NULL),
- last_symbol (NULL),
- first_symbol_index (UINT32_MAX),
- last_symbol_index (UINT32_MAX),
- oso_module_sp (),
- oso_compile_unit_sp (),
- oso_symbol_vendor (NULL),
- function_indexes (),
- static_indexes (),
- debug_map_sections_sp (),
- symbol_file_supported (true)
- {
- }
- };
-
- //------------------------------------------------------------------
- // Protected Member Functions
- //------------------------------------------------------------------
- void
- InitOSO ();
-
- static uint32_t
- GetOSOIndexFromUserID (lldb::user_id_t uid)
- {
- return (uint32_t)((uid >> 32ull) - 1ull);
- }
- bool
- GetFileSpecForSO (uint32_t oso_idx, lldb_private::FileSpec &file_spec);
-
- CompileUnitInfo *
- GetCompUnitInfo (const lldb_private::SymbolContext& sc);
-
- lldb_private::Module *
- GetModuleByCompUnitInfo (CompileUnitInfo *comp_unit_info);
-
- lldb_private::Module *
- GetModuleByOSOIndex (uint32_t oso_idx);
-
- lldb_private::ObjectFile *
- GetObjectFileByCompUnitInfo (CompileUnitInfo *comp_unit_info);
-
- lldb_private::ObjectFile *
- GetObjectFileByOSOIndex (uint32_t oso_idx);
-
- uint32_t
- GetCompUnitInfoIndex (const CompileUnitInfo *comp_unit_info);
-
- SymbolFileDWARF *
- GetSymbolFile (const lldb_private::SymbolContext& sc);
-
- SymbolFileDWARF *
- GetSymbolFileByCompUnitInfo (CompileUnitInfo *comp_unit_info);
-
- SymbolFileDWARF *
- GetSymbolFileByOSOIndex (uint32_t oso_idx);
-
- CompileUnitInfo *
- GetCompileUnitInfoForSymbolWithIndex (uint32_t symbol_idx, uint32_t *oso_idx_ptr);
-
- CompileUnitInfo *
- GetCompileUnitInfoForSymbolWithID (lldb::user_id_t symbol_id, uint32_t *oso_idx_ptr);
-
- static int
- SymbolContainsSymbolWithIndex (uint32_t *symbol_idx_ptr, const CompileUnitInfo *comp_unit_info);
-
- static int
- SymbolContainsSymbolWithID (lldb::user_id_t *symbol_idx_ptr, const CompileUnitInfo *comp_unit_info);
-
- uint32_t
- PrivateFindGlobalVariables (const lldb_private::ConstString &name,
- const lldb_private::ClangNamespaceDecl *namespace_decl,
- const std::vector<uint32_t> &name_symbol_indexes,
- uint32_t max_matches,
- lldb_private::VariableList& variables);
-
-
- void
- SetCompileUnit (SymbolFileDWARF *oso_dwarf, const lldb::CompUnitSP &cu_sp);
-
- lldb::TypeSP
- FindDefinitionTypeForDIE (DWARFCompileUnit* cu,
- const DWARFDebugInfoEntry *die,
- const lldb_private::ConstString &type_name);
-
- bool
- Supports_DW_AT_APPLE_objc_complete_type (SymbolFileDWARF *skip_dwarf_oso);
-
- lldb::TypeSP
- FindCompleteObjCDefinitionTypeForDIE (const DWARFDebugInfoEntry *die,
- const lldb_private::ConstString &type_name,
- bool must_be_implementation);
-
-
- UniqueDWARFASTTypeMap &
- GetUniqueDWARFASTTypeMap ()
- {
- return m_unique_ast_type_map;
- }
- //------------------------------------------------------------------
- // Member Variables
- //------------------------------------------------------------------
- std::bitset<kNumFlags> m_flags;
- std::vector<CompileUnitInfo> m_compile_unit_infos;
- std::vector<uint32_t> m_func_indexes; // Sorted by address
- std::vector<uint32_t> m_glob_indexes;
- UniqueDWARFASTTypeMap m_unique_ast_type_map;
- lldb_private::LazyBool m_supports_DW_AT_APPLE_objc_complete_type;
-};
-
-#endif // #ifndef SymbolFileDWARF_SymbolFileDWARFDebugMap_h_