003 File Manager
Current Path:
/usr/src/contrib/llvm-project/lldb/source/Plugins/SymbolFile/DWARF
usr
/
src
/
contrib
/
llvm-project
/
lldb
/
source
/
Plugins
/
SymbolFile
/
DWARF
/
📁
..
📄
AppleDWARFIndex.cpp
(7.64 KB)
📄
AppleDWARFIndex.h
(3.23 KB)
📄
DIERef.cpp
(768 B)
📄
DIERef.h
(2.46 KB)
📄
DWARFASTParser.h
(2.01 KB)
📄
DWARFASTParserClang.cpp
(138.9 KB)
📄
DWARFASTParserClang.h
(10.29 KB)
📄
DWARFAbbreviationDeclaration.cpp
(2.96 KB)
📄
DWARFAbbreviationDeclaration.h
(2.6 KB)
📄
DWARFAttribute.cpp
(1.86 KB)
📄
DWARFAttribute.h
(2.69 KB)
📄
DWARFBaseDIE.cpp
(3.4 KB)
📄
DWARFBaseDIE.h
(3.76 KB)
📄
DWARFCompileUnit.cpp
(3.88 KB)
📄
DWARFCompileUnit.h
(1.32 KB)
📄
DWARFContext.cpp
(5.27 KB)
📄
DWARFContext.h
(2.84 KB)
📄
DWARFDIE.cpp
(11.88 KB)
📄
DWARFDIE.h
(2.8 KB)
📄
DWARFDataExtractor.cpp
(980 B)
📄
DWARFDataExtractor.h
(1.25 KB)
📄
DWARFDebugAbbrev.cpp
(4.6 KB)
📄
DWARFDebugAbbrev.h
(2.92 KB)
📄
DWARFDebugArangeSet.cpp
(5.4 KB)
📄
DWARFDebugArangeSet.h
(2.35 KB)
📄
DWARFDebugAranges.cpp
(2.89 KB)
📄
DWARFDebugAranges.h
(1.6 KB)
📄
DWARFDebugInfo.cpp
(6.65 KB)
📄
DWARFDebugInfo.h
(2.84 KB)
📄
DWARFDebugInfoEntry.cpp
(28.41 KB)
📄
DWARFDebugInfoEntry.h
(7.26 KB)
📄
DWARFDebugMacro.cpp
(4.35 KB)
📄
DWARFDebugMacro.h
(1.74 KB)
📄
DWARFDebugRanges.cpp
(4.12 KB)
📄
DWARFDebugRanges.h
(1.41 KB)
📄
DWARFDeclContext.cpp
(3.13 KB)
📄
DWARFDeclContext.h
(2.53 KB)
📄
DWARFDefines.cpp
(2.6 KB)
📄
DWARFDefines.h
(1.09 KB)
📄
DWARFFormValue.cpp
(16.48 KB)
📄
DWARFFormValue.h
(3.27 KB)
📄
DWARFIndex.cpp
(3.17 KB)
📄
DWARFIndex.h
(3.76 KB)
📄
DWARFTypeUnit.cpp
(857 B)
📄
DWARFTypeUnit.h
(1.31 KB)
📄
DWARFUnit.cpp
(32.71 KB)
📄
DWARFUnit.h
(12.09 KB)
📄
DebugNamesDWARFIndex.cpp
(9.7 KB)
📄
DebugNamesDWARFIndex.h
(3.98 KB)
📄
HashedNameToDIE.cpp
(19.9 KB)
📄
HashedNameToDIE.h
(6.8 KB)
📄
LogChannelDWARF.cpp
(1.13 KB)
📄
LogChannelDWARF.h
(1.16 KB)
📄
ManualDWARFIndex.cpp
(16.36 KB)
📄
ManualDWARFIndex.h
(3.26 KB)
📄
NameToDIE.cpp
(2.7 KB)
📄
NameToDIE.h
(1.5 KB)
📄
SymbolFileDWARF.cpp
(143.94 KB)
📄
SymbolFileDWARF.h
(17.92 KB)
📄
SymbolFileDWARFDebugMap.cpp
(54.3 KB)
📄
SymbolFileDWARFDebugMap.h
(14.08 KB)
📄
SymbolFileDWARFDwo.cpp
(4.41 KB)
📄
SymbolFileDWARFDwo.h
(2.33 KB)
📄
SymbolFileDWARFProperties.td
(285 B)
📄
UniqueDWARFASTType.cpp
(2.84 KB)
📄
UniqueDWARFASTType.h
(3.04 KB)
Editing: DWARFAbbreviationDeclaration.cpp
//===-- DWARFAbbreviationDeclaration.cpp ----------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "DWARFAbbreviationDeclaration.h" #include "lldb/Core/dwarf.h" #include "lldb/Utility/Stream.h" #include "llvm/Object/Error.h" #include "DWARFFormValue.h" using namespace lldb_private; DWARFAbbreviationDeclaration::DWARFAbbreviationDeclaration() : m_code(InvalidCode), m_tag(llvm::dwarf::DW_TAG_null), m_has_children(0), m_attributes() {} DWARFAbbreviationDeclaration::DWARFAbbreviationDeclaration(dw_tag_t tag, uint8_t has_children) : m_code(InvalidCode), m_tag(tag), m_has_children(has_children), m_attributes() {} llvm::Expected<DWARFEnumState> DWARFAbbreviationDeclaration::extract(const DWARFDataExtractor &data, lldb::offset_t *offset_ptr) { m_code = data.GetULEB128(offset_ptr); if (m_code == 0) return DWARFEnumState::Complete; m_attributes.clear(); m_tag = static_cast<dw_tag_t>(data.GetULEB128(offset_ptr)); if (m_tag == DW_TAG_null) return llvm::make_error<llvm::object::GenericBinaryError>( "abbrev decl requires non-null tag."); m_has_children = data.GetU8(offset_ptr); while (data.ValidOffset(*offset_ptr)) { dw_attr_t attr = data.GetULEB128(offset_ptr); dw_form_t form = data.GetULEB128(offset_ptr); // This is the last attribute for this abbrev decl, but there may still be // more abbrev decls, so return MoreItems to indicate to the caller that // they should call this function again. if (!attr && !form) return DWARFEnumState::MoreItems; if (!attr || !form) return llvm::make_error<llvm::object::GenericBinaryError>( "malformed abbreviation declaration attribute"); DWARFFormValue::ValueType val; if (form == DW_FORM_implicit_const) val.value.sval = data.GetULEB128(offset_ptr); m_attributes.push_back(DWARFAttribute(attr, form, val)); } return llvm::make_error<llvm::object::GenericBinaryError>( "abbreviation declaration attribute list not terminated with a null " "entry"); } bool DWARFAbbreviationDeclaration::IsValid() { return m_code != 0 && m_tag != llvm::dwarf::DW_TAG_null; } uint32_t DWARFAbbreviationDeclaration::FindAttributeIndex(dw_attr_t attr) const { uint32_t i; const uint32_t kNumAttributes = m_attributes.size(); for (i = 0; i < kNumAttributes; ++i) { if (m_attributes[i].get_attr() == attr) return i; } return DW_INVALID_INDEX; } bool DWARFAbbreviationDeclaration:: operator==(const DWARFAbbreviationDeclaration &rhs) const { return Tag() == rhs.Tag() && HasChildren() == rhs.HasChildren() && m_attributes == rhs.m_attributes; }
Upload File
Create Folder