#!/bin/sh if [ $# -ne 2 ]; then echo "usage: `basename $0` kernel function+offset" >/dev/stderr exit 1 fi kern=$1 func=`echo $2 | awk -F+ '{print $1}'` off=`echo $2 | awk -F+ '{print $2}'` if [ -f ${kern}.symbols ]; then symbols=${kern}.symbols else symbols=${kern} fi objdump -d ${kern} | egrep '^[0-9a-f]{8} <'${func}'>' | awk '{printf("0x%s\n", $1)}' | xargs -J ADDR printf "%d + %d\n" ADDR $off | bc | xargs printf "0x%x\n" | xargs addr2line -e $symbols