Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Unified Diff: tools/memory_inspector/memory_inspector/core/memory_map.py

Issue 559023002: [Android] memory_inspector: bug / UI fixes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mi1_heapdump_sigstop
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/memory_inspector/memory_inspector/core/memory_map.py
diff --git a/tools/memory_inspector/memory_inspector/core/memory_map.py b/tools/memory_inspector/memory_inspector/core/memory_map.py
index 81ff484b46ae3f3d2ee01bf41eeba85bd3020265..fe716089f0692f251852674d5f2434ea66506aac 100644
--- a/tools/memory_inspector/memory_inspector/core/memory_map.py
+++ b/tools/memory_inspector/memory_inspector/core/memory_map.py
@@ -61,9 +61,19 @@ class MapEntry(object):
# the presence of its corresponding page.
self.resident_pages = resident_pages or []
- def GetRelativeOffset(self, abs_addr):
+ def GetRelativeMMOffset(self, abs_addr):
+ """Converts abs_addr to the corresponding offset in the mm.
+
+ Returns:
+ A tuple: (page_index, offset_in_page)
+ """
+ assert(self.Contains(abs_addr))
+ offset = abs_addr - self.start
+ return (offset / PAGE_SIZE, offset & (PAGE_SIZE - 1))
+
+ def GetRelativeFileOffset(self, abs_addr):
"""Converts abs_addr to the corresponding offset in the mapped file."""
- assert(abs_addr >= self.start and abs_addr <= self.end)
+ assert(self.Contains(abs_addr))
return abs_addr - self.start + self.mapped_offset
def IsPageResident(self, relative_page_index):
@@ -77,6 +87,10 @@ class MapEntry(object):
return False
return (self.resident_pages[arr_idx] & (1 << arr_bit)) != 0
+ def Contains(self, abs_addr):
+ """Determines whether a given absolute address belongs to the current mm."""
+ return abs_addr >= self.start and abs_addr <= self.end
+
def __cmp__(self, other):
"""Comparison operator required for bisect."""
if isinstance(other, MapEntry):
@@ -91,6 +105,10 @@ class MapEntry(object):
return self.end - self.start + 1
@property
+ def num_pages(self):
+ return self.len / PAGE_SIZE
+
+ @property
def rss_bytes(self):
return (self.priv_dirty_bytes + self.priv_clean_bytes +
self.shared_dirty_bytes + self.shared_clean_bytes)

Powered by Google App Engine
This is Rietveld 408576698