aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/debug
diff options
context:
space:
mode:
authorGravatar ncteisen <ncteisen@gmail.com>2017-10-16 14:45:24 -0700
committerGravatar ncteisen <ncteisen@gmail.com>2017-10-16 14:45:24 -0700
commit3ea4e5158a8d24a2bf9437d836ed662b4afd3772 (patch)
tree7506fdc669cff22a8b4d11e15a012bafc1555453 /tools/debug
parent58b2d85a21b60a6961ae83459a70e664080e4a54 (diff)
Add copyright and usage
Diffstat (limited to 'tools/debug')
-rw-r--r--tools/debug/core/error_ref_leak.py26
1 files changed, 23 insertions, 3 deletions
diff --git a/tools/debug/core/error_ref_leak.py b/tools/debug/core/error_ref_leak.py
index 99f986a97b..6582328a5b 100644
--- a/tools/debug/core/error_ref_leak.py
+++ b/tools/debug/core/error_ref_leak.py
@@ -1,4 +1,23 @@
-#!/bin/python
+#!/usr/bin/env python2.7
+#
+# Copyright 2017 gRPC authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Reads stdin to find error_refcount log lines, and prints reference leaks
+# to stdout
+
+# usege: python error_ref_leak < logfile.txt
import sys
import re
@@ -7,7 +26,9 @@ data = sys.stdin.readlines()
errs = []
for line in data:
+ # if we care about the line
if re.search(r'error.cc', line):
+ # str manip to cut off left part of log line
line = line.partition('error.cc:')[-1]
line = re.sub(r'\d+] ', r'', line)
line = line.strip().split()
@@ -18,9 +39,8 @@ for line in data:
elif line[0] == "realloc":
errs.remove(line[1])
errs.append(line[3])
+ # explicitly look for the last dereference
elif line[1] == "1" and line[3] == "0":
- # print line
- # print err, errs
assert(err in errs)
errs.remove(err)