diff options
author | Greg Clayton <gclayton@apple.com> | 2013-07-10 01:23:25 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2013-07-10 01:23:25 +0000 |
commit | 3046e668301ec9df4ead087fdc906877b9dcbf82 (patch) | |
tree | ff149c296cddf3415649f2571282ef53b3554fbd /lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h | |
parent | 8978a9dd0a42139809f56b6df47a0663f341918b (diff) | |
download | bcm5719-llvm-3046e668301ec9df4ead087fdc906877b9dcbf82.tar.gz bcm5719-llvm-3046e668301ec9df4ead087fdc906877b9dcbf82.zip |
Cleanup on the unified section list changes. Main changes are:
- ObjectFile::GetSymtab() and ObjectFile::ClearSymtab() no longer takes any flags
- Module coordinates with the object files and contain a unified section list so that object file and symbol file can share sections when they need to, yet contain their own sections.
Other cleanups:
- Fixed Symbol::GetByteSize() to not have the symbol table compute the byte sizes on the fly
- Modified the ObjectFileMachO class to compute symbol sizes all at once efficiently
- Modified the Symtab class to store a file address lookup table for more efficient lookups
- Removed Section::Finalize() and SectionList::Finalize() as they did nothing
- Improved performance of the detection of symbol files that have debug maps by excluding stripped files and core files, debug files, object files and stubs
- Added the ability to tell if an ObjectFile has been stripped with ObjectFile::IsStripped() (used this for the above performance improvement)
llvm-svn: 185990
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h')
-rw-r--r-- | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h index a6e3cbb3fd9..e186fc310ac 100644 --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h +++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h @@ -100,10 +100,13 @@ public: GetAddressByteSize() const; virtual lldb_private::Symtab * - GetSymtab(uint32_t flags = 0); + GetSymtab(); - virtual lldb_private::SectionList * - GetSectionList(); + virtual bool + IsStripped (); + + virtual void + CreateSections (lldb_private::SectionList &unified_section_list); virtual void Dump(lldb_private::Stream *s); @@ -232,14 +235,14 @@ private: unsigned ParseSymbolTable(lldb_private::Symtab *symbol_table, lldb::user_id_t start_id, - lldb::user_id_t symtab_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 ELFSectionHeaderInfo *symtab_shdr, + const size_t num_symbols, const lldb_private::DataExtractor &symtab_data, const lldb_private::DataExtractor &strtab_data); @@ -252,17 +255,6 @@ private: const ELFSectionHeaderInfo *rela_hdr, lldb::user_id_t section_id); - /// 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 section header with the given id or NULL. const ELFSectionHeaderInfo * GetSectionHeaderByIndex(lldb::user_id_t id); |