diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-01-02 19:26:05 +0000 |
| commit | 14f1b3e8826ce43b978db93a62d1166055db5394 (patch) | |
| tree | 0a00ad8d3498783fe0193f3b656bca17c4c8697d /source/Plugins/ObjectFile/ELF/ObjectFileELF.h | |
| parent | 4ee8c119c71a06dcad1e0fecc8c675e480e59337 (diff) | |
Notes
Diffstat (limited to 'source/Plugins/ObjectFile/ELF/ObjectFileELF.h')
| -rw-r--r-- | source/Plugins/ObjectFile/ELF/ObjectFileELF.h | 594 |
1 files changed, 265 insertions, 329 deletions
diff --git a/source/Plugins/ObjectFile/ELF/ObjectFileELF.h b/source/Plugins/ObjectFile/ELF/ObjectFileELF.h index e2f73f53ec63..4ce5648cfed5 100644 --- a/source/Plugins/ObjectFile/ELF/ObjectFileELF.h +++ b/source/Plugins/ObjectFile/ELF/ObjectFileELF.h @@ -19,46 +19,40 @@ // Other libraries and framework includes // Project includes -#include "lldb/lldb-private.h" +#include "lldb/Core/ArchSpec.h" +#include "lldb/Core/UUID.h" #include "lldb/Host/FileSpec.h" #include "lldb/Symbol/ObjectFile.h" -#include "lldb/Core/UUID.h" -#include "lldb/Core/ArchSpec.h" +#include "lldb/lldb-private.h" #include "ELFHeader.h" -struct ELFNote -{ - elf::elf_word n_namesz; - elf::elf_word n_descsz; - elf::elf_word n_type; +struct ELFNote { + elf::elf_word n_namesz; + elf::elf_word n_descsz; + elf::elf_word n_type; - std::string n_name; + std::string n_name; - ELFNote() : n_namesz(0), n_descsz(0), n_type(0) - { - } + ELFNote() : n_namesz(0), n_descsz(0), n_type(0) {} - /// Parse an ELFNote entry from the given DataExtractor starting at position - /// \p offset. - /// - /// @param[in] data - /// The DataExtractor to read from. - /// - /// @param[in,out] offset - /// Pointer to an offset in the data. On return the offset will be - /// advanced by the number of bytes read. - /// - /// @return - /// True if the ELFRel entry was successfully read and false otherwise. - bool - Parse(const lldb_private::DataExtractor &data, lldb::offset_t *offset); + /// Parse an ELFNote entry from the given DataExtractor starting at position + /// \p offset. + /// + /// @param[in] data + /// The DataExtractor to read from. + /// + /// @param[in,out] offset + /// Pointer to an offset in the data. On return the offset will be + /// advanced by the number of bytes read. + /// + /// @return + /// True if the ELFRel entry was successfully read and false otherwise. + bool Parse(const lldb_private::DataExtractor &data, lldb::offset_t *offset); - size_t - GetByteSize() const - { - return 12 + llvm::alignTo (n_namesz, 4) + llvm::alignTo (n_descsz, 4); - } + size_t GetByteSize() const { + return 12 + llvm::alignTo(n_namesz, 4) + llvm::alignTo(n_descsz, 4); + } }; //------------------------------------------------------------------------------ @@ -67,390 +61,332 @@ struct ELFNote /// /// This class provides a generic ELF (32/64 bit) reader plugin implementing the /// ObjectFile protocol. -class ObjectFileELF : - public lldb_private::ObjectFile -{ +class ObjectFileELF : public lldb_private::ObjectFile { public: - ~ObjectFileELF() override; + ~ObjectFileELF() override; + + //------------------------------------------------------------------ + // Static Functions + //------------------------------------------------------------------ + static void Initialize(); + + static void Terminate(); + + static lldb_private::ConstString GetPluginNameStatic(); - //------------------------------------------------------------------ - // Static Functions - //------------------------------------------------------------------ - static void - Initialize(); + static const char *GetPluginDescriptionStatic(); - static void - Terminate(); + static lldb_private::ObjectFile * + CreateInstance(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp, + lldb::offset_t data_offset, const lldb_private::FileSpec *file, + lldb::offset_t file_offset, lldb::offset_t length); - static lldb_private::ConstString - GetPluginNameStatic(); + static lldb_private::ObjectFile *CreateMemoryInstance( + const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp, + const lldb::ProcessSP &process_sp, lldb::addr_t header_addr); - static const char * - GetPluginDescriptionStatic(); + static size_t GetModuleSpecifications(const lldb_private::FileSpec &file, + lldb::DataBufferSP &data_sp, + lldb::offset_t data_offset, + lldb::offset_t file_offset, + lldb::offset_t length, + lldb_private::ModuleSpecList &specs); - static lldb_private::ObjectFile * - CreateInstance(const lldb::ModuleSP &module_sp, - lldb::DataBufferSP& data_sp, - lldb::offset_t data_offset, - const lldb_private::FileSpec* file, - lldb::offset_t file_offset, - lldb::offset_t length); + static bool MagicBytesMatch(lldb::DataBufferSP &data_sp, lldb::addr_t offset, + lldb::addr_t length); - static lldb_private::ObjectFile * - CreateMemoryInstance (const lldb::ModuleSP &module_sp, - lldb::DataBufferSP& data_sp, - const lldb::ProcessSP &process_sp, - lldb::addr_t header_addr); + //------------------------------------------------------------------ + // PluginInterface protocol + //------------------------------------------------------------------ + lldb_private::ConstString GetPluginName() override; - static size_t - GetModuleSpecifications (const lldb_private::FileSpec& file, - lldb::DataBufferSP& data_sp, - lldb::offset_t data_offset, - lldb::offset_t file_offset, - lldb::offset_t length, - lldb_private::ModuleSpecList &specs); + uint32_t GetPluginVersion() override; - static bool - MagicBytesMatch (lldb::DataBufferSP& data_sp, - lldb::addr_t offset, - lldb::addr_t length); + //------------------------------------------------------------------ + // ObjectFile Protocol. + //------------------------------------------------------------------ + bool ParseHeader() override; - //------------------------------------------------------------------ - // PluginInterface protocol - //------------------------------------------------------------------ - lldb_private::ConstString - GetPluginName() override; + bool SetLoadAddress(lldb_private::Target &target, lldb::addr_t value, + bool value_is_offset) override; - uint32_t - GetPluginVersion() override; + lldb::ByteOrder GetByteOrder() const override; - //------------------------------------------------------------------ - // ObjectFile Protocol. - //------------------------------------------------------------------ - bool - ParseHeader() override; + bool IsExecutable() const override; - bool - SetLoadAddress (lldb_private::Target &target, - lldb::addr_t value, - bool value_is_offset) override; + uint32_t GetAddressByteSize() const override; - lldb::ByteOrder - GetByteOrder() const override; + lldb::AddressClass GetAddressClass(lldb::addr_t file_addr) override; - bool - IsExecutable () const override; + lldb_private::Symtab *GetSymtab() override; - uint32_t - GetAddressByteSize() const override; + bool IsStripped() override; - lldb::AddressClass - GetAddressClass (lldb::addr_t file_addr) override; + void CreateSections(lldb_private::SectionList &unified_section_list) override; - lldb_private::Symtab * - GetSymtab() override; + void Dump(lldb_private::Stream *s) override; - bool - IsStripped () override; + bool GetArchitecture(lldb_private::ArchSpec &arch) override; - void - CreateSections (lldb_private::SectionList &unified_section_list) override; + bool GetUUID(lldb_private::UUID *uuid) override; - void - Dump(lldb_private::Stream *s) override; + lldb_private::FileSpecList GetDebugSymbolFilePaths() override; - bool - GetArchitecture (lldb_private::ArchSpec &arch) override; + uint32_t GetDependentModules(lldb_private::FileSpecList &files) override; - bool - GetUUID(lldb_private::UUID* uuid) override; + lldb_private::Address + GetImageInfoAddress(lldb_private::Target *target) override; - lldb_private::FileSpecList - GetDebugSymbolFilePaths() override; + lldb_private::Address GetEntryPointAddress() override; - uint32_t - GetDependentModules(lldb_private::FileSpecList& files) override; + ObjectFile::Type CalculateType() override; - lldb_private::Address - GetImageInfoAddress(lldb_private::Target *target) override; - - lldb_private::Address - GetEntryPointAddress () override; - - ObjectFile::Type - CalculateType() override; - - ObjectFile::Strata - CalculateStrata() override; + ObjectFile::Strata CalculateStrata() override; - // Returns number of program headers found in the ELF file. - size_t - GetProgramHeaderCount(); + // Returns number of program headers found in the ELF file. + size_t GetProgramHeaderCount(); - // Returns the program header with the given index. - const elf::ELFProgramHeader * - GetProgramHeaderByIndex(lldb::user_id_t id); + // Returns the program header with the given index. + const elf::ELFProgramHeader *GetProgramHeaderByIndex(lldb::user_id_t id); - // Returns segment data for the given index. - lldb_private::DataExtractor - GetSegmentDataByIndex(lldb::user_id_t id); + // Returns segment data for the given index. + lldb_private::DataExtractor GetSegmentDataByIndex(lldb::user_id_t id); - std::string - StripLinkerSymbolAnnotations(llvm::StringRef symbol_name) const override; + std::string + StripLinkerSymbolAnnotations(llvm::StringRef symbol_name) const override; private: - ObjectFileELF(const lldb::ModuleSP &module_sp, - lldb::DataBufferSP& data_sp, - lldb::offset_t data_offset, - const lldb_private::FileSpec* file, - lldb::offset_t offset, - lldb::offset_t length); + ObjectFileELF(const lldb::ModuleSP &module_sp, lldb::DataBufferSP &data_sp, + lldb::offset_t data_offset, const lldb_private::FileSpec *file, + lldb::offset_t offset, lldb::offset_t length); - ObjectFileELF (const lldb::ModuleSP &module_sp, - lldb::DataBufferSP& header_data_sp, - const lldb::ProcessSP &process_sp, - lldb::addr_t header_addr); + ObjectFileELF(const lldb::ModuleSP &module_sp, + lldb::DataBufferSP &header_data_sp, + const lldb::ProcessSP &process_sp, lldb::addr_t header_addr); - typedef std::vector<elf::ELFProgramHeader> ProgramHeaderColl; - typedef ProgramHeaderColl::iterator ProgramHeaderCollIter; - typedef ProgramHeaderColl::const_iterator ProgramHeaderCollConstIter; + typedef std::vector<elf::ELFProgramHeader> ProgramHeaderColl; + typedef ProgramHeaderColl::iterator ProgramHeaderCollIter; + typedef ProgramHeaderColl::const_iterator ProgramHeaderCollConstIter; - struct ELFSectionHeaderInfo : public elf::ELFSectionHeader - { - lldb_private::ConstString section_name; - }; + struct ELFSectionHeaderInfo : public elf::ELFSectionHeader { + lldb_private::ConstString section_name; + }; - typedef std::vector<ELFSectionHeaderInfo> SectionHeaderColl; - typedef SectionHeaderColl::iterator SectionHeaderCollIter; - typedef SectionHeaderColl::const_iterator SectionHeaderCollConstIter; + typedef std::vector<ELFSectionHeaderInfo> SectionHeaderColl; + typedef SectionHeaderColl::iterator SectionHeaderCollIter; + typedef SectionHeaderColl::const_iterator SectionHeaderCollConstIter; - typedef std::vector<elf::ELFDynamic> DynamicSymbolColl; - typedef DynamicSymbolColl::iterator DynamicSymbolCollIter; - typedef DynamicSymbolColl::const_iterator DynamicSymbolCollConstIter; + typedef std::vector<elf::ELFDynamic> DynamicSymbolColl; + typedef DynamicSymbolColl::iterator DynamicSymbolCollIter; + typedef DynamicSymbolColl::const_iterator DynamicSymbolCollConstIter; - typedef std::map<lldb::addr_t, lldb::AddressClass> FileAddressToAddressClassMap; - typedef std::function<lldb::offset_t (lldb_private::DataExtractor &, lldb::offset_t, lldb::offset_t)> SetDataFunction; + typedef std::map<lldb::addr_t, lldb::AddressClass> + FileAddressToAddressClassMap; + typedef std::function<lldb::offset_t(lldb_private::DataExtractor &, + lldb::offset_t, lldb::offset_t)> + SetDataFunction; - /// 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; + /// 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; - /// ELF file header. - elf::ELFHeader m_header; + /// ELF file header. + elf::ELFHeader m_header; - /// ELF build ID. - lldb_private::UUID m_uuid; + /// ELF build ID. + lldb_private::UUID m_uuid; - /// ELF .gnu_debuglink file and crc data if available. - std::string m_gnu_debuglink_file; - uint32_t m_gnu_debuglink_crc; + /// ELF .gnu_debuglink file and crc data if available. + std::string m_gnu_debuglink_file; + uint32_t m_gnu_debuglink_crc; - /// Collection of program headers. - ProgramHeaderColl m_program_headers; + /// Collection of program headers. + ProgramHeaderColl m_program_headers; - /// Collection of section headers. - SectionHeaderColl m_section_headers; + /// Collection of section headers. + SectionHeaderColl m_section_headers; - /// Collection of symbols from the dynamic table. - DynamicSymbolColl m_dynamic_symbols; + /// Collection of symbols from the dynamic table. + DynamicSymbolColl m_dynamic_symbols; - /// List of file specifications corresponding to the modules (shared - /// libraries) on which this object file depends. - mutable std::unique_ptr<lldb_private::FileSpecList> m_filespec_ap; + /// List of file specifications corresponding to the modules (shared + /// libraries) on which this object file depends. + mutable std::unique_ptr<lldb_private::FileSpecList> m_filespec_ap; - /// Cached value of the entry point for this module. - lldb_private::Address m_entry_point_address; + /// Cached value of the entry point for this module. + lldb_private::Address m_entry_point_address; - /// The architecture detected from parsing elf file contents. - lldb_private::ArchSpec m_arch_spec; + /// 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; + /// 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); + /// Returns a 1 based index of the given section header. + size_t SectionIndex(const SectionHeaderCollIter &I); - /// Returns a 1 based index of the given section header. - size_t - SectionIndex(const SectionHeaderCollConstIter &I) const; + /// Returns a 1 based index of the given section header. + size_t SectionIndex(const SectionHeaderCollConstIter &I) const; - // Parses the ELF program headers. - static size_t - GetProgramHeaderInfo(ProgramHeaderColl &program_headers, - const SetDataFunction &set_data, - const elf::ELFHeader &header); + // Parses the ELF program headers. + static size_t GetProgramHeaderInfo(ProgramHeaderColl &program_headers, + const SetDataFunction &set_data, + const elf::ELFHeader &header); - // Finds PT_NOTE segments and calculates their crc sum. - static uint32_t - CalculateELFNotesSegmentsCRC32(const ProgramHeaderColl& program_headers, - lldb_private::DataExtractor &data); + // Finds PT_NOTE segments and calculates their crc sum. + static uint32_t + CalculateELFNotesSegmentsCRC32(const ProgramHeaderColl &program_headers, + lldb_private::DataExtractor &data); - /// Parses all section headers present in this object file and populates - /// m_program_headers. This method will compute the header list only once. - /// Returns the number of headers parsed. - size_t - ParseProgramHeaders(); + /// Parses all section headers present in this object file and populates + /// m_program_headers. This method will compute the header list only once. + /// Returns the number of headers parsed. + size_t ParseProgramHeaders(); - /// Parses all section headers present in this object file and populates - /// m_section_headers. This method will compute the header list only once. - /// Returns the number of headers parsed. - size_t - ParseSectionHeaders(); + /// Parses all section headers present in this object file and populates + /// m_section_headers. This method will compute the header list only once. + /// Returns the number of headers parsed. + size_t ParseSectionHeaders(); - static void - ParseARMAttributes(lldb_private::DataExtractor &data, uint64_t length, - lldb_private::ArchSpec &arch_spec); + static void ParseARMAttributes(lldb_private::DataExtractor &data, + uint64_t length, + lldb_private::ArchSpec &arch_spec); - /// Parses the elf section headers and returns the uuid, debug link name, crc, archspec. - static size_t - GetSectionHeaderInfo(SectionHeaderColl §ion_headers, - const SetDataFunction &set_data, - const elf::ELFHeader &header, - lldb_private::UUID &uuid, - std::string &gnu_debuglink_file, - uint32_t &gnu_debuglink_crc, - lldb_private::ArchSpec &arch_spec); + /// Parses the elf section headers and returns the uuid, debug link name, crc, + /// archspec. + static size_t GetSectionHeaderInfo(SectionHeaderColl §ion_headers, + const SetDataFunction &set_data, + const elf::ELFHeader &header, + lldb_private::UUID &uuid, + std::string &gnu_debuglink_file, + uint32_t &gnu_debuglink_crc, + lldb_private::ArchSpec &arch_spec); - /// Scans the dynamic section and locates all dependent modules (shared - /// libraries) populating m_filespec_ap. This method will compute the - /// dependent module list only once. Returns the number of dependent - /// modules parsed. - size_t - ParseDependentModules(); + /// Scans the dynamic section and locates all dependent modules (shared + /// libraries) populating m_filespec_ap. This method will compute the + /// dependent module list only once. Returns the number of dependent + /// modules parsed. + size_t ParseDependentModules(); - /// Parses the dynamic symbol table and populates m_dynamic_symbols. The - /// vector retains the order as found in the object file. Returns the - /// number of dynamic symbols parsed. - size_t - ParseDynamicSymbols(); + /// Parses the dynamic symbol table and populates m_dynamic_symbols. The + /// vector retains the order as found in the object file. Returns the + /// number of dynamic symbols parsed. + size_t ParseDynamicSymbols(); - /// Populates m_symtab_ap will all non-dynamic linker symbols. This method - /// will parse the symbols only once. Returns the number of symbols parsed. - unsigned - ParseSymbolTable(lldb_private::Symtab *symbol_table, - lldb::user_id_t start_id, - lldb_private::Section *symtab); + /// Populates m_symtab_ap will all non-dynamic linker symbols. This method + /// will parse the symbols only once. Returns the number of symbols parsed. + unsigned ParseSymbolTable(lldb_private::Symtab *symbol_table, + lldb::user_id_t start_id, + lldb_private::Section *symtab); - /// Helper routine for ParseSymbolTable(). - unsigned - ParseSymbols(lldb_private::Symtab *symbol_table, - lldb::user_id_t start_id, - lldb_private::SectionList *section_list, - const size_t num_symbols, - const lldb_private::DataExtractor &symtab_data, - const lldb_private::DataExtractor &strtab_data); + /// Helper routine for ParseSymbolTable(). + unsigned ParseSymbols(lldb_private::Symtab *symbol_table, + lldb::user_id_t start_id, + lldb_private::SectionList *section_list, + const size_t num_symbols, + const lldb_private::DataExtractor &symtab_data, + const lldb_private::DataExtractor &strtab_data); - /// Scans the relocation entries and adds a set of artificial symbols to the - /// given symbol table for each PLT slot. Returns the number of symbols - /// added. - unsigned - ParseTrampolineSymbols(lldb_private::Symtab *symbol_table, - lldb::user_id_t start_id, - const ELFSectionHeaderInfo *rela_hdr, - lldb::user_id_t section_id); + /// Scans the relocation entries and adds a set of artificial symbols to the + /// given symbol table for each PLT slot. Returns the number of symbols + /// added. + unsigned ParseTrampolineSymbols(lldb_private::Symtab *symbol_table, + lldb::user_id_t start_id, + const ELFSectionHeaderInfo *rela_hdr, + lldb::user_id_t section_id); - void - ParseUnwindSymbols(lldb_private::Symtab *symbol_table, - lldb_private::DWARFCallFrameInfo* eh_frame); + void ParseUnwindSymbols(lldb_private::Symtab *symbol_table, + lldb_private::DWARFCallFrameInfo *eh_frame); - /// Relocates debug sections - unsigned - RelocateDebugSections(const elf::ELFSectionHeader *rel_hdr, lldb::user_id_t rel_id); + /// Relocates debug sections + unsigned RelocateDebugSections(const elf::ELFSectionHeader *rel_hdr, + lldb::user_id_t rel_id); - unsigned - RelocateSection(lldb_private::Symtab* symtab, const elf::ELFHeader *hdr, const elf::ELFSectionHeader *rel_hdr, - const elf::ELFSectionHeader *symtab_hdr, const elf::ELFSectionHeader *debug_hdr, - lldb_private::DataExtractor &rel_data, lldb_private::DataExtractor &symtab_data, - lldb_private::DataExtractor &debug_data, lldb_private::Section* rel_section); + unsigned RelocateSection(lldb_private::Symtab *symtab, + const elf::ELFHeader *hdr, + const elf::ELFSectionHeader *rel_hdr, + const elf::ELFSectionHeader *symtab_hdr, + const elf::ELFSectionHeader *debug_hdr, + lldb_private::DataExtractor &rel_data, + lldb_private::DataExtractor &symtab_data, + lldb_private::DataExtractor &debug_data, + lldb_private::Section *rel_section); - /// Loads the section name string table into m_shstr_data. Returns the - /// number of bytes constituting the table. - size_t - GetSectionHeaderStringTable(); + /// Loads the section name string table into m_shstr_data. Returns the + /// number of bytes constituting the table. + size_t GetSectionHeaderStringTable(); - /// Utility method for looking up a section given its name. Returns the - /// index of the corresponding section or zero if no section with the given - /// name can be found (note that section indices are always 1 based, and so - /// section index 0 is never valid). - lldb::user_id_t - GetSectionIndexByName(const char *name); + /// Utility method for looking up a section given its name. Returns the + /// index of the corresponding section or zero if no section with the given + /// name can be found (note that section indices are always 1 based, and so + /// section index 0 is never valid). + lldb::user_id_t GetSectionIndexByName(const char *name); - // Returns the ID of the first section that has the given type. - lldb::user_id_t - GetSectionIndexByType(unsigned type); + // Returns the ID of the first section that has the given type. + lldb::user_id_t GetSectionIndexByType(unsigned type); - /// Returns the section header with the given id or NULL. - const ELFSectionHeaderInfo * - GetSectionHeaderByIndex(lldb::user_id_t id); + /// Returns the section header with the given id or NULL. + const ELFSectionHeaderInfo *GetSectionHeaderByIndex(lldb::user_id_t id); - /// @name ELF header dump routines - //@{ - static void - DumpELFHeader(lldb_private::Stream *s, const elf::ELFHeader& header); + /// @name ELF header dump routines + //@{ + static void DumpELFHeader(lldb_private::Stream *s, + const elf::ELFHeader &header); - static void - DumpELFHeader_e_ident_EI_DATA(lldb_private::Stream *s, - unsigned char ei_data); + static void DumpELFHeader_e_ident_EI_DATA(lldb_private::Stream *s, + unsigned char ei_data); - static void - DumpELFHeader_e_type(lldb_private::Stream *s, elf::elf_half e_type); - //@} + static void DumpELFHeader_e_type(lldb_private::Stream *s, + elf::elf_half e_type); + //@} - /// @name ELF program header dump routines - //@{ - void - DumpELFProgramHeaders(lldb_private::Stream *s); + /// @name ELF program header dump routines + //@{ + void DumpELFProgramHeaders(lldb_private::Stream *s); - static void - DumpELFProgramHeader(lldb_private::Stream *s, - const elf::ELFProgramHeader &ph); + static void DumpELFProgramHeader(lldb_private::Stream *s, + const elf::ELFProgramHeader &ph); - static void - DumpELFProgramHeader_p_type(lldb_private::Stream *s, elf::elf_word p_type); + static void DumpELFProgramHeader_p_type(lldb_private::Stream *s, + elf::elf_word p_type); - static void - DumpELFProgramHeader_p_flags(lldb_private::Stream *s, - elf::elf_word p_flags); - //@} + static void DumpELFProgramHeader_p_flags(lldb_private::Stream *s, + elf::elf_word p_flags); + //@} - /// @name ELF section header dump routines - //@{ - void - DumpELFSectionHeaders(lldb_private::Stream *s); + /// @name ELF section header dump routines + //@{ + void DumpELFSectionHeaders(lldb_private::Stream *s); - static void - DumpELFSectionHeader(lldb_private::Stream *s, - const ELFSectionHeaderInfo& sh); + static void DumpELFSectionHeader(lldb_private::Stream *s, + const ELFSectionHeaderInfo &sh); - static void - DumpELFSectionHeader_sh_type(lldb_private::Stream *s, - elf::elf_word sh_type); + static void DumpELFSectionHeader_sh_type(lldb_private::Stream *s, + elf::elf_word sh_type); - static void - DumpELFSectionHeader_sh_flags(lldb_private::Stream *s, - elf::elf_xword sh_flags); - //@} + static void DumpELFSectionHeader_sh_flags(lldb_private::Stream *s, + elf::elf_xword sh_flags); + //@} - /// ELF dependent module dump routine. - void - DumpDependentModules(lldb_private::Stream *s); + /// ELF dependent module dump routine. + void DumpDependentModules(lldb_private::Stream *s); - const elf::ELFDynamic * - FindDynamicSymbol(unsigned tag); - - unsigned - PLTRelocationType(); + const elf::ELFDynamic *FindDynamicSymbol(unsigned tag); - static lldb_private::Error - RefineModuleDetailsFromNote (lldb_private::DataExtractor &data, lldb_private::ArchSpec &arch_spec, lldb_private::UUID &uuid); + unsigned PLTRelocationType(); + static lldb_private::Error + RefineModuleDetailsFromNote(lldb_private::DataExtractor &data, + lldb_private::ArchSpec &arch_spec, + lldb_private::UUID &uuid); - static lldb::offset_t - SetData(const lldb_private::DataExtractor &src, lldb_private::DataExtractor &dst, lldb::offset_t offset, lldb::offset_t length); + static lldb::offset_t SetData(const lldb_private::DataExtractor &src, + lldb_private::DataExtractor &dst, + lldb::offset_t offset, lldb::offset_t length); - lldb::offset_t - SetDataWithReadMemoryFallback(lldb_private::DataExtractor &dst, lldb::offset_t offset, lldb::offset_t length); + lldb::offset_t SetDataWithReadMemoryFallback(lldb_private::DataExtractor &dst, + lldb::offset_t offset, + lldb::offset_t length); }; #endif // liblldb_ObjectFileELF_h_ |
