根据符号的地址从elf文件中查找其符号名

2014-11-24 07:38:38 · 作者: · 浏览: 0

通过下面的shell脚本实现此功能。

#!/bin/sh


addr=""
elf_file=""


print_usage()
{
echo "usage:"
echo "$0

"
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}'