26 lines
565 B
Bash
26 lines
565 B
Bash
#!/bin/sh
|
|
NLOOPS=1000
|
|
SLEEP=0.1
|
|
|
|
[ $# -lt 1 ] && echo "ERROR: Not enough arguments" && exit 2
|
|
elffile="$1"
|
|
|
|
trap "exit" SIGINT
|
|
|
|
logfile=$(mktemp)
|
|
|
|
arm-none-eabi-gdb -x profile.gdb "$elffile" > "$logfile" 2>/dev/null&
|
|
gdbpid=$!
|
|
trap "kill -TERM $gdbpid; rm $logfile" EXIT
|
|
echo "Gathering..."
|
|
for i in $(seq 1 $NLOOPS); do
|
|
echo "$i/$NLOOPS"
|
|
kill -INT $gdbpid
|
|
sleep $SLEEP
|
|
done
|
|
kill -TERM $gdbpid
|
|
trap "rm '$logfile'" EXIT
|
|
|
|
egrep -o '\w+ \(.*\) at .*' "$logfile" |cut -d' ' -f1|sort|uniq -c|sort -n
|
|
echo 'Total:' $(egrep -c '\w+ \(.*\) at .*' "$logfile")
|
|
|