1326949Sdim//===-- SymbolFileDWARFDwp.h ------------------------------------*- C++ -*-===// 2326949Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6326949Sdim// 7326949Sdim//===----------------------------------------------------------------------===// 8326949Sdim 9326949Sdim#ifndef SymbolFileDWARFDwp_SymbolFileDWARFDwp_h_ 10326949Sdim#define SymbolFileDWARFDwp_SymbolFileDWARFDwp_h_ 11326949Sdim 12326949Sdim#include <memory> 13326949Sdim 14326949Sdim#include "llvm/DebugInfo/DWARF/DWARFUnitIndex.h" 15326949Sdim 16326949Sdim#include "lldb/Core/Module.h" 17326949Sdim 18326949Sdim#include "DWARFDataExtractor.h" 19326949Sdim#include "SymbolFileDWARFDwo.h" 20326949Sdim 21326949Sdimclass SymbolFileDWARFDwp { 22326949Sdimpublic: 23326949Sdim static std::unique_ptr<SymbolFileDWARFDwp> 24326949Sdim Create(lldb::ModuleSP module_sp, const lldb_private::FileSpec &file_spec); 25326949Sdim 26326949Sdim std::unique_ptr<SymbolFileDWARFDwo> 27353358Sdim GetSymbolFileForDwoId(DWARFCompileUnit &dwarf_cu, uint64_t dwo_id); 28326949Sdim 29326949Sdim bool LoadSectionData(uint64_t dwo_id, lldb::SectionType sect_type, 30326949Sdim lldb_private::DWARFDataExtractor &data); 31326949Sdim 32326949Sdimprivate: 33326949Sdim explicit SymbolFileDWARFDwp(lldb::ModuleSP module_sp, 34326949Sdim lldb::ObjectFileSP obj_file); 35326949Sdim 36326949Sdim bool LoadRawSectionData(lldb::SectionType sect_type, 37326949Sdim lldb_private::DWARFDataExtractor &data); 38326949Sdim 39326949Sdim void InitDebugCUIndexMap(); 40326949Sdim 41326949Sdim lldb::ObjectFileSP m_obj_file; 42326949Sdim 43326949Sdim std::mutex m_sections_mutex; 44326949Sdim std::map<lldb::SectionType, lldb_private::DWARFDataExtractor> m_sections; 45326949Sdim 46326949Sdim llvm::DWARFUnitIndex m_debug_cu_index; 47326949Sdim std::map<uint64_t, const llvm::DWARFUnitIndex::Entry *> m_debug_cu_index_map; 48326949Sdim}; 49326949Sdim 50326949Sdim#endif // SymbolFileDWARFDwp_SymbolFileDWARFDwp_h_ 51