diff options
author | emaste <emaste@FreeBSD.org> | 2015-07-04 01:02:43 +0000 |
---|---|---|
committer | emaste <emaste@FreeBSD.org> | 2015-07-04 01:02:43 +0000 |
commit | cea4c167517a0678c7dbf92a0324088dcbac1035 (patch) | |
tree | 02de7f7c9d5a08ae1c4d3b4c98a565ff96cd52e6 /contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h | |
parent | 1756896fd2b99ede7ebeb8019d4004bdfeed3bbe (diff) | |
parent | 8037fa4ee916fa20b3c63cbf531f4ee7e1c76138 (diff) | |
download | FreeBSD-src-cea4c167517a0678c7dbf92a0324088dcbac1035.zip FreeBSD-src-cea4c167517a0678c7dbf92a0324088dcbac1035.tar.gz |
Update LLDB snapshot to upstream r241361
Notable upstream commits (upstream revision in parens):
- Add a JSON producer to LLDB (228636)
- Don't crash on bad DWARF expression (228729)
- Add support of DWARFv3 DW_OP_form_tls_address (231342)
- Assembly profiler for MIPS64 (232619)
- Handle FreeBSD/arm64 core files (233273)
- Read/Write register for MIPS64 (233685)
- Rework LLDB system initialization (233758)
- SysV ABI for aarch64 (236098)
- MIPS software single stepping (236696)
- FreeBSD/arm live debugging support (237303)
- Assembly profiler for mips32 (237420)
- Parse function name from DWARF DW_AT_abstract_origin (238307)
- Improve LLDB prompt handling (238313)
- Add real time signals support to FreeBSDSignals (238316)
- Fix race in IOHandlerProcessSTDIO (238423)
- MIPS64 Branch instruction emulation for SW single stepping (238820)
- Improve OSType initialization in elf object file's arch_spec (239148)
- Emulation of MIPS64 floating-point branch instructions (239996)
- ABI Plugin for MIPS32 (239997)
- ABI Plugin for MIPS64 (240123)
- MIPS32 branch emulation and single stepping (240373)
- Improve instruction emulation based stack unwinding on ARM (240533)
- Add branch emulation to aarch64 instruction emulator (240769)
Diffstat (limited to 'contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h')
-rw-r--r-- | contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h | 94 |
1 files changed, 51 insertions, 43 deletions
diff --git a/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h b/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h index b10dfb5..99088d1 100644 --- a/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h +++ b/contrib/llvm/tools/lldb/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); |