#!/bin/ksh -p # # ident "@(#)whocalls.ksh 1.11 04/06/21 SMI" # # Copyright 2004 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. usage() { cat 1>&2 << 'EOF' usage: whocalls [sl:] [utility arguments] whocalls will audit all function bindings between and any library it utilizes. Each time the function is called, a stack backtrace is displayed -l specify an alternate who.so to use. -s When available, examine and use the .symtab symbol table for local symbols (more expensive). EOF } optlet="sl:" if [[ $# -lt 2 ]]; then usage exit 1 fi wholib32="/usr/lib/link_audit/32/who.so.1" wholib64="/usr/lib/link_audit/64/who.so.1" detail="" while getopts $optlet c do case $c in l) wholib32="$OPTARG" wholib64="$OPTARG" ;; s) detail="1" ;; \?) usage exit 1 ;; esac done shift `expr $OPTIND - 1` func=$1 shift 1 LD_AUDIT_32="$wholib32" \ LD_AUDIT_64="$wholib64" \ WHO_DETAIL="$detail" \ WHOCALLS="$func" \ "$@" exit 0