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.
diff --git a/openbsc/contrib/bt.py b/openbsc/contrib/bt.py
new file mode 100755
index 0000000..1b111ef
--- /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))
+
+
+