Ignore oatdata and oatexec symbols more widely

These are artifical symbols inside android oat files without any value
for the user while causing a significant perfoamce hit inside the
unwinder. We were already ignoring it inside system@framework@boot.oat
bot they have to be ignored in every oat file. Considering that oat
files are only used on android this have no effect on any other
platfrom.

llvm-svn: 274500
This commit is contained in:
Tamas Berghammer 2016-07-04 13:31:57 +00:00
parent 140b8d1ecd
commit c662533d05
1 changed files with 4 additions and 4 deletions

View File

@ -2184,15 +2184,15 @@ ObjectFileELF::ParseSymbols (Symtab *symtab,
static ConstString bss_section_name(".bss");
static ConstString opd_section_name(".opd"); // For ppc64
// On Android the oatdata and the oatexec symbols in system@framework@boot.oat covers the full
// .text section what causes issues with displaying unusable symbol name to the user and very
// slow unwinding speed because the instruction emulation based unwind plans try to emulate all
// On Android the oatdata and the oatexec symbols in the oat files covers the full .text
// section what causes issues with displaying unusable symbol name to the user and very slow
// unwinding speed because the instruction emulation based unwind plans try to emulate all
// instructions in these symbols. Don't add these symbols to the symbol list as they have no
// use for the debugger and they are causing a lot of trouble.
// Filtering can't be restricted to Android because this special object file don't contain the
// note section specifying the environment to Android but the custom extension and file name
// makes it highly unlikely that this will collide with anything else.
bool skip_oatdata_oatexec = m_file.GetFilename() == ConstString("system@framework@boot.oat");
bool skip_oatdata_oatexec = m_file.GetFileNameExtension() == ConstString("oat");
ArchSpec arch;
GetArchitecture(arch);