diff options
Diffstat (limited to 'source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h')
-rw-r--r-- | source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h b/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h new file mode 100644 index 0000000000000..a7372b9358b16 --- /dev/null +++ b/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h @@ -0,0 +1,55 @@ +//===-- SymbolFileDWARFDwp.h ------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef SymbolFileDWARFDwp_SymbolFileDWARFDwp_h_ +#define SymbolFileDWARFDwp_SymbolFileDWARFDwp_h_ + +// C Includes +// C++ Includes +#include <memory> + +// Other libraries and framework includes +#include "llvm/DebugInfo/DWARF/DWARFUnitIndex.h" + +// Project includes +#include "lldb/Core/Module.h" + +#include "DWARFDataExtractor.h" +#include "SymbolFileDWARFDwo.h" + +class SymbolFileDWARFDwp { +public: + static std::unique_ptr<SymbolFileDWARFDwp> + Create(lldb::ModuleSP module_sp, const lldb_private::FileSpec &file_spec); + + std::unique_ptr<SymbolFileDWARFDwo> + GetSymbolFileForDwoId(DWARFCompileUnit *dwarf_cu, uint64_t dwo_id); + + bool LoadSectionData(uint64_t dwo_id, lldb::SectionType sect_type, + lldb_private::DWARFDataExtractor &data); + +private: + explicit SymbolFileDWARFDwp(lldb::ModuleSP module_sp, + lldb::ObjectFileSP obj_file); + + bool LoadRawSectionData(lldb::SectionType sect_type, + lldb_private::DWARFDataExtractor &data); + + void InitDebugCUIndexMap(); + + lldb::ObjectFileSP m_obj_file; + + std::mutex m_sections_mutex; + std::map<lldb::SectionType, lldb_private::DWARFDataExtractor> m_sections; + + llvm::DWARFUnitIndex m_debug_cu_index; + std::map<uint64_t, const llvm::DWARFUnitIndex::Entry *> m_debug_cu_index_map; +}; + +#endif // SymbolFileDWARFDwp_SymbolFileDWARFDwp_h_ |