linux/scripts/stackusage
<<
>>
Prefs
   1#!/bin/sh
   2
   3outfile=""
   4now=`date +%s`
   5
   6while [ $# -gt 0 ]
   7do
   8    case "$1" in
   9        -o)
  10            outfile="$2"
  11            shift 2;;
  12        -h)
  13            echo "usage: $0 [-o outfile] <make options/args>"
  14            exit 0;;
  15        *)  break;;
  16    esac
  17done
  18
  19if [ -z "$outfile" ]
  20then
  21    outfile=`mktemp --tmpdir stackusage.$$.XXXX`
  22fi
  23
  24KCFLAGS="${KCFLAGS} -fstack-usage" make "$@"
  25
  26# Prepend directory name to file names, remove column information,
  27# make file:line/function/size/type properly tab-separated.
  28find . -name '*.su' -newermt "@${now}" -print |                     \
  29    xargs perl -MFile::Basename -pe                                 \
  30        '$d = dirname($ARGV); s#([^:]+:[0-9]+):[0-9]+:#$d/$1\t#;' | \
  31    sort -k3,3nr > "${outfile}"
  32
  33echo "$0: output written to ${outfile}"
  34