现在的位置: 首页 > 综合 > 正文

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

2013年03月24日 ⁄ 综合 ⁄ 共 506字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.