summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2015-10-28 18:04:38 +0000
committerGreg Clayton <gclayton@apple.com>2015-10-28 18:04:38 +0000
commitb704b69e0bf6db0d0369ee84f7437d231a3fcfe9 (patch)
treeece8698e14cbb997b5de2e10cb1dbd0280c5174c /lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
parent06f4e43d290a107217f96cc0b6737cc3ee637c04 (diff)
downloadbcm5719-llvm-b704b69e0bf6db0d0369ee84f7437d231a3fcfe9.tar.gz
bcm5719-llvm-b704b69e0bf6db0d0369ee84f7437d231a3fcfe9.zip
Make core files not crash when you load a core file into LLDB with just "lldb -c core".
To do this I added a few new ways to determine the OS from PT_NOTE notes in the ELF file: 1 - Look for "LINUX" notes which indicate "linux" should be the OS 2 - Look through the "CORE" notes with NT_FILE as the type and sniff data from the paths listed in this section. On Ubuntu they contain "/lib/x86_64-linux-gnu" which has the triple and allows us to set "linux" as the OS in the architecture returned from ObjectFileELF::GetArchitecture(). Setting the OS correctly allows us to get the triple correct so we can extract registers without asserting and killing LLDB. Also use the data from the NT_FILE to set the main executable if one isn't set in ProcessElfCore::DoLoadCore(). llvm-svn: 251537
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h')
-rw-r--r--lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
index e6ef5dc1c80..4b97f92c6c5 100644
--- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
+++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
@@ -52,6 +52,12 @@ struct ELFNote
/// 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::RoundUpToAlignment (n_namesz, 4) + llvm::RoundUpToAlignment (n_descsz, 4);
+ }
};
//------------------------------------------------------------------------------
OpenPOWER on IntegriCloud