aboutsummaryrefslogtreecommitdiff
path: root/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/Plugins/ObjectFile/ELF/ObjectFileELF.h')
-rw-r--r--source/Plugins/ObjectFile/ELF/ObjectFileELF.h94
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);