Yay! The SVG file is shown!
[gbricks.git] / readtracelog.sh
blobba6292d0270c307db5bba21ad58418a0b2d8491f
1 #!/bin/sh
3 # See: http://balau82.wordpress.com/2010/10/06/trace-and-profile-function-calls-with-gcc/
5 if test ! -f "$1"
6 then
7 echo "Error: executable $1 does not exist."
8 exit 1
9 fi
10 if test ! -f "$2"
11 then
12 echo "Error: trace log $2 does not exist."
13 exit 1
15 EXECUTABLE="$1"
16 TRACELOG="$2"
17 while read LINETYPE FADDR CADDR CTIME; do
18 FNAME="$(addr2line -f -e ${EXECUTABLE} ${FADDR}|head -1)"
19 CDATE="$(date -Iseconds -d @${CTIME})"
20 if test "${LINETYPE}" = "e"
21 then
22 CNAME="$(addr2line -f -e ${EXECUTABLE} ${CADDR}|head -1)"
23 CLINE="$(addr2line -s -e ${EXECUTABLE} ${CADDR})"
24 echo "Enter ${FNAME} at ${CDATE}, called from ${CNAME} (${CLINE})"
26 if test "${LINETYPE}" = "x"
27 then
28 echo "Exit ${FNAME} at ${CDATE}"
30 done < "${TRACELOG}"