-#!/bin/bash
+#!/bin/sh
# usttrace by Pierre-Marc Fournier 2009
# Distributed under the GPLv2.
-function error() {
- echo "$0: error: $1" 2>/dev/stderr
+error() {
+ echo "$0: error: $1" 1>&2
}
-function sighandler() {
+sighandler() {
echo "Caught Ctrl-C"
- if [ -z "$UST_CONSUMERDPID" ]; then
- UST_CONSUMERDPID="$(<$pidfilepath)"
+ if [ -z "${UST_CONSUMERD_PID}" ]; then
+ UST_CONSUMERD_PID=`cat $pidfilepath`
fi
# Tell the daemon to die
- kill -SIGTERM "$UST_CONSUMERDPID"
+ kill -TERM "${UST_CONSUMERD_PID}"
echo "Waiting for ust-consumerd to shutdown..."
- wait "$UST_CONSUMERDPID"
+ wait "${UST_CONSUMERD_PID}"
rm "$pidfilepath"
BASE_TRACE_DIR="${HOME}/.usttraces"
-function usage () {
- echo "usage: $0 OPTIONS COMMAND" 2>/dev/stderr
- echo "" 2>/dev/stderr
- echo "Options:" 2>/dev/stderr
- echo " -l Runtime link with UST library." 2>/dev/stderr
- echo " (Needed only if program was not linked at compile time with libust.)" 2>/dev/stderr
- echo " -L Add path to ust libraries to LD_LIBRARY_PATH." 2>/dev/stderr
- echo " -m Instrument malloc calls." 2>/dev/stderr
- echo " -f Also trace forked processes." 2>/dev/stderr
- echo " -s Use system-wide daemon instead of creating one for this session." 2>/dev/stderr
- echo " -S Specify the subbuffer size." 2>/dev/stderr
- echo " -N Specify the number of subbuffers." 2>/dev/stderr
- echo " -o Output directory of the trace." 2>/dev/stderr
+usage() {
+ echo "usage: $0 OPTIONS COMMAND" 1>&2
+ echo "" 1>&2
+ echo "Options:" 1>&2
+ echo " -l Runtime link with UST library." 1>&2
+ echo " (Needed only if program was not linked at compile time with libust.)" 1>&2
+ echo " -L Add path to ust libraries to LD_LIBRARY_PATH." 1>&2
+ echo " -m Instrument malloc calls." 1>&2
+ echo " -f Also trace forked processes." 1>&2
+ echo " -s Use system-wide daemon instead of creating one for this session." 1>&2
+ echo " -S Specify the subbuffer size." 1>&2
+ echo " -N Specify the number of subbuffers." 1>&2
+ echo " -o Output directory of the trace." 1>&2
}
while getopts ":hlLmfsWS:N:o:" options; do
fi
# Choose ust-consumerd socket path
-UST_CONSUMERDSOCKPATH="/tmp/ust-consumerd-sock-$$"
+UST_CONSUMERD_SOCKPATH="/tmp/ust-consumerd-sock-$$"
if [ "$arg_syswide_daemon" != "1" ];
then
pidfilepath="/tmp/usttrace-$USER-$(date +%Y%m%d%H%M%S%N)-ust-consumerd-pid"
- trap "sighandler $pidfilepath" SIGINT
+ trap "sighandler $pidfilepath" INT
mkfifo -m 0600 "$pidfilepath"
# Start daemon
- $UST_CONSUMERD --pidfile "$pidfilepath" -s "$UST_CONSUMERDSOCKPATH" -o "$OUTDIR" >"$OUTDIR/ust-consumerd.log" 2>&1 &
+ ${UST_CONSUMERD} --pidfile "$pidfilepath" -s "${UST_CONSUMERD_SOCKPATH}" -o "$OUTDIR" >"$OUTDIR/ust-consumerd.log" 2>&1 &
# ust-consumerd sets up its server socket
# ust-consumerd opens the pidfile, blocks because no one has opened it
# we open pidfile
# ust-consumerd writes to pidfile
# ust-consumerd closes pidfile
# we unblock reading pidfile
- UST_CONSUMERDPID="$(<$pidfilepath)"
- export UST_DAEMON_SOCKET="$UST_CONSUMERDSOCKPATH"
+ UST_CONSUMERD_PID=`cat $pidfilepath`
+ export UST_DAEMON_SOCKET="${UST_CONSUMERD_SOCKPATH}"
fi
# Establish the environment for the command
if [ "$arg_syswide_daemon" != "1" ];
then
# Tell the daemon to die
- kill -SIGTERM "$UST_CONSUMERDPID"
+ kill -TERM "${UST_CONSUMERD_PID}"
echo "Waiting for ust-consumerd to shutdown..."
- wait "$UST_CONSUMERDPID"
+ wait "${UST_CONSUMERD_PID}"
rm "$pidfilepath"
fi