1#!/bin/sh
2# skrypt wyci�gaj�cy z backtrace'a wyrzucanego przez kadu
3# informacje o numerach linii
4# p�ki co nie dzia�a to dla modu��w :/
5
6# autor: joi
7# licencja: gplv2
8
9SC=
10function findbin()
11{
12	OLDIFS=$IFS
13	IFS=":"
14	for i in $PATH;
15	do
16		if [ -f $i/$1 ];
17		then
18			SC=$i
19			IFS=$OLDIFS
20			return 0
21		fi
22	done
23
24	IFS=$OLDIFS
25	SC=""
26	return 1
27}
28
29#findbin kadu && echo $SC
30
31bt=`cat - | grep "^\[" | sed "s/^\(\[[0-9]*\]\) \(.*\)(\(.*\)+[0-9xa-f]*) \[\(0x.*\)\]$/\2 \3 \4/" | grep -v "^\[" | sed "s/bin\/\.\.\///g"`
32
33OLDIFS=$IFS
34IFS="
35"
36
37for i in $bt;
38do
39	file=`echo $i | awk '{print $1}'`
40	fun=`echo $i | awk '{print $2}'`
41	adr=`echo $i | awk '{print $3}'`
42	if [ `echo -n $file | grep "^[/|\.]" | wc -l` -eq 0 ];
43	then
44		findbin $file && file=$SC/$file
45	fi
46	echo -n "$fun "| c++filt
47	addr2line -e $file $adr
48done
49
50IFS=$OLDIFS
51