From 25f30ba00ae7a5be50724a77bdf7484886726b9b Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 28 Oct 2009 09:12:43 +0100 Subject: misc: Add routine to generate backtrace from within the application E.g. to analyze the subscr_get/subscr_put behavior one can place the generate_backtrace into the functions, recompile and then filter the output with contrib/bt.py to get the function name, file and line. --- openbsc/contrib/bt.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 openbsc/contrib/bt.py (limited to 'openbsc/contrib') diff --git a/openbsc/contrib/bt.py b/openbsc/contrib/bt.py new file mode 100755 index 000000000..1b111efc8 --- /dev/null +++ b/openbsc/contrib/bt.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +import os + +f = open("unbalanced") +lines = [] +for line in f: + lines.append(line) + +filenames = {} + +output = [] +for line in lines: + if "[0x" in line: + start = line.find("[") + end = line.find("]") + addr = line[start+1:end] + try: + file = filenames[addr] + except KeyError: + r = os.popen("addr2line -fs -e ./bsc_hack %s" % addr) + all = r.read().replace("\n", ",") + file = all + filenames[addr] = file + + line = line.replace(addr, file) + output.append(line) + +g = open("unbalanced.2", "w") +g.write("".join(output)) + + + -- cgit v1.2.3