Improve the handling of missing elf symtab and missing symbol sizes

* Generate artificial symbol names from eh_fame during symbol parsing
  so these symbols are already present when we calcualte the size of
  the symbols where 0 is specified.
* Fix symbol size calculation for the last symbol in the file where
  it have to last until the end of the parent section.

Differential revision: http://reviews.llvm.org/D16996

llvm-svn: 260369
This commit is contained in:
Tamas Berghammer
2016-02-10 10:43:34 +00:00
parent 10e9923841
commit ed844cbc0f
10 changed files with 152 additions and 146 deletions

View File

@@ -150,9 +150,6 @@ public:
lldb_private::Symtab *
GetSymtab() override;
lldb_private::Symbol *
ResolveSymbolForAddress(const lldb_private::Address& so_addr, bool verify_unique) override;
bool
IsStripped () override;
@@ -349,6 +346,10 @@ private:
const ELFSectionHeaderInfo *rela_hdr,
lldb::user_id_t section_id);
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);