|  | // Copyright 2018 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef BASE_DEBUG_ELF_READER_LINUX_H_ | 
|  | #define BASE_DEBUG_ELF_READER_LINUX_H_ | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | #include "base/base_export.h" | 
|  | #include "base/optional.h" | 
|  |  | 
|  | namespace base { | 
|  | namespace debug { | 
|  |  | 
|  | // Returns the ELF section .note.gnu.build-id from the ELF file mapped at | 
|  | // |elf_base|, if present. The caller must ensure that the file is fully mapped | 
|  | // in memory. | 
|  | Optional<std::string> BASE_EXPORT ReadElfBuildId(const void* elf_base); | 
|  |  | 
|  | // Returns the library name from the ELF file mapped at |elf_base|, if present. | 
|  | // The caller must ensure that the file is fully mapped in memory. | 
|  | Optional<std::string> BASE_EXPORT ReadElfLibraryName(const void* elf_base); | 
|  |  | 
|  | }  // namespace debug | 
|  | }  // namespace base | 
|  |  | 
|  | #endif  // BASE_DEBUG_ELF_READER_LINUX_H_ |