| Index: tools/telemetry/telemetry/core/platform/profiler/__init__.py
|
| diff --git a/tools/telemetry/telemetry/core/platform/profiler/__init__.py b/tools/telemetry/telemetry/core/platform/profiler/__init__.py
|
| index 58febc9182e4b62d44bb6cfed54d5c620d13001a..806229e907efcf5167414529a0a951cd9a5b9cc7 100644
|
| --- a/tools/telemetry/telemetry/core/platform/profiler/__init__.py
|
| +++ b/tools/telemetry/telemetry/core/platform/profiler/__init__.py
|
| @@ -4,6 +4,8 @@
|
|
|
| import collections
|
|
|
| +from telemetry.core import exceptions
|
| +
|
| class Profiler(object):
|
| """A sampling profiler provided by the platform.
|
|
|
| @@ -49,12 +51,16 @@ class Profiler(object):
|
| process_name_counts = collections.defaultdict(int)
|
| process_output_file_map = {}
|
| for pid in all_pids:
|
| - cmd_line = self._platform_backend.GetCommandLine(pid)
|
| - process_name = self._browser_backend.GetProcessName(cmd_line)
|
| - output_file = '%s.%s%s' % (self._output_path, process_name,
|
| - process_name_counts[process_name])
|
| - process_name_counts[process_name] += 1
|
| - process_output_file_map[pid] = output_file
|
| + try:
|
| + cmd_line = self._platform_backend.GetCommandLine(pid)
|
| + process_name = self._browser_backend.GetProcessName(cmd_line)
|
| + output_file = '%s.%s%s' % (self._output_path, process_name,
|
| + process_name_counts[process_name])
|
| + process_name_counts[process_name] += 1
|
| + process_output_file_map[pid] = output_file
|
| + except exceptions.ProcessGoneException:
|
| + # Ignore processes that disappeared since calling GetChildPids().
|
| + continue
|
| return process_output_file_map
|
|
|
| def CollectProfile(self):
|
|
|