| Index: tools/memory_inspector/memory_inspector/backends/android/native_heap_dump_parser.py
|
| diff --git a/tools/memory_inspector/memory_inspector/backends/android/native_heap_dump_parser.py b/tools/memory_inspector/memory_inspector/backends/android/native_heap_dump_parser.py
|
| deleted file mode 100644
|
| index eb6a0d873d9b0691c127a24ab1483901aa56ca63..0000000000000000000000000000000000000000
|
| --- a/tools/memory_inspector/memory_inspector/backends/android/native_heap_dump_parser.py
|
| +++ /dev/null
|
| @@ -1,56 +0,0 @@
|
| -# Copyright 2014 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -"""This parser turns the heap_dump output into a |NativeHeap| object."""
|
| -
|
| -import json
|
| -
|
| -from memory_inspector.core import native_heap
|
| -from memory_inspector.core import stacktrace
|
| -
|
| -
|
| -# These are defined in heap_profiler/heap_profiler.h
|
| -FLAGS_MALLOC = 1
|
| -FLAGS_MMAP = 2
|
| -FLAGS_MMAP_FILE = 4
|
| -FLAGS_IN_ZYGOTE = 8
|
| -
|
| -
|
| -def Parse(content):
|
| - """Parses the output of the heap_dump binary (part of libheap_profiler).
|
| -
|
| - heap_dump provides a conveniente JSON output.
|
| - See the header of tools/android/heap_profiler/heap_dump.c for more details.
|
| -
|
| - Args:
|
| - content: string containing the command output.
|
| -
|
| - Returns:
|
| - An instance of |native_heap.NativeHeap|.
|
| - """
|
| - data = json.loads(content)
|
| - assert('allocs' in data), 'Need to run heap_dump with the -x (extended) arg.'
|
| - nativeheap = native_heap.NativeHeap()
|
| - strace_by_index = {} # index (str) -> |stacktrace.Stacktrace|
|
| -
|
| - for index, entry in data['stacks'].iteritems():
|
| - strace = stacktrace.Stacktrace()
|
| - for absolute_addr in entry['f']:
|
| - strace.Add(nativeheap.GetStackFrame(absolute_addr))
|
| - strace_by_index[index] = strace
|
| -
|
| - for start_addr, entry in data['allocs'].iteritems():
|
| - flags = int(entry['f'])
|
| - # TODO(primiano): For the moment we just skip completely the allocations
|
| - # made in the Zygote (pre-fork) because this is usually reasonable. In the
|
| - # near future we will expose them with some UI to selectively filter them.
|
| - if flags & FLAGS_IN_ZYGOTE:
|
| - continue
|
| - nativeheap.Add(native_heap.Allocation(
|
| - size=entry['l'],
|
| - stack_trace=strace_by_index[entry['s']],
|
| - start=int(start_addr, 16),
|
| - flags=flags))
|
| -
|
| - return nativeheap
|
|
|