diff options
author | Tamas Berghammer <tberghammer@google.com> | 2016-07-06 16:40:09 +0000 |
---|---|---|
committer | Tamas Berghammer <tberghammer@google.com> | 2016-07-06 16:40:09 +0000 |
commit | dba6503a9be78f0f1ff140220b9c4bf684de69d4 (patch) | |
tree | 59f293f52497ed0b7575b00683949d76ad65139e | |
parent | 65c00a2b3e123d2fefca72751b9e73b3f245a066 (diff) | |
download | bcm5719-llvm-dba6503a9be78f0f1ff140220b9c4bf684de69d4.tar.gz bcm5719-llvm-dba6503a9be78f0f1ff140220b9c4bf684de69d4.zip |
Add oat symbolization support for odex files
Differential revision: http://reviews.llvm.org/D22040
llvm-svn: 274635
-rw-r--r-- | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 9 | ||||
-rw-r--r-- | lldb/source/Plugins/Platform/Android/PlatformAndroid.cpp | 5 |
2 files changed, 8 insertions, 6 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp index f2297d431c7..68e4e50a96e 100644 --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -2184,15 +2184,16 @@ 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 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 + // On Android the oatdata and the oatexec symbols in the oat and odex 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.GetFileNameExtension() == ConstString("oat"); + ConstString file_extension = m_file.GetFileNameExtension(); + bool skip_oatdata_oatexec = file_extension == ConstString("oat") || file_extension == ConstString("odex"); ArchSpec arch; GetArchitecture(arch); diff --git a/lldb/source/Plugins/Platform/Android/PlatformAndroid.cpp b/lldb/source/Plugins/Platform/Android/PlatformAndroid.cpp index 10594cfe92f..887b2343568 100644 --- a/lldb/source/Plugins/Platform/Android/PlatformAndroid.cpp +++ b/lldb/source/Plugins/Platform/Android/PlatformAndroid.cpp @@ -317,8 +317,9 @@ PlatformAndroid::DownloadSymbolFile (const lldb::ModuleSP& module_sp, const FileSpec& dst_file_spec) { // For oat file we can try to fetch additional debug info from the device - if (module_sp->GetFileSpec().GetFileNameExtension() != ConstString("oat")) - return Error("Symbol file downloading only supported for oat files"); + ConstString extension = module_sp->GetFileSpec().GetFileNameExtension(); + if (extension != ConstString("oat") && extension != ConstString("odex")) + return Error("Symbol file downloading only supported for oat and odex files"); // If we have no information about the platform file we can't execute oatdump if (!module_sp->GetPlatformFileSpec()) |