diff options
author | dmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-08 09:41:39 +0000 |
---|---|---|
committer | dmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-08 09:41:39 +0000 |
commit | 752ad239c6015fe662630e4d4d0a1faaba0ca39b (patch) | |
tree | 36071050ef796a957021499618cd0a6fe2853287 /tools | |
parent | 25c78cfe9d6603277bd61ff03a06be8636efe433 (diff) | |
download | chromium_src-752ad239c6015fe662630e4d4d0a1faaba0ca39b.zip chromium_src-752ad239c6015fe662630e4d4d0a1faaba0ca39b.tar.gz chromium_src-752ad239c6015fe662630e4d4d0a1faaba0ca39b.tar.bz2 |
Use json to describe dmprof policies.
BUG=123758
Review URL: https://chromiumcodereview.appspot.com/10824104
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150528 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/deep_memory_profiler/dmprof | 59 | ||||
-rw-r--r-- | tools/deep_memory_profiler/policies.json | 9 | ||||
-rw-r--r-- | tools/deep_memory_profiler/policy.l0.json | 155 | ||||
-rw-r--r-- | tools/deep_memory_profiler/policy.l1.json | 197 | ||||
-rw-r--r-- | tools/deep_memory_profiler/policy.l2.json | 445 |
5 files changed, 851 insertions, 14 deletions
diff --git a/tools/deep_memory_profiler/dmprof b/tools/deep_memory_profiler/dmprof index 6c63332..01cf480 100755 --- a/tools/deep_memory_profiler/dmprof +++ b/tools/deep_memory_profiler/dmprof @@ -78,6 +78,9 @@ POLICY_DEEP_1 = 'POLICY_DEEP_1' # mmap regions are distincted w/ the allocation_type column. POLICY_DEEP_2 = 'POLICY_DEEP_2' +# POLICY_DEEP_3 is in JSON format. +POLICY_DEEP_3 = 'POLICY_DEEP_3' + class EmptyDumpException(Exception): def __init__(self, value): @@ -133,10 +136,10 @@ class DelayedStaticSymbols(object): class Rule(object): """Represents one matching rule in a policy file.""" - def __init__(self, name, mmap, pattern): + def __init__(self, name, mmap, stacktrace_pattern): self.name = name self.mmap = mmap - self.condition = re.compile(pattern + r'\Z') + self.stacktrace_pattern = re.compile(stacktrace_pattern + r'\Z') class Policy(object): @@ -170,7 +173,7 @@ def get_component(rule_list, bucket, symbols): stacktrace = ''.join(symbols[a] + ' ' for a in bucket.stacktrace).strip() for rule in rule_list: - if bucket.mmap == rule.mmap and rule.condition.match(stacktrace): + if bucket.mmap == rule.mmap and rule.stacktrace_pattern.match(stacktrace): bucket.component_cache = rule.name return rule.name @@ -653,18 +656,20 @@ def update_symbols( sys.stderr.write(' All symbols resolved.\n') -def parse_policy(policy_path): - """Parses policy file. +def parse_policy_text(policy_path): + """Parses policy file in text format. A policy file contains component's names and their stacktrace pattern written in regular expression. Those patterns are matched against each symbols of each stacktraces in the order written in the policy file + TODO(dmikurube): Deprecate this function after a while. + Args: policy_path: A path for a policy file. Returns: - A list containing component's name and its regex object + A loaded policy object. """ with open(policy_path, mode='r') as policy_f: policy_lines = policy_f.readlines() @@ -700,7 +705,30 @@ def parse_policy(policy_path): sys.stderr.write(' invalid heap profile policy version: %s\n' % ( policy_version)) - return rule_list, policy_version, components + return Policy(rule_list, policy_version, components) + + +def parse_policy_json(policy_path): + """Parses policy file in json format. + + A policy file contains component's names and their + stacktrace pattern written in regular expression. + Those patterns are matched against each symbols of + each stacktraces in the order written in the policy file + + Args: + policy_path: A path for a policy file. + Returns: + A loaded policy object. + """ + with open(policy_path, mode='r') as f: + policy = json.load(f) + + rules = [] + for rule in policy['rules']: + rules.append(Rule( + rule['name'], rule['allocator'] == 'mmap', rule['stacktrace'])) + return Policy(rules, policy['version'], policy['components']) def find_prefix(path): @@ -800,18 +828,27 @@ def load_default_policies(): def load_policy(policies_dict, policy_label): policy_file = policies_dict[policy_label]['file'] + policy_format = policies_dict[policy_label]['format'] policy_path = os.path.join(os.path.dirname(__file__), policy_file) - rule_list, policy_version, components = parse_policy(policy_path) + policy = None + if policy_format == 'json': + policy = parse_policy_json(policy_path) + elif policy_format == 'text': + policy = parse_policy_text(policy_path) + else: + return None sys.stderr.write(' %s: %s (version: %s)\n' % - (policy_label, policy_path, policy_version)) - return Policy(rule_list, policy_version, components) + (policy_label, policy_path, policy.version)) + return policy def load_policies_dict(policies_dict): sys.stderr.write('Loading policy files.\n') policies = {} for policy_label in policies_dict: - policies[policy_label] = load_policy(policies_dict, policy_label) + loaded_policy = load_policy(policies_dict, policy_label) + if loaded_policy: + policies[policy_label] = loaded_policy return policies diff --git a/tools/deep_memory_profiler/policies.json b/tools/deep_memory_profiler/policies.json index 2d1b34e..5535056 100644 --- a/tools/deep_memory_profiler/policies.json +++ b/tools/deep_memory_profiler/policies.json @@ -1,11 +1,14 @@ { "l0": { - "file": "policy.l0.txt" + "file": "policy.l0.json", + "format": "json" }, "l1": { - "file": "policy.l1.txt" + "file": "policy.l1.json", + "format": "json" }, "l2": { - "file": "policy.l2.txt" + "file": "policy.l2.json", + "format": "json" } }
\ No newline at end of file diff --git a/tools/deep_memory_profiler/policy.l0.json b/tools/deep_memory_profiler/policy.l0.json new file mode 100644 index 0000000..4c24c15 --- /dev/null +++ b/tools/deep_memory_profiler/policy.l0.json @@ -0,0 +1,155 @@ +{ + "components": [ + "second", + "mmap-profiler", + "mmap-allocated-type", + "mmap-tcmalloc", + "FROM_HERE_FOR_TOTAL", + "mustbezero", + "nonprofiled-absent", + "nonprofiled-anonymous", + "nonprofiled-file-exec", + "nonprofiled-file-nonexec", + "nonprofiled-stack", + "nonprofiled-other", + "no-bucket", + "mmap-v8", + "mmap-catch-all", + "tc-used-all", + "tc-unused", + "UNTIL_HERE_FOR_TOTAL", + "total-exclude-profiler", + "total", + "anonymous", + "file-exec", + "file-nonexec", + "stack", + "other", + "mmap-total-log", + "mmap-no-log", + "mmap-total-record", + "other-total-log", + "tc-total-log", + "tc-no-log", + "tc-total-record", + "tc-total" + ], + "rules": [ + { + "name": "second", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "mmap-profiler", + "stacktrace": ".*(ProfilerMalloc|MemoryRegionMap::).*", + "allocator": "mmap" + }, + { + "name": "mmap-allocated-type", + "stacktrace": ".*(AllocatedTypeMalloc).*", + "allocator": "mmap" + }, + { + "name": "mmap-tcmalloc", + "stacktrace": ".*(DoAllocWithArena|SbrkSysAllocator::Alloc|MmapSysAllocator::Alloc|LowLevelAlloc::Alloc|LowLevelAlloc::AllocWithArena).*", + "allocator": "mmap" + }, + { + "name": "FROM_HERE_FOR_TOTAL", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "mustbezero", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-absent", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-anonymous", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-file-exec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-file-nonexec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-stack", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-other", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "mmap-v8", + "stacktrace": ".*v8::.*", + "allocator": "mmap" + }, + { + "name": "mmap-catch-all", + "stacktrace": ".*", + "allocator": "mmap" + }, + { + "name": "tc-used-all", + "stacktrace": ".*", + "allocator": "malloc" + }, + { + "name": "UNTIL_HERE_FOR_TOTAL", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "total-exclude-profiler", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "total", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "anonymous", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "file-exec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "file-nonexec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "stack", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "other", + "stacktrace": "optional", + "allocator": "optional" + } + ], + "version": "POLICY_DEEP_3" +}
\ No newline at end of file diff --git a/tools/deep_memory_profiler/policy.l1.json b/tools/deep_memory_profiler/policy.l1.json new file mode 100644 index 0000000..f300b90 --- /dev/null +++ b/tools/deep_memory_profiler/policy.l1.json @@ -0,0 +1,197 @@ +{ + "components": [ + "second", + "mmap-profiler", + "mmap-allocated-type", + "mmap-tcmalloc", + "FROM_HERE_FOR_TOTAL", + "mustbezero", + "nonprofiled-absent", + "nonprofiled-anonymous", + "nonprofiled-file-exec", + "nonprofiled-file-nonexec", + "nonprofiled-stack", + "nonprofiled-other", + "no-bucket", + "mmap-v8-heap-newspace", + "mmap-v8-heap-coderange", + "mmap-v8-heap-pagedspace", + "mmap-v8-other", + "mmap-catch-all", + "tc-v8", + "tc-skia", + "tc-webkit-catch-all", + "tc-unknown-string", + "tc-catch-all", + "tc-unused", + "UNTIL_HERE_FOR_TOTAL", + "total-exclude-profiler", + "total", + "anonymous", + "file-exec", + "file-nonexec", + "stack", + "other", + "mmap-total-log", + "mmap-no-log", + "mmap-total-record", + "other-total-log", + "tc-total-log", + "tc-no-log", + "tc-total-record", + "tc-total" + ], + "rules": [ + { + "name": "second", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "mmap-profiler", + "stacktrace": ".*(ProfilerMalloc|MemoryRegionMap::).*", + "allocator": "mmap" + }, + { + "name": "mmap-allocated-type", + "stacktrace": ".*(AllocatedTypeMalloc).*", + "allocator": "mmap" + }, + { + "name": "mmap-tcmalloc", + "stacktrace": ".*(DoAllocWithArena|SbrkSysAllocator::Alloc|MmapSysAllocator::Alloc|LowLevelAlloc::Alloc|LowLevelAlloc::AllocWithArena).*", + "allocator": "mmap" + }, + { + "name": "FROM_HERE_FOR_TOTAL", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "mustbezero", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-absent", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-anonymous", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-file-exec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-file-nonexec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-stack", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-other", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "mmap-v8-heap-newspace", + "stacktrace": ".*v8::internal::NewSpace::SetUp.*", + "allocator": "mmap" + }, + { + "name": "mmap-v8-heap-coderange", + "stacktrace": ".*v8::internal::CodeRange::SetUp.*", + "allocator": "mmap" + }, + { + "name": "mmap-v8-heap-pagedspace", + "stacktrace": ".*v8::internal::PagedSpace::AllocateRaw.*", + "allocator": "mmap" + }, + { + "name": "mmap-v8-other", + "stacktrace": ".*v8::.*", + "allocator": "mmap" + }, + { + "name": "mmap-catch-all", + "stacktrace": ".*", + "allocator": "mmap" + }, + { + "name": "tc-v8", + "stacktrace": ".*v8::.*", + "allocator": "malloc" + }, + { + "name": "tc-skia", + "stacktrace": ".*Sk[A-Za-z_]+::.*", + "allocator": "malloc" + }, + { + "name": "tc-webkit-catch-all", + "stacktrace": ".*(WTF::|WebCore::|WebKit::).*", + "allocator": "malloc" + }, + { + "name": "tc-unknown-string", + "stacktrace": ".*std::basic_string::_Rep::_S_create.*", + "allocator": "malloc" + }, + { + "name": "tc-catch-all", + "stacktrace": ".*", + "allocator": "malloc" + }, + { + "name": "UNTIL_HERE_FOR_TOTAL", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "total-exclude-profiler", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "total", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "anonymous", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "file-exec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "file-nonexec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "stack", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "other", + "stacktrace": "optional", + "allocator": "optional" + } + ], + "version": "POLICY_DEEP_3" +}
\ No newline at end of file diff --git a/tools/deep_memory_profiler/policy.l2.json b/tools/deep_memory_profiler/policy.l2.json new file mode 100644 index 0000000..6ffa60f --- /dev/null +++ b/tools/deep_memory_profiler/policy.l2.json @@ -0,0 +1,445 @@ +{ + "components": [ + "second", + "mmap-profiler", + "mmap-allocated-type", + "mmap-tcmalloc", + "FROM_HERE_FOR_TOTAL", + "mustbezero", + "nonprofiled-absent", + "nonprofiled-anonymous", + "nonprofiled-file-exec", + "nonprofiled-file-nonexec", + "nonprofiled-stack", + "nonprofiled-other", + "no-bucket", + "mmap-v8-heap-newspace", + "mmap-v8-heap-coderange", + "mmap-v8-heap-pagedspace", + "mmap-v8-other", + "mmap-catch-all", + "tc-webcore-fontcache", + "tc-skia", + "tc-renderobject", + "tc-renderstyle", + "tc-webcore-sharedbuf", + "tc-webcore-XHRcreate", + "tc-webcore-XHRreceived", + "tc-webcore-docwriter-add", + "tc-webcore-node-and-doc", + "tc-webcore-node-factory", + "tc-webcore-element-wrapper", + "tc-webcore-stylepropertyset", + "tc-webcore-style-createsheet", + "tc-webcore-cachedresource", + "tc-webcore-script-execute", + "tc-webcore-events-related", + "tc-webcore-document-write", + "tc-webcore-node-create-renderer", + "tc-webcore-render-catch-all", + "tc-webcore-setInnerHTML-except-node", + "tc-wtf-StringImpl-user-catch-all", + "tc-wtf-HashTable-user-catch-all", + "tc-webcore-everything-create", + "tc-webkit-from-v8-catch-all", + "tc-webkit-catch-all", + "tc-v8-catch-all", + "tc-toplevel-string", + "tc-catch-all", + "tc-unused", + "UNTIL_HERE_FOR_TOTAL", + "total-exclude-profiler", + "total", + "anonymous", + "file-exec", + "file-nonexec", + "stack", + "other", + "mmap-total-log", + "mmap-no-log", + "mmap-total-record", + "other-total-log", + "tc-total-log", + "tc-no-log", + "tc-total-record", + "tc-total" + ], + "rules": [ + { + "name": "second", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "mmap-profiler", + "stacktrace": ".*(ProfilerMalloc|MemoryRegionMap::).*", + "allocator": "mmap" + }, + { + "name": "mmap-allocated-type", + "stacktrace": ".*(AllocatedTypeMalloc).*", + "allocator": "mmap" + }, + { + "name": "mmap-tcmalloc", + "stacktrace": ".*(DoAllocWithArena|SbrkSysAllocator::Alloc|MmapSysAllocator::Alloc|LowLevelAlloc::Alloc|LowLevelAlloc::AllocWithArena).*", + "allocator": "mmap" + }, + { + "name": "FROM_HERE_FOR_TOTAL", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "mustbezero", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-absent", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-anonymous", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-file-exec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-file-nonexec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-stack", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "nonprofiled-other", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "mmap-v8-heap-newspace", + "stacktrace": ".*v8::internal::NewSpace::SetUp.*", + "allocator": "mmap" + }, + { + "name": "mmap-v8-heap-coderange", + "stacktrace": ".*v8::internal::CodeRange::SetUp.*", + "allocator": "mmap" + }, + { + "name": "mmap-v8-heap-pagedspace", + "stacktrace": ".*v8::internal::PagedSpace::AllocateRaw.*", + "allocator": "mmap" + }, + { + "name": "mmap-v8-other", + "stacktrace": ".*v8::.*", + "allocator": "mmap" + }, + { + "name": "mmap-catch-all", + "stacktrace": ".*", + "allocator": "mmap" + }, + { + "name": "tc-webcore-fontcache", + "stacktrace": ".*WebCore::FontCache::getCachedFontData.*", + "allocator": "malloc" + }, + { + "name": "tc-skia", + "stacktrace": ".* Sk[A-Za-z_]+::.*", + "allocator": "malloc" + }, + { + "name": "tc-renderobject", + "stacktrace": ".*WebCore::RenderArena::allocate.*", + "allocator": "malloc" + }, + { + "name": "tc-renderstyle", + "stacktrace": ".*WebCore::RenderStyle::create.*", + "allocator": "malloc" + }, + { + "name": "tc-renderstyle", + "stacktrace": ".*WebCore::RenderStyle::clone.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-sharedbuf", + "stacktrace": ".*WebCore::SharedBuffer::create.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-sharedbuf", + "stacktrace": ".*WebCore::SharedBuffer::buffer.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-sharedbuf", + "stacktrace": ".*WebCore::SharedBuffer::append.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-XHRcreate", + "stacktrace": ".*WebCore::XMLHttpRequest::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-XHRreceived", + "stacktrace": ".*WebCore::XMLHttpRequest::didReceiveData.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-docwriter-add", + "stacktrace": ".*WebCore::DocumentWriter::addData.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-node-and-doc", + "stacktrace": ".*WebCore::HTML[a-zA-Z0-9_]*Element::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-node-and-doc", + "stacktrace": ".*WebCore::Text::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-node-and-doc", + "stacktrace": ".*WebCore::Comment::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-node-and-doc", + "stacktrace": ".*WebCore::HTMLDocument::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-node-and-doc", + "stacktrace": ".*WebCore::CSSStyleRule::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-node-and-doc", + "stacktrace": ".*WebCore::Attribute::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-node-and-doc", + "stacktrace": ".*WebCore::DOMWindow::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-node-factory", + "stacktrace": ".*WebCore::HTML[a-zA-Z0-9_]*Factory::create[a-zA-Z0-9_]*Element.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-element-wrapper", + "stacktrace": ".*WebCore::createHTML[a-zA-Z0-9_]*ElementWrapper.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-stylepropertyset", + "stacktrace": ".*WebCore::StylePropertySet::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-style-createsheet", + "stacktrace": ".*WebCore::StyleElement::createSheet.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-cachedresource", + "stacktrace": ".*WebCore::CachedResource::data .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-cachedresource", + "stacktrace": ".*WebCore::CachedResource::load .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-script-execute", + "stacktrace": ".*WebCore::ScriptElement::execute.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-events-related", + "stacktrace": ".*WebCore::createAttributeEventListener.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-events-related", + "stacktrace": ".*WebCore::V8LazyEventListener::create.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-events-related", + "stacktrace": ".*WebCore::V8EventListener::create.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-events-related", + "stacktrace": ".*WebCore::Event::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-events-related", + "stacktrace": ".*WebCore::EventListener::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-document-write", + "stacktrace": ".*WebCore::Document::write.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-node-create-renderer", + "stacktrace": ".*WebCore::Node::createRendererIfNeeded.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-render-catch-all", + "stacktrace": ".*WebCore::RenderLayer.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-render-catch-all", + "stacktrace": ".*WebCore::RenderBlock.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-render-catch-all", + "stacktrace": ".*WebCore::RenderWidget.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-render-catch-all", + "stacktrace": ".*WebCore::RenderView.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-render-catch-all", + "stacktrace": ".*WebCore::RenderViewImpl.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-render-catch-all", + "stacktrace": ".*WebCore::RenderStyle.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-render-catch-all", + "stacktrace": ".*WebCore::RenderText.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-render-catch-all", + "stacktrace": ".* RendererMain .*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-setInnerHTML-except-node", + "stacktrace": ".*WebCore::HTMLElement::setInnerHTML.*", + "allocator": "malloc" + }, + { + "name": "tc-wtf-StringImpl-user-catch-all", + "stacktrace": ".*WTF::StringImpl::create .*", + "allocator": "malloc" + }, + { + "name": "tc-wtf-StringImpl-user-catch-all", + "stacktrace": ".*WTF::StringImpl::createUninitialized.*", + "allocator": "malloc" + }, + { + "name": "tc-wtf-HashTable-user-catch-all", + "stacktrace": ".*WTF::HashTable::allocateTable.*", + "allocator": "malloc" + }, + { + "name": "tc-webcore-everything-create", + "stacktrace": ".*WebCore::[a-zA-Z0-9_]*::create .*", + "allocator": "malloc" + }, + { + "name": "tc-webkit-from-v8-catch-all", + "stacktrace": ".*(WTF::|WebCore::|WebKit::).*v8::.*", + "allocator": "malloc" + }, + { + "name": "tc-webkit-catch-all", + "stacktrace": ".*(WTF::|WebCore::|WebKit::).*", + "allocator": "malloc" + }, + { + "name": "tc-v8-catch-all", + "stacktrace": ".*v8::.*", + "allocator": "malloc" + }, + { + "name": "tc-toplevel-string", + "stacktrace": "std::basic_string::_Rep::_S_create", + "allocator": "malloc" + }, + { + "name": "tc-catch-all", + "stacktrace": ".*", + "allocator": "malloc" + }, + { + "name": "UNTIL_HERE_FOR_TOTAL", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "total-exclude-profiler", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "total", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "anonymous", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "file-exec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "file-nonexec", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "stack", + "stacktrace": "optional", + "allocator": "optional" + }, + { + "name": "other", + "stacktrace": "optional", + "allocator": "optional" + } + ], + "version": "POLICY_DEEP_3" +}
\ No newline at end of file |