minix/commands/unstack/unstack.sh

27 lines
432 B
Bash
Raw Normal View History

2007-03-21 10:33:39 +01:00
#!/bin/sh
if [ $# -lt 1 ]
then echo "Usage: $0 <executable> [0x... [0x... ] ]"
exit 1
fi
PATH=$PATH:/usr/gnu/bin
if file $1 | grep NSYM >/dev/null 2>&1; then
NM="gnm --radix=d"
else
NM="nm -d"
fi
2007-03-21 10:33:39 +01:00
executable=$1
shift
while [ $# -gt 0 ]
do dec="`printf %d $1`"
$NM -n $executable | grep ' [Tt] [^.]' | awk '
2007-03-21 10:33:39 +01:00
{ if($1 > '$dec') { printf "%s+0x%x\n", name, '$dec'-offset; exit }
name=$3; offset=$1
}'
shift
done