#!/bin/sh if test $Argc -lt 1 { echo "Usage: $0 [0x... [0x... ] ]" exit 1 } setglobal PATH = "$PATH:/usr/gnu/bin" if file $1 | grep NSYM >/dev/null 2>&1 { setglobal NM = '"gnm --radix=d'" } else { setglobal NM = '"nm -d'" } setglobal executable = $1 shift while [ $# -gt 0 ] { setglobal dec = $[printf %d $1] $NM -n $executable | grep ' [Tt] ' | awk ' { if($1 > '$dec') { printf "%s+0x%x\n", name, '$dec'-offset; exit } name=$3; offset=$1 }' shift }