OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import re | 5 import re |
6 | 6 |
7 | 7 |
8 _MAPS_PATTERN = re.compile( | 8 _MAPS_PATTERN = re.compile( |
9 r'^([a-f0-9]+)-([a-f0-9]+)\s+(.)(.)(.)(.)\s+([a-f0-9]+)\s+(\S+):(\S+)\s+' | 9 r'^([a-f0-9]+)-([a-f0-9]+)\s+(.)(.)(.)(.)\s+([a-f0-9]+)\s+(\S+):(\S+)\s+' |
10 r'(\d+)\s*(.*)$', re.IGNORECASE) | 10 r'(\d+)\s*(.*)$', re.IGNORECASE) |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 matched.group(8), # major | 94 matched.group(8), # major |
95 matched.group(9), # minor | 95 matched.group(9), # minor |
96 int(matched.group(10), 10), # inode | 96 int(matched.group(10), 10), # inode |
97 matched.group(11) # name | 97 matched.group(11) # name |
98 ) | 98 ) |
99 else: | 99 else: |
100 return None | 100 return None |
101 | 101 |
102 @staticmethod | 102 @staticmethod |
103 def constants(entry): | 103 def constants(entry): |
104 return (entry.writable == '-' and entry.executable == '-' and re.match( | 104 return (entry.writable == '-' and entry.executable == '-' and |
105 '\S+(\.(so|dll|dylib|bundle)|chrome)((\.\d+)+\w*(\.\d+){0,3})?', | 105 entry.name.startswith('/')) |
106 entry.name)) | |
107 | 106 |
108 @staticmethod | 107 @staticmethod |
109 def executable(entry): | 108 def executable(entry): |
110 return (entry.executable == 'x' and re.match( | 109 return (entry.executable == 'x' and entry.name.startswith('/')) |
111 '\S+(\.(so|dll|dylib|bundle)|chrome)((\.\d+)+\w*(\.\d+){0,3})?', | |
112 entry.name)) | |
113 | 110 |
114 @staticmethod | 111 @staticmethod |
115 def executable_and_constants(entry): | 112 def executable_and_constants(entry): |
116 return (((entry.writable == '-' and entry.executable == '-') or | 113 return (((entry.writable == '-' and entry.executable == '-') or |
117 entry.executable == 'x') and re.match( | 114 entry.executable == 'x') and entry.name.startswith('/')) |
118 '\S+(\.(so|dll|dylib|bundle)|chrome)((\.\d+)+\w*(\.\d+){0,3})?', | |
119 entry.name)) | |
120 | 115 |
121 def _append_entry(self, entry): | 116 def _append_entry(self, entry): |
122 if self._sorted_indexes and self._sorted_indexes[-1] > entry.begin: | 117 if self._sorted_indexes and self._sorted_indexes[-1] > entry.begin: |
123 self._sorted = False | 118 self._sorted = False |
124 self._sorted_indexes.append(entry.begin) | 119 self._sorted_indexes.append(entry.begin) |
125 self._dictionary[entry.begin] = entry | 120 self._dictionary[entry.begin] = entry |
OLD | NEW |