15 using namespace dwarf;
17 void DWARFAbbreviationDeclaration::clear() {
21 AttributeSpecs.clear();
36 uint8_t ChildrenByte = Data.
getU8(OffsetPtr);
40 uint32_t CurOffset = *OffsetPtr;
42 if (CurOffset == *OffsetPtr) {
46 CurOffset = *OffsetPtr;
48 if (CurOffset == *OffsetPtr) {
52 if (Attr == 0 && Form == 0)
66 OS <<
'[' << getCode() <<
"] ";
71 OS <<
"\tDW_CHILDREN_" << (hasChildren() ?
"yes" :
"no") <<
'\n';
78 OS <<
format(
"DW_AT_Unknown_%x", Spec.Attr);
84 OS <<
format(
"DW_FORM_Unknown_%x", Spec.Form);
92 for (uint32_t i = 0, e = AttributeSpecs.size(); i != e; ++i) {
93 if (AttributeSpecs[i].Attr == attr)
bool extract(DataExtractor Data, uint32_t *OffsetPtr)
const char * AttributeString(unsigned Attribute)
const char * TagString(unsigned Tag)
format_object< Ts...> format(const char *Fmt, const Ts &...Vals)
These are helper functions used to produce formatted output.
void dump(raw_ostream &OS) const
DWARFAbbreviationDeclaration()
uint32_t findAttributeIndex(uint16_t attr) const
unsigned getTag(StringRef TagString)
const char * FormEncodingString(unsigned Encoding)
This class implements an extremely fast bulk output stream that can only output to a stream...