diff options
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h')
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h | 259 |
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_ |
