55 "Read crosses lookup table entry boundary");
75 assert(entry &&
"ValidateVirtualRead should have found an entry");
83 *offset_ptr += length;
99 assert(
"SetData(1) called on VirtualDataExtractor that already had data" &&
119 assert(
"SetData(2) called on VirtualDataExtractor that already had data" &&
140 assert(
"SetData(3) called on VirtualDataExtractor that already had data" &&
166 lowest = std::min(lowest, ent.base);
167 highest = std::max(highest, ent.base + ent.size);
169 return highest - lowest;
178 if (size > virtual_offset)
179 return size - virtual_offset;
186 if (size > physical_offset)
187 return size - physical_offset;
198 assert(entry &&
"ValidateVirtualRead should have found an entry");
206 offset_t virtual_addr = *offset_ptr;
208 assert(entry &&
"Unchecked methods require valid virtual address");
217 offset_t virtual_addr = *offset_ptr;
219 assert(entry &&
"Unchecked methods require valid virtual address");
228 offset_t virtual_addr = *offset_ptr;
230 assert(entry &&
"Unchecked methods require valid virtual address");
239 offset_t virtual_addr = *offset_ptr;
241 assert(entry &&
"Unchecked methods require valid virtual address");
252 uint32_t addr_size) {
253 auto empty_sp = std::make_shared<DataExtractor>();
254 empty_sp->SetByteOrder(byte_order);
255 empty_sp->SetAddressByteSize(addr_size);
268 offset_t offset_into_entry_range = virtual_offset - entry->
base;
271 if (offset_into_entry_range + virtual_length > entry->
size)
280 offset_t physical_start = entry->
data + offset_into_entry_range;
281 std::shared_ptr<DataExtractor> new_sp = std::make_shared<DataExtractor>(
297 offset_t offset_into_entry_range = virtual_offset - entry->
base;
299 offset_t physical_start = entry->
data + offset_into_entry_range;
300 std::shared_ptr<DataExtractor> new_sp = std::make_shared<DataExtractor>(
303 entry->
size - offset_into_entry_range);
313 "VirtualDataExtractor GetData requires valid virtual address");
316 return {
m_start +
static_cast<size_t>(entry->
data),
static_cast<size_t>(entry->
size)};
RangeData< lldb::offset_t, lldb::offset_t, lldb::offset_t > Entry
lldb_private::Range< lldb::offset_t, lldb::offset_t > Range
A class that represents a running process on the host machine.
ByteOrder
Byte ordering definitions.
std::shared_ptr< lldb_private::DataBuffer > DataBufferSP
std::shared_ptr< lldb_private::DataExtractor > DataExtractorSP
bool Contains(BaseType r) const