1*635a8641SAndroid Build Coastguard Worker // Copyright 2018 The Chromium Authors. All rights reserved. 2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file. 4*635a8641SAndroid Build Coastguard Worker 5*635a8641SAndroid Build Coastguard Worker #ifndef BASE_DEBUG_ELF_READER_LINUX_H_ 6*635a8641SAndroid Build Coastguard Worker #define BASE_DEBUG_ELF_READER_LINUX_H_ 7*635a8641SAndroid Build Coastguard Worker 8*635a8641SAndroid Build Coastguard Worker #include <string> 9*635a8641SAndroid Build Coastguard Worker 10*635a8641SAndroid Build Coastguard Worker #include "base/base_export.h" 11*635a8641SAndroid Build Coastguard Worker #include "base/optional.h" 12*635a8641SAndroid Build Coastguard Worker 13*635a8641SAndroid Build Coastguard Worker namespace base { 14*635a8641SAndroid Build Coastguard Worker namespace debug { 15*635a8641SAndroid Build Coastguard Worker 16*635a8641SAndroid Build Coastguard Worker // Returns the ELF section .note.gnu.build-id from the ELF file mapped at 17*635a8641SAndroid Build Coastguard Worker // |elf_base|, if present. The caller must ensure that the file is fully mapped 18*635a8641SAndroid Build Coastguard Worker // in memory. 19*635a8641SAndroid Build Coastguard Worker Optional<std::string> BASE_EXPORT ReadElfBuildId(const void* elf_base); 20*635a8641SAndroid Build Coastguard Worker 21*635a8641SAndroid Build Coastguard Worker // Returns the library name from the ELF file mapped at |elf_base|, if present. 22*635a8641SAndroid Build Coastguard Worker // The caller must ensure that the file is fully mapped in memory. 23*635a8641SAndroid Build Coastguard Worker Optional<std::string> BASE_EXPORT ReadElfLibraryName(const void* elf_base); 24*635a8641SAndroid Build Coastguard Worker 25*635a8641SAndroid Build Coastguard Worker } // namespace debug 26*635a8641SAndroid Build Coastguard Worker } // namespace base 27*635a8641SAndroid Build Coastguard Worker 28*635a8641SAndroid Build Coastguard Worker #endif // BASE_DEBUG_ELF_READER_LINUX_H_ 29