通过下面的shell脚本实现此功能。
#!/bin/sh
addr=""
elf_file=""
print_usage()
{
echo "usage:"
echo "$0 <address> <elf_file>"
echo "example: "
echo "$0 1234 hello_world.exe"
}
parse_args()
{
if [ "$#" = "" ]; then
print_usage
return 1
fi
if [ $# -lt 2 ]; then
print_usage
return 1
fi
if [ ! -r $2 ]; then
echo "file $2 does not exist"
return 1
fi
addr=`echo $(($1+0))`
elf_file=$2
return 0
}
parse_args $*
if [ $? -ne 0 ]; then
exit 1
fi
nm -S -t d ${elf_file} | awk '$NF>=4 && $3 ~ /^[a-z]/ && $1<="'${addr}'" && "'${addr}'"<$1+$2 {print $4}'