|
|
|||
File indexing completed on 2026-05-10 08:43:41
0001 //===- DWARFRelocMap.h ------------------------------------------*- C++ -*-===// 0002 // 0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 0004 // See https://llvm.org/LICENSE.txt for license information. 0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 0006 // 0007 //===----------------------------------------------------------------------===// 0008 0009 #ifndef LLVM_DEBUGINFO_DWARF_DWARFRELOCMAP_H 0010 #define LLVM_DEBUGINFO_DWARF_DWARFRELOCMAP_H 0011 0012 #include "llvm/ADT/DenseMap.h" 0013 #include "llvm/Object/ObjectFile.h" 0014 #include "llvm/Object/RelocationResolver.h" 0015 #include <cstdint> 0016 0017 namespace llvm { 0018 0019 /// RelocAddrEntry contains relocated value and section index. 0020 /// Section index is -1LL if relocation points to absolute symbol. 0021 struct RelocAddrEntry { 0022 uint64_t SectionIndex; 0023 object::RelocationRef Reloc; 0024 uint64_t SymbolValue; 0025 std::optional<object::RelocationRef> Reloc2; 0026 uint64_t SymbolValue2; 0027 object::RelocationResolver Resolver; 0028 }; 0029 0030 /// In place of applying the relocations to the data we've read from disk we use 0031 /// a separate mapping table to the side and checking that at locations in the 0032 /// dwarf where we expect relocated values. This adds a bit of complexity to the 0033 /// dwarf parsing/extraction at the benefit of not allocating memory for the 0034 /// entire size of the debug info sections. 0035 using RelocAddrMap = DenseMap<uint64_t, RelocAddrEntry>; 0036 0037 } // end namespace llvm 0038 0039 #endif // LLVM_DEBUGINFO_DWARF_DWARFRELOCMAP_H
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|