diff options
Diffstat (limited to 'source/Plugins/ObjectFile/ELF/ObjectFileELF.h')
-rw-r--r-- | source/Plugins/ObjectFile/ELF/ObjectFileELF.h | 94 |
1 files changed, 51 insertions, 43 deletions
diff --git a/source/Plugins/ObjectFile/ELF/ObjectFileELF.h b/source/Plugins/ObjectFile/ELF/ObjectFileELF.h index b10dfb532cd0..99088d166b12 100644 --- a/source/Plugins/ObjectFile/ELF/ObjectFileELF.h +++ b/source/Plugins/ObjectFile/ELF/ObjectFileELF.h @@ -104,11 +104,11 @@ public: //------------------------------------------------------------------ // PluginInterface protocol //------------------------------------------------------------------ - virtual lldb_private::ConstString - GetPluginName(); + lldb_private::ConstString + GetPluginName() override; - virtual uint32_t - GetPluginVersion(); + uint32_t + GetPluginVersion() override; //------------------------------------------------------------------ // ObjectFile Protocol. @@ -116,64 +116,64 @@ public: virtual ~ObjectFileELF(); - virtual bool - ParseHeader(); + bool + ParseHeader() override; - virtual bool + bool SetLoadAddress (lldb_private::Target &target, lldb::addr_t value, - bool value_is_offset); + bool value_is_offset) override; - virtual lldb::ByteOrder - GetByteOrder() const; + lldb::ByteOrder + GetByteOrder() const override; - virtual bool - IsExecutable () const; + bool + IsExecutable () const override; - virtual uint32_t - GetAddressByteSize() const; + uint32_t + GetAddressByteSize() const override; - virtual lldb::AddressClass - GetAddressClass (lldb::addr_t file_addr); + lldb::AddressClass + GetAddressClass (lldb::addr_t file_addr) override; - virtual lldb_private::Symtab * - GetSymtab(); + lldb_private::Symtab * + GetSymtab() override; - virtual lldb_private::Symbol * - ResolveSymbolForAddress(const lldb_private::Address& so_addr, bool verify_unique); + lldb_private::Symbol * + ResolveSymbolForAddress(const lldb_private::Address& so_addr, bool verify_unique) override; - virtual bool - IsStripped (); + bool + IsStripped () override; - virtual void - CreateSections (lldb_private::SectionList &unified_section_list); + void + CreateSections (lldb_private::SectionList &unified_section_list) override; - virtual void - Dump(lldb_private::Stream *s); + void + Dump(lldb_private::Stream *s) override; - virtual bool - GetArchitecture (lldb_private::ArchSpec &arch); + bool + GetArchitecture (lldb_private::ArchSpec &arch) override; - virtual bool - GetUUID(lldb_private::UUID* uuid); + bool + GetUUID(lldb_private::UUID* uuid) override; - virtual lldb_private::FileSpecList - GetDebugSymbolFilePaths(); + lldb_private::FileSpecList + GetDebugSymbolFilePaths() override; - virtual uint32_t - GetDependentModules(lldb_private::FileSpecList& files); + uint32_t + GetDependentModules(lldb_private::FileSpecList& files) override; - virtual lldb_private::Address - GetImageInfoAddress(lldb_private::Target *target); + lldb_private::Address + GetImageInfoAddress(lldb_private::Target *target) override; - virtual lldb_private::Address - GetEntryPointAddress (); + lldb_private::Address + GetEntryPointAddress () override; - virtual ObjectFile::Type - CalculateType(); + ObjectFile::Type + CalculateType() override; - virtual ObjectFile::Strata - CalculateStrata(); + ObjectFile::Strata + CalculateStrata() override; // Returns number of program headers found in the ELF file. size_t @@ -187,6 +187,9 @@ public: lldb_private::DataExtractor GetSegmentDataByIndex(lldb::user_id_t id); + std::string + StripLinkerSymbolAnnotations(llvm::StringRef symbol_name) const override; + private: ObjectFileELF(const lldb::ModuleSP &module_sp, lldb::DataBufferSP& data_sp, @@ -196,7 +199,7 @@ private: lldb::offset_t length); ObjectFileELF (const lldb::ModuleSP &module_sp, - lldb::DataBufferSP& data_sp, + lldb::DataBufferSP& header_data_sp, const lldb::ProcessSP &process_sp, lldb::addr_t header_addr); @@ -216,6 +219,8 @@ private: typedef DynamicSymbolColl::iterator DynamicSymbolCollIter; typedef DynamicSymbolColl::const_iterator DynamicSymbolCollConstIter; + typedef std::map<lldb::addr_t, lldb::AddressClass> FileAddressToAddressClassMap; + /// Version of this reader common to all plugins based on this class. static const uint32_t m_plugin_version = 1; static const uint32_t g_core_uuid_magic; @@ -249,6 +254,9 @@ private: /// The architecture detected from parsing elf file contents. lldb_private::ArchSpec m_arch_spec; + /// The address class for each symbol in the elf file + FileAddressToAddressClassMap m_address_class_map; + /// Returns a 1 based index of the given section header. size_t SectionIndex(const SectionHeaderCollIter &I); |