1//===-- DWARFCompileUnit.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_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFCOMPILEUNIT_H 10#define LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFCOMPILEUNIT_H 11 12#include "DWARFUnit.h" 13#include "llvm/Support/Error.h" 14 15class DWARFCompileUnit : public DWARFUnit { 16public: 17 void BuildAddressRangeTable(DWARFDebugAranges *debug_aranges) override; 18 19 void Dump(lldb_private::Stream *s) const override; 20 21 static bool classof(const DWARFUnit *unit) { return !unit->IsTypeUnit(); } 22 23 DWARFCompileUnit &GetNonSkeletonUnit(); 24 25 DWARFDIE LookupAddress(const dw_addr_t address); 26 27private: 28 DWARFCompileUnit(SymbolFileDWARF &dwarf, lldb::user_id_t uid, 29 const DWARFUnitHeader &header, 30 const DWARFAbbreviationDeclarationSet &abbrevs, 31 DIERef::Section section, bool is_dwo) 32 : DWARFUnit(dwarf, uid, header, abbrevs, section, is_dwo) {} 33 34 DWARFCompileUnit(const DWARFCompileUnit &) = delete; 35 const DWARFCompileUnit &operator=(const DWARFCompileUnit &) = delete; 36 37 friend class DWARFUnit; 38}; 39 40#endif // LLDB_SOURCE_PLUGINS_SYMBOLFILE_DWARF_DWARFCOMPILEUNIT_H 41