mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-10-23 08:12:01 +00:00
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.
34 lines
636 B
Python
Executable File
34 lines
636 B
Python
Executable File
#!/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))
|
|
|
|
|
|
|