OLD | NEW |
1 #!/bin/env python | 1 #!/bin/env python |
2 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 # purify_message.py | 6 # purify_message.py |
7 | 7 |
8 ''' Utility objects and functions to parse and unique Purify messages ''' | 8 ''' Utility objects and functions to parse and unique Purify messages ''' |
9 | 9 |
10 import cStringIO | 10 import cStringIO |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 re.compile('testing::TestInfoImpl::Run\(void\)'), | 110 re.compile('testing::TestInfoImpl::Run\(void\)'), |
111 re.compile('Thread::ThreadFunc\\(void \*\)'), | 111 re.compile('Thread::ThreadFunc\\(void \*\)'), |
112 re.compile('TimerTask::Run\(void\)'), | 112 re.compile('TimerTask::Run\(void\)'), |
113 re.compile('MessageLoop::RunTask\(Task \*\)'), | 113 re.compile('MessageLoop::RunTask\(Task \*\)'), |
114 re.compile('.DispatchToMethod\@.*'), | 114 re.compile('.DispatchToMethod\@.*'), |
115 ) | 115 ) |
116 | 116 |
117 # if functions match the following, elide them from the stack | 117 # if functions match the following, elide them from the stack |
118 pat_func_elide = (re.compile('^std::'), re.compile('^new\(')) | 118 pat_func_elide = (re.compile('^std::'), re.compile('^new\(')) |
119 # if files match the following, elide them from the stack | 119 # if files match the following, elide them from the stack |
120 pat_file_elide = (re.compile('.*platformsdk_vista.*'), | 120 pat_file_elide = (re.compile('.*platformsdk_win2008.*'), |
121 re.compile('.*.(dll|DLL)$'), | 121 re.compile('.*.(dll|DLL)$'), |
122 # bug 1069902 | 122 # bug 1069902 |
123 re.compile('webkit/pending/wtf/fastmalloc\.h'), | 123 re.compile('webkit/pending/wtf/fastmalloc\.h'), |
124 # When we leak sqlite stuff, we leak a lot, and the stacks | 124 # When we leak sqlite stuff, we leak a lot, and the stacks |
125 # are all over the place. For now, let's assume that | 125 # are all over the place. For now, let's assume that |
126 # sqlite itself is leak free and focus on our calling code. | 126 # sqlite itself is leak free and focus on our calling code. |
127 re.compile('third_party/sqlite/.*'), | 127 re.compile('third_party/sqlite/.*'), |
128 ) | 128 ) |
129 | 129 |
130 pat_unit_test = re.compile('^([a-zA-Z0-9]+)_(\w+)_Test::.*') | 130 pat_unit_test = re.compile('^([a-zA-Z0-9]+)_(\w+)_Test::.*') |
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
601 ''' | 601 ''' |
602 unique = self.UniqueMessages() | 602 unique = self.UniqueMessages() |
603 groups = {} | 603 groups = {} |
604 for msg in unique: | 604 for msg in unique: |
605 group = msg.GetGroup() | 605 group = msg.GetGroup() |
606 if not group in groups: | 606 if not group in groups: |
607 groups[group] = [] | 607 groups[group] = [] |
608 groups[group].append(msg) | 608 groups[group].append(msg) |
609 return groups | 609 return groups |
610 | 610 |
OLD | NEW |