15#include "llvm/Support/Casting.h"
31 m_base_symbol_file(base_symbol_file) {
41 if (
const llvm::DWARFUnitIndex::Entry *entry = index.getFromHash(hash)) {
42 if (
auto *unit_contrib = entry->getContribution())
43 return llvm::dyn_cast_or_null<DWARFCompileUnit>(
45 unit_contrib->getOffset()));
53 std::optional<uint64_t> dwo_id = cu->
GetDWOId();
54 if (!dwo_id || hash != *dwo_id)
70 for (
size_t i = 0; i < debug_info.
GetNumUnits(); ++i) {
83 const uint8_t op)
const {
89 lldb::offset_t &offset, std::vector<lldb_private::Value> &stack)
const {
113 llvm::function_ref<
bool(
DWARFDIE die)> callback) {
128 bool must_be_implementation) {
130 die, type_name, must_be_implementation);
133llvm::Expected<lldb::TypeSystemSP>
Identifies a DWARF debug info entry within a given Module.
std::optional< uint32_t > file_index() const
DWARFDIE GetDIE(const DIERef &die_ref)
DWARFUnit * GetUnitAtIndex(size_t idx)
std::optional< uint64_t > GetDWOId()
DIEToClangType & GetForwardDeclDieToClangType() override
UniqueDWARFASTTypeMap & GetUniqueDWARFASTTypeMap() override
ClangTypeToDIE & GetForwardDeclClangTypeToDie() override
SymbolFileDWARF & GetBaseSymbolFile() const
DWARFCompileUnit * FindSingleCompileUnit()
If this file contains exactly one compile unit, this function will return it.
void GetObjCMethods(lldb_private::ConstString class_name, llvm::function_ref< bool(DWARFDIE die)> callback) override
lldb::TypeSP FindCompleteObjCDefinitionTypeForDIE(const DWARFDIE &die, lldb_private::ConstString type_name, bool must_be_implementation) override
DIEToTypePtr & GetDIEToType() override
DIEToVariableSP & GetDIEToVariable() override
bool ParseVendorDWARFOpcode(uint8_t op, const lldb_private::DataExtractor &opcodes, lldb::offset_t &offset, std::vector< lldb_private::Value > &stack) const override
llvm::Expected< lldb::TypeSystemSP > GetTypeSystemForLanguage(lldb::LanguageType language) override
lldb::TypeSP FindDefinitionTypeForDWARFDeclContext(const DWARFDIE &die) override
DWARFDIE GetDIE(const DIERef &die_ref) override
lldb::offset_t GetVendorDWARFOpcodeSize(const lldb_private::DataExtractor &data, const lldb::offset_t data_offset, const uint8_t op) const override
DWARFCompileUnit * GetDWOCompileUnitForHash(uint64_t hash)
static char ID
LLVM RTTI support.
virtual lldb::TypeSP FindCompleteObjCDefinitionTypeForDIE(const DWARFDIE &die, lldb_private::ConstString type_name, bool must_be_implementation)
virtual DIEToVariableSP & GetDIEToVariable()
llvm::DenseMap< const DWARFDebugInfoEntry *, lldb::VariableSP > DIEToVariableSP
llvm::DenseMap< const DWARFDebugInfoEntry *, lldb_private::Type * > DIEToTypePtr
virtual lldb::offset_t GetVendorDWARFOpcodeSize(const lldb_private::DataExtractor &data, const lldb::offset_t data_offset, const uint8_t op) const
friend class SymbolFileDWARFDwo
virtual DIEToClangType & GetForwardDeclDieToClangType()
std::optional< uint64_t > GetFileIndex() const
virtual DWARFDIE GetDIE(const DIERef &die_ref)
void SetFileIndex(std::optional< uint64_t > file_index)
virtual bool ParseVendorDWARFOpcode(uint8_t op, const lldb_private::DataExtractor &opcodes, lldb::offset_t &offset, std::vector< lldb_private::Value > &stack) const
lldb_private::DWARFContext m_context
DWARFDebugInfo & DebugInfo()
virtual lldb::TypeSP FindDefinitionTypeForDWARFDeclContext(const DWARFDIE &die)
llvm::Expected< lldb::TypeSystemSP > GetTypeSystemForLanguage(lldb::LanguageType language) override
llvm::DenseMap< const DWARFDebugInfoEntry *, lldb::opaque_compiler_type_t > DIEToClangType
virtual void GetObjCMethods(lldb_private::ConstString class_name, llvm::function_ref< bool(DWARFDIE die)> callback)
virtual DIEToTypePtr & GetDIEToType()
virtual ClangTypeToDIE & GetForwardDeclClangTypeToDie()
llvm::DenseMap< lldb::opaque_compiler_type_t, DIERef > ClangTypeToDIE
virtual UniqueDWARFASTTypeMap & GetUniqueDWARFASTTypeMap()
A uniqued constant string class.
llvm::DWARFContext & GetAsLLVM()
A class that represents a running process on the host machine.
LanguageType
Programming language type.