# 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 is a generic rule-tree for classifying memory maps on Android. It is a # simple hierarchical python data structure (list of dictionaries). Some rules: # - Order matters: what is caught by a node is not caught by its siblings. # - Hierarchy matters: what is caught by a node is propagated to its children # (if any). Only one of its children, though, will get the data. # - Non leaf nodes have an extra implicit node called {node-name}-other: if # something is caught by a non leaf node, but none of its children, it is # appended to implicit {node-name}-other catch-all children. # # See memory_inspector/classification/mmap_classifier.py for more docs. [ { 'name': 'Anon', 'mmap_file': r'(^$)|(^\[)', 'children': [ { 'name': 'stack', 'mmap_file': r'\[stack', }, { 'name': 'libc malloc', 'mmap_file': 'libc_malloc', }, { 'name': 'JIT', 'mmap_prot': 'r.x', }, ], }, { 'name': 'Ashmem', 'mmap_file': r'^/dev/ashmem', 'children': [ { 'name': 'Dalvik', 'mmap_file': r'^/dev/ashmem/dalvik', 'children': [ { 'name': 'Java Heap', 'mmap_file': r'dalvik-heap', }, { 'name': 'JIT', 'mmap_prot': 'r.x', }, ], }, ], }, { 'name': 'Libs', 'mmap_file': r'(\.so)|(\.apk)|(\.jar)', 'children': [ { 'name': 'Native', 'mmap_file': r'\.so', }, { 'name': 'APKs', 'mmap_file': r'\.apk', }, { 'name': 'JARs', 'mmap_file': r'\.jar', }, ], }, { 'name': 'Devices', 'mmap_file': r'^/dev/', 'children': [ { 'name': 'GPU', 'mmap_file': r'(nv)|(mali)', }, ], }, ]