/* * Copyright (c) 2020, Itamar S. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "DwarfTypes.h" #include #include #include namespace Debug::Dwarf { class DwarfInfo; class AbbreviationsMap { public: AbbreviationsMap(DwarfInfo const& dwarf_info, u32 offset); struct AbbreviationEntry { EntryTag tag; bool has_children; Vector attribute_specifications; }; AbbreviationEntry const* get(u32 code) const; private: ErrorOr populate_map(); DwarfInfo const& m_dwarf_info; u32 m_offset { 0 }; HashMap m_entries; }; }