| Index: tools/tickprocessor.py | 
| =================================================================== | 
| --- tools/tickprocessor.py	(revision 1294) | 
| +++ tools/tickprocessor.py	(working copy) | 
| @@ -156,10 +156,14 @@ | 
| self.number_of_library_ticks = 0 | 
| self.unaccounted_number_of_ticks = 0 | 
| self.excluded_number_of_ticks = 0 | 
| +    # Flag indicating whether to ignore unaccounted ticks in the report | 
| +    self.ignore_unknown = False | 
|  | 
| -  def ProcessLogfile(self, filename, included_state = None): | 
| +  def ProcessLogfile(self, filename, included_state = None, ignore_unknown = False): | 
| self.log_file = filename | 
| self.included_state = included_state | 
| +    self.ignore_unknown = ignore_unknown | 
| + | 
| try: | 
| logfile = open(filename, 'rb') | 
| except IOError: | 
| @@ -253,7 +257,7 @@ | 
| return entry | 
| max = self.js_entries.FindMax() | 
| min = self.js_entries.FindMin() | 
| -    if max != None and pc < max.key and pc > min.key: | 
| +    if max != None and pc < (max.key + max.value.size) and pc > min.key: | 
| return self.js_entries.FindGreatestsLessThan(pc).value | 
| return None | 
|  | 
| @@ -289,6 +293,13 @@ | 
| js_entries = self.js_entries.ExportValueList() | 
| js_entries.extend(self.deleted_code) | 
| cpp_entries = self.cpp_entries.ExportValueList() | 
| +      # Print the unknown ticks percentage if they are not ignored. | 
| +      if not self.ignore_unknown and self.unaccounted_number_of_ticks > 0: | 
| +        self.PrintHeader('Unknown') | 
| +        unknown_percentage = self.unaccounted_number_of_ticks * 100.0 / self.total_number_of_ticks | 
| +        print('  %(total)5.1f%%' % { | 
| +          'total' : unknown_percentage, | 
| +        }) | 
| # Print the library ticks. | 
| self.PrintHeader('Shared libraries') | 
| self.PrintEntries(cpp_entries, lambda e:e.IsSharedLibraryEntry()) | 
| @@ -309,7 +320,12 @@ | 
| print('   total  nonlib   name') | 
|  | 
| def PrintEntries(self, entries, condition): | 
| -    number_of_accounted_ticks = self.total_number_of_ticks - self.unaccounted_number_of_ticks | 
| +    # If ignoring unaccounted ticks don't include these in percentage | 
| +    # calculations | 
| +    number_of_accounted_ticks = self.total_number_of_ticks | 
| +    if self.ignore_unknown: | 
| +      number_of_accounted_ticks -= self.unaccounted_number_of_ticks | 
| + | 
| number_of_non_library_ticks = number_of_accounted_ticks - self.number_of_library_ticks | 
| entries.sort(key=lambda e:e.tick_count, reverse=True) | 
| for entry in entries: | 
|  |