mariadb/poor-mans-profiler/pmprof
Leif Walsh bc28a61cd7 fixing pmprof to not get confused when gdb gives strange output for a stack frame
git-svn-id: file:///svn/toku/tokudb@40205 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:11 -04:00

31 lines
623 B
Bash
Executable file

#!/bin/bash
nsamples=1
sleeptime=1
while [ $# -gt 0 ] ; do
arg=$1;
if [[ $arg =~ --(.*)=(.*) ]] ; then
eval ${BASH_REMATCH[1]}=${BASH_REMATCH[2]}
else
break
fi
shift
done
# change the process name
pid=$*
# may need the cilk gdb
for x in $(seq 1 $nsamples)
do
gdb -ex "set pagination 0" -ex "thread apply all bt" -batch -p $pid
sleep $sleeptime
done | \
awk '
BEGIN { s = ""; }
/^Thread/ { if (s != "") print s; s = ""; }
/^\#/ { if ($3 == "in") { v = $4; } else { v = $2 } if (s != "" ) { s = s "," v} else { s = v } }
END { print s }' | \
sort | uniq -c | sort -r -n -k 1,1