summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
diff options
context:
space:
mode:
authorTodd Fiala <tfiala@google.com>2014-03-25 19:29:09 +0000
committerTodd Fiala <tfiala@google.com>2014-03-25 19:29:09 +0000
commit4339f3a434517e3d9f7f08d1221e7e266e596258 (patch)
treeddc582d7e9ce1ea20e3af744bbc4cc29f598cf22 /lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
parent6c32ff31d01998bd149d4dbdbe6eda9c4d3583ef (diff)
downloadbcm5719-llvm-4339f3a434517e3d9f7f08d1221e7e266e596258.tar.gz
bcm5719-llvm-4339f3a434517e3d9f7f08d1221e7e266e596258.zip
Improve Elf object file UUID calculation performance.
This change makes significant improvements in the performance of calculating a UUID within ObjectFileELF, and handles both running processes and core files correctly. This does lazy evaluation of UUID generation and caches the result when calculated. Change by Piotr Rak. llvm-svn: 204749
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h')
-rw-r--r--lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
index 44b40a4f123..ac7d38c0468 100644
--- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
+++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
@@ -214,6 +214,7 @@ private:
/// Version of this reader common to all plugins based on this class.
static const uint32_t m_plugin_version = 1;
+ static const uint32_t g_core_uuid_magic;
/// ELF file header.
elf::ELFHeader m_header;
@@ -249,6 +250,17 @@ private:
size_t
SectionIndex(const SectionHeaderCollConstIter &I) const;
+ // Parses the ELF program headers.
+ static size_t
+ GetProgramHeaderInfo(ProgramHeaderColl &program_headers,
+ lldb_private::DataExtractor &data,
+ const elf::ELFHeader &header);
+
+ // Finds PT_NOTE segments and calculates their crc sum.
+ static uint32_t
+ CalculateELFNotesSegmentsCRC32(const ProgramHeaderColl& program_headers,
+ lldb_private::DataExtractor &data);
+
/// Parses all section headers present in this object file and populates
/// m_program_headers. This method will compute the header list only once.
/// Returns the number of headers parsed.
OpenPOWER on IntegriCloud