20 ArangeDescriptors.clear();
26 ArangeDescriptors.clear();
60 const uint32_t header_size = *offset_ptr - Offset;
61 const uint32_t tuple_size = HeaderData.
AddrSize * 2;
62 uint32_t first_tuple_offset = 0;
63 while (first_tuple_offset < header_size)
64 first_tuple_offset += tuple_size;
66 *offset_ptr = Offset + first_tuple_offset;
70 assert(
sizeof(arangeDescriptor.
Address) ==
sizeof(arangeDescriptor.
Length));
80 ArangeDescriptors.push_back(arangeDescriptor);
85 return !ArangeDescriptors.empty();
91 OS <<
format(
"Address Range Header: length = 0x%8.8x, version = 0x%4.4x, ",
93 <<
format(
"cu_offset = 0x%8.8x, addr_size = 0x%2.2x, seg_size = 0x%2.2x\n",
96 const uint32_t hex_width = HeaderData.
AddrSize * 2;
97 for (DescriptorConstIter pos = ArangeDescriptors.begin(),
98 end = ArangeDescriptors.end(); pos !=
end; ++pos)
99 OS <<
format(
"[0x%*.*" PRIx64
" -", hex_width, hex_width, pos->Address)
100 <<
format(
" 0x%*.*" PRIx64
")\n",
101 hex_width, hex_width, pos->getEndAddress());
const_iterator end(StringRef path)
Get end iterator over path.
format_object1< T > format(const char *Fmt, const T &Val)
void dump(raw_ostream &OS) const
bool extract(DataExtractor data, uint32_t *offset_ptr)