Chromium Code Reviews| Index: tools/android/memdump/memdump.cc |
| diff --git a/tools/android/memdump/memdump.cc b/tools/android/memdump/memdump.cc |
| index 50a5914e1e76b9df99f08bb17a5c6f4b640e65f3..9545c0dbee8014d591f4d18dddee69d2ae79b5a0 100644 |
| --- a/tools/android/memdump/memdump.cc |
| +++ b/tools/android/memdump/memdump.cc |
| @@ -200,15 +200,23 @@ bool GetPagesForMemoryMap(int pagemap_fd, |
| const MemoryMap& memory_map, |
| std::vector<PageInfo>* committed_pages, |
| BitSet* committed_pages_bits) { |
| + off64_t offset = memory_map.start_address / kPageSize; |
|
Philippe
2014/02/26 12:05:48
Nit: const off64_t offset
Reviewers in Chromium w
hyunki
2014/02/27 01:15:06
Done.
|
| + if (lseek64(pagemap_fd, offset * sizeof(PageMapEntry), SEEK_SET) < 0) { |
| + PLOG(ERROR) << "lseek"; |
| + return false; |
| + } |
| for (uint addr = memory_map.start_address, page_index = 0; |
| addr < memory_map.end_address; |
| addr += kPageSize, ++page_index) { |
| DCHECK_EQ(0, addr % kPageSize); |
| PageMapEntry page_map_entry = {}; |
| COMPILE_ASSERT(sizeof(PageMapEntry) == sizeof(uint64), unexpected_size); |
| - const off64_t offset = addr / kPageSize; |
| - if (!ReadFromFileAtOffset(pagemap_fd, offset, &page_map_entry)) |
| + offset++; |
|
Philippe
2014/02/26 12:05:48
Nit: You don't seem to be using |offset| in the lo
hyunki
2014/02/27 01:15:06
Done.
|
| + ssize_t bytes = read(pagemap_fd, &page_map_entry, sizeof(PageMapEntry)); |
|
Philippe
2014/02/26 12:05:48
Nit: sizeof(page_map_entry) would be slightly bett
hyunki
2014/02/27 01:15:06
Done.
|
| + if (bytes != sizeof(PageMapEntry) && bytes != 0) { |
| + PLOG(ERROR) << "read"; |
| return false; |
| + } |
| if (page_map_entry.present) { // Ignore non-committed pages. |
| if (page_map_entry.page_frame_number == 0) |
| continue; |