8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / cmd / sgs / link_audit / common / whocalls.ksh
bloba040c095ac7c38295873b622d2c71f5f40ba9802
1 #!/bin/ksh -p
3 # CDDL HEADER START
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
20 # CDDL HEADER END
22 # Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
24 usage() {
25 cat 1>&2 << 'EOF'
26 usage: whocalls [sl:] <funcname> <utility> [utility arguments]
28 whocalls will audit all function bindings between <utility> and any library
29 it utilizes. Each time the function <funcname> is called, a stack
30 backtrace is displayed
32 -l <wholib>
33 specify an alternate who.so to use.
35 -s When available, examine and use the .symtab symbol table
36 for local symbols (more expensive).
37 EOF
40 optlet="sl:"
42 if [[ $# -lt 2 ]]; then
43 usage
44 exit 1
47 wholib32="/usr/lib/link_audit/32/who.so.1"
48 wholib64="/usr/lib/link_audit/64/who.so.1"
49 detail=""
51 while getopts $optlet c
53 case $c in
55 wholib32="$OPTARG"
56 wholib64="$OPTARG"
59 detail="1"
61 \?)
62 usage
63 exit 1
65 esac
66 done
68 shift `expr $OPTIND - 1`
69 func=$1
70 shift 1
72 LD_AUDIT_32="$wholib32" \
73 LD_AUDIT_64="$wholib64" \
74 WHO_DETAIL="$detail" \
75 WHOCALLS="$func" \
76 "$@"
77 exit 0