summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authordmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-08 09:41:39 +0000
committerdmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-08 09:41:39 +0000
commit752ad239c6015fe662630e4d4d0a1faaba0ca39b (patch)
tree36071050ef796a957021499618cd0a6fe2853287 /tools
parent25c78cfe9d6603277bd61ff03a06be8636efe433 (diff)
downloadchromium_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-xtools/deep_memory_profiler/dmprof59
-rw-r--r--tools/deep_memory_profiler/policies.json9
-rw-r--r--tools/deep_memory_profiler/policy.l0.json155
-rw-r--r--tools/deep_memory_profiler/policy.l1.json197
-rw-r--r--tools/deep_memory_profiler/policy.l2.json445
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