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

通过下面的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}'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值