Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugMacro.h
39645 views
1
//===-- DWARFDebugMacro.h ----------------------------------------*- C++
2
//-*-===//
3
//
4
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5
// See https://llvm.org/LICENSE.txt for license information.
6
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7
//
8
//===----------------------------------------------------------------------===//
9
10
#ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEBUGMACRO_H
11
#define LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEBUGMACRO_H
12
13
#include <map>
14
15
#include "lldb/Core/dwarf.h"
16
#include "lldb/Symbol/DebugMacros.h"
17
#include "lldb/lldb-types.h"
18
19
namespace lldb_private {
20
class DWARFDataExtractor;
21
}
22
23
namespace lldb_private::plugin {
24
namespace dwarf {
25
class SymbolFileDWARF;
26
27
class DWARFDebugMacroHeader {
28
public:
29
enum HeaderFlagMask {
30
OFFSET_SIZE_MASK = 0x1,
31
DEBUG_LINE_OFFSET_MASK = 0x2,
32
OPCODE_OPERANDS_TABLE_MASK = 0x4
33
};
34
35
static DWARFDebugMacroHeader
36
ParseHeader(const DWARFDataExtractor &debug_macro_data,
37
lldb::offset_t *offset);
38
39
bool OffsetIs64Bit() const { return m_offset_is_64_bit; }
40
41
private:
42
static void SkipOperandTable(const DWARFDataExtractor &debug_macro_data,
43
lldb::offset_t *offset);
44
45
uint16_t m_version = 0;
46
bool m_offset_is_64_bit = false;
47
uint64_t m_debug_line_offset = 0;
48
};
49
50
class DWARFDebugMacroEntry {
51
public:
52
static void ReadMacroEntries(const DWARFDataExtractor &debug_macro_data,
53
const DWARFDataExtractor &debug_str_data,
54
const bool offset_is_64_bit,
55
lldb::offset_t *sect_offset,
56
SymbolFileDWARF *sym_file_dwarf,
57
DebugMacrosSP &debug_macros_sp);
58
};
59
} // namespace dwarf
60
} // namespace lldb_private::plugin
61
62
#endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEBUGMACRO_H
63
64