scripts: benchmarkskript so modifiziert, dass libc-calls keine probleme machen
[testub10.git] / scripts / dumpinstr.sh
1 #!/bin/sh
2
3 if [ $# -lt 2 ]; then
4         echo "usage: $0 <executable> <method> <args>"
5         echo "will produce <executable>.trace"
6 fi
7
8 EXECFILE=$1
9 EXECMETHOD=$2
10
11 shift 2
12
13 cat <<END > $EXECFILE.tmp
14
15 set step-mode on
16
17 file $EXECFILE
18 break $EXECMETHOD
19
20 run $*
21
22 while 1==1
23
24 if \$pc != \$pc
25 printf "==== ?\\n"
26 end
27
28 printf "\\n====BEGIN $EXECMETHOD\\n"
29
30 printf "==== "
31 x/i \$pc
32
33 up
34 set \$nfp = \$fp
35 down
36
37 while \$fp != \$nfp
38 stepi
39 printf "==== "
40 x/i \$pc
41 end
42
43 printf "\\n====END $EXECMETHOD\\n"
44
45 continue
46
47 end
48
49 quit
50
51 END
52
53 gdb < $EXECFILE.tmp > $EXECFILE.output 2>/dev/null
54
55 awk -- '\
56 /^====BEGIN/ {ll = ("begin " $2);} \
57 /^==== / {print ll; ll = (" " substr($0, 5));} \
58 /^====END/ {print "end", $2;}
59 ' $EXECFILE.output >> $EXECFILE.trace
60
61 echo instructions: `grep "^  " $EXECFILE.trace | wc -l`
62 echo trace output: $EXECFILE.trace
63
64 rm $EXECFILE.tmp $EXECFILE.output