glibc/elf/sotruss.sh

153 lines
4.2 KiB
Bash
Raw Normal View History

#! @BASH@
# Copyright (C) 2011-2015 Free Software Foundation, Inc.
2011-05-29 01:20:12 +08:00
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <http://www.gnu.org/licenses/>.
2011-05-29 01:20:12 +08:00
# We should be able to find the translation right at the beginning.
TEXTDOMAIN=libc
TEXTDOMAINDIR=@TEXTDOMAINDIR@
unset SOTRUSS_FROMLIST
unset SOTRUSS_TOLIST
unset SOTRUSS_OUTNAME
unset SOTRUSS_EXIT
unset SOTRUSS_NOINDENT
SOTRUSS_WHICH=$$
lib='@PREFIX@/$LIB/audit/sotruss-lib.so'
do_help() {
2011-05-29 01:20:12 +08:00
echo $"Usage: sotruss [OPTION...] [--] EXECUTABLE [EXECUTABLE-OPTION...]
2011-09-10 00:31:43 +08:00
-F, --from FROMLIST Trace calls from objects on FROMLIST
-T, --to TOLIST Trace calls to objects on TOLIST
2011-05-29 01:20:12 +08:00
2011-09-10 00:31:43 +08:00
-e, --exit Also show exits from the function calls
-f, --follow Trace child processes
-o, --output FILENAME Write output to FILENAME (or FILENAME.$PID in case
2011-05-29 01:20:12 +08:00
-f is also used) instead of standard error
2011-09-10 00:31:43 +08:00
-?, --help Give this help list
--usage Give a short usage message
--version Print program version"
2011-05-29 01:20:12 +08:00
echo
printf $"Mandatory arguments to long options are also mandatory for any corresponding\nshort options.\n"
echo
printf $"For bug reporting instructions, please see:\\n%s.\\n" \
"@REPORT_BUGS_TO@"
2011-05-29 01:20:12 +08:00
exit 0
}
do_missing_arg() {
2011-05-29 01:20:12 +08:00
printf >&2 $"%s: option requires an argument -- '%s'\n" sotruss "$1"
printf >&2 $"Try \`%s --help' or \`%s --usage' for more information.\n" sotruss sotruss
exit 1
}
do_ambiguous() {
2011-05-29 01:20:12 +08:00
printf >&2 $"%s: option is ambiguous; possibilities:"
while test $# -gt 0; do
printf >&2 " '%s'" $1
shift
done
printf >&2 "\n"
printf >&2 $"Try \`%s --help' or \`%s --usage' for more information.\n" sotruss sotruss
exit 1
}
while test $# -gt 0; do
case "$1" in
--v | --ve | --ver | --vers | --versi | --versio | --version)
echo "sotruss @PKGVERSION@@VERSION@"
2011-05-29 01:20:12 +08:00
printf $"Copyright (C) %s Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Update copyright dates not handled by scripts/update-copyrights. I've updated copyright dates in glibc for 2015. This is the patch for the changes not generated by scripts/update-copyrights and subsequent build / regeneration of generated files. Apart from the files updated last time (of which sotruss.ksh had moved to sotruss.sh during the year) this also updates nptl/version.c (missed from 2006 until October) and sysdeps/unix/sysv/linux/lddlibc4.c (missed since 2009). * NEWS: Update copyright dates. * catgets/gencat.c (print_version): Likewise. * csu/version.c (banner): Likewise. * debug/catchsegv.sh: Likewise. * debug/pcprofiledump.c (print_version): Likewise. * debug/xtrace.sh (do_version): Likewise. * elf/ldconfig.c (print_version): Likewise. * elf/ldd.bash.in: Likewise. * elf/pldd.c (print_version): Likewise. * elf/sotruss.sh: Likewise. * elf/sprof.c (print_version): Likewise. * iconv/iconv_prog.c (print_version): Likewise. * iconv/iconvconfig.c (print_version): Likewise. * locale/programs/locale.c (print_version): Likewise. * locale/programs/localedef.c (print_version): Likewise. * login/programs/pt_chown.c (print_version): Likewise. * malloc/memusage.sh (do_version): Likewise. * malloc/memusagestat.c (print_version): Likewise. * malloc/mtrace.pl: Likewise. * manual/libc.texinfo: Likewise. * nptl/version.c (banner): Likewise. * nscd/nscd.c (print_version): Likewise. * nss/getent.c (print_version): Likewise. * nss/makedb.c (print_version): Likewise. * posix/getconf.c (main): Likewise. * scripts/test-installation.pl: Likewise. * sysdeps/unix/sysv/linux/lddlibc4.c (main): Likewise.
2015-01-03 00:53:06 +08:00
" "2015"
2011-05-29 01:20:12 +08:00
printf $"Written by %s.\n" "Ulrich Drepper"
exit 0
;;
2011-09-10 00:31:43 +08:00
-\? | --h | --he | --hel | --help)
2011-05-29 01:20:12 +08:00
do_help
;;
--u | --us | --usa | --usag | --usage)
printf $"Usage: %s [-ef] [-F FROMLIST] [-o FILENAME] [-T TOLIST] [--exit]
2011-09-10 00:31:43 +08:00
[--follow] [--from FROMLIST] [--output FILENAME] [--to TOLIST]
[--help] [--usage] [--version] [--]
EXECUTABLE [EXECUTABLE-OPTION...]\n" sotruss
2011-05-29 01:20:12 +08:00
exit 0
;;
-F | --fr | --fro | --from)
if test $# -eq 1; then
do_missing_arg "$1"
fi
shift
2012-11-27 03:58:27 +08:00
SOTRUSS_FROMLIST="$1"
2011-05-29 01:20:12 +08:00
;;
-T | --t | --to)
if test $# -eq 1; then
do_missing_arg "$1"
fi
shift
2012-11-27 03:58:27 +08:00
SOTRUSS_TOLIST="$1"
2011-05-29 01:20:12 +08:00
;;
-o | --o | --ou | --out | --outp | --outpu | --output)
if test $# -eq 1; then
do_missing_arg "$1"
fi
shift
SOTRUSS_OUTNAME="$1"
;;
-f | --fo | --fol | --foll | --follo | --follow)
unset SOTRUSS_WHICH
;;
-l | --l | --li | --lib)
if test $# -eq 1; then
do_missing_arg "$1"
fi
shift
lib="$1"
;;
-e | --e | --ex | --exi | --exit)
SOTRUSS_EXIT=1
;;
--f)
do_ambiguous '--from' '--follow'
;;
--)
shift
break
;;
-*)
printf >&2 $"%s: unrecognized option '%c%s'\n" sotruss '-' ${1#-}
printf >&2 $"Try \`%s --help' or \`%s --usage' for more information.\n" sotruss sotruss
exit 1
;;
*)
break
;;
esac
shift
done
export SOTRUSS_FROMLIST
export SOTRUSS_TOLIST
export SOTRUSS_OUTNAME
export SOTRUSS_WHICH
export SOTRUSS_EXIT
export LD_AUDIT="$lib"
exec "$@"