27 llvm::DataExtractor llvm_data = data.
GetAsLLVM();
34 llvm::Expected<llvm::DWARFAbbreviationDeclaration::ExtractState> es =
35 abbrevDeclaration.extract(llvm_data, offset_ptr);
37 return es.takeError();
38 if (*es == llvm::DWARFAbbreviationDeclaration::ExtractState::Complete)
42 else if (prev_abbr_code + 1 != abbrevDeclaration.getCode())
45 prev_abbr_code = abbrevDeclaration.getCode();
46 m_decls.push_back(abbrevDeclaration);
48 return llvm::ErrorSuccess();
56 for (
const auto &decl :
m_decls) {
57 if (decl.getCode() == abbrCode)
69 std::set<dw_form_t> &invalid_forms)
const {
70 for (
const auto &decl :
m_decls) {
71 for (
const auto &attr : decl.attributes()) {
73 invalid_forms.insert(attr.Form);
96 : m_abbrevCollMap(), m_prev_abbr_offset_pos(m_abbrevCollMap.end()) {}
103 uint32_t initial_cu_offset = offset;
106 llvm::Error
error = abbrevDeclSet.
extract(data, &offset);
113 return llvm::ErrorSuccess();
131 return &(pos->second);
137 std::set<dw_form_t> &invalid_forms)
const {
139 pair.second.GetUnsupportedForms(invalid_forms);
static llvm::raw_ostream & error(Stream &strm)
DWARFAbbreviationDeclarationCollMap::const_iterator DWARFAbbreviationDeclarationCollMapConstIter
llvm::DWARFAbbreviationDeclaration DWARFAbbreviationDeclaration
std::vector< DWARFAbbreviationDeclaration > m_decls
llvm::Error extract(const lldb_private::DWARFDataExtractor &data, lldb::offset_t *offset_ptr)
Extract all abbrev decls in a set.
void GetUnsupportedForms(std::set< dw_form_t > &invalid_forms) const
const DWARFAbbreviationDeclaration * GetAbbreviationDeclaration(uint32_t abbrCode) const
void GetUnsupportedForms(std::set< dw_form_t > &invalid_forms) const
const DWARFAbbreviationDeclarationSet * GetAbbreviationDeclarationSet(dw_offset_t cu_abbr_offset) const
DWARFAbbreviationDeclarationCollMapConstIter m_prev_abbr_offset_pos
DWARFAbbreviationDeclarationCollMap m_abbrevCollMap
llvm::Error parse(const lldb_private::DWARFDataExtractor &data)
Extract all abbreviations for a particular compile unit.
A class that represents a running process on the host machine.