brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 67d1cde Raw
63 lines · c
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-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEBUGMACRO_H11#define LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEBUGMACRO_H12 13#include <map>14 15#include "lldb/Core/dwarf.h"16#include "lldb/Symbol/DebugMacros.h"17#include "lldb/lldb-types.h"18 19namespace lldb_private {20class DWARFDataExtractor;21}22 23namespace lldb_private::plugin {24namespace dwarf {25class SymbolFileDWARF;26 27class DWARFDebugMacroHeader {28public:29  enum HeaderFlagMask {30    OFFSET_SIZE_MASK = 0x1,31    DEBUG_LINE_OFFSET_MASK = 0x2,32    OPCODE_OPERANDS_TABLE_MASK = 0x433  };34 35  static DWARFDebugMacroHeader36  ParseHeader(const DWARFDataExtractor &debug_macro_data,37              lldb::offset_t *offset);38 39  bool OffsetIs64Bit() const { return m_offset_is_64_bit; }40 41private: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 50class DWARFDebugMacroEntry {51public: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 dwarf60} // namespace lldb_private::plugin61 62#endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFDEBUGMACRO_H63