1 | //===-- dwarf.h -------------------------------------------------*- C++ -*-===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #ifndef LLDB_CORE_DWARF_H |
10 | #define LLDB_CORE_DWARF_H |
11 | |
12 | #include "lldb/Utility/RangeMap.h" |
13 | #include <cstdint> |
14 | |
15 | // Get the DWARF constant definitions from llvm |
16 | #include "llvm/BinaryFormat/Dwarf.h" |
17 | |
18 | namespace lldb_private { |
19 | namespace dwarf { |
20 | using namespace llvm::dwarf; |
21 | } |
22 | } |
23 | |
24 | typedef llvm::dwarf::Attribute dw_attr_t; |
25 | typedef llvm::dwarf::Form dw_form_t; |
26 | typedef llvm::dwarf::Tag dw_tag_t; |
27 | typedef uint64_t dw_addr_t; // Dwarf address define that must be big enough for |
28 | // any addresses in the compile units that get |
29 | // parsed |
30 | |
31 | typedef uint64_t dw_offset_t; // Dwarf Debug Information Entry offset for any |
32 | // offset into the file |
33 | |
34 | /* Constants */ |
35 | #define DW_DIE_OFFSET_MAX_BITSIZE 40 |
36 | #define DW_INVALID_OFFSET (((uint64_t)1u << DW_DIE_OFFSET_MAX_BITSIZE) - 1) |
37 | #define DW_INVALID_INDEX 0xFFFFFFFFul |
38 | |
39 | // #define DW_ADDR_none 0x0 |
40 | |
41 | #define DW_EH_PE_MASK_ENCODING 0x0F |
42 | |
43 | typedef lldb_private::RangeVector<dw_addr_t, dw_addr_t, 2> DWARFRangeList; |
44 | |
45 | #endif // LLDB_CORE_DWARF_H |
46 | |