-#!/bin/bash
# Copyright (C) 2009 Benjamin Poirier
# This program is free software; you can redistribute it and/or modify
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-DEBUGFSROOT=$(grep ^debugfs /proc/mounts | head -1 | awk '{print $2}')
+DEBUGFSROOT=$(grep ^debugfs /proc/mounts | head -n 1 | awk '{print $2}')
MARKERSROOT=${DEBUGFSROOT}/ltt/markers
usage () {
echo "Options:" > /dev/stderr
printf "\t-l Also activate locking markers (high traffic)\n" > /dev/stderr
printf "\t-n Also activate detailed network markers (large size)\n" > /dev/stderr
+ printf "\t-i Also activate input subsystem events (security implication: records keyboard inputs)\n" > /dev/stderr
echo "" > /dev/stderr
printf "\t-q Quiet mode, suppress output\n" > /dev/stderr
printf "\t-h Print this help\n" > /dev/stderr
echo "" > /dev/stderr
}
-if [ ! "$DEBUGFSROOT" ]; then
+if [ ! "${DEBUGFSROOT}" ]; then
echo "Error: debugfs not mounted" > /dev/stderr
exit 1;
fi
-if [ ! -d "$MARKERSROOT" ]; then
+if [ ! -d "${MARKERSROOT}" ]; then
echo "Error: LTT trace controller not found (did you compile and load LTTng?)" > /dev/stderr
exit 1;
fi
while getopts "lnqh" options; do
- case $options in
+ case ${options} in
l) LOCKING="0";;
n) NETWORK="0";;
q) QUIET="0";;
+ i) INPUT="0";;
h) usage;
exit 0;;
\?) usage;
exit 1;;
esac
done
-shift $(($OPTIND - 1))
+shift $((${OPTIND} - 1))
-if [ ! $LOCKING ]; then
+if [ ! ${LOCKING} ]; then
TESTS="${TESTS} -name lockdep -prune -o -name locking -prune -o"
fi
-if [ ! $NETWORK ]; then
+if [ ! ${NETWORK} ]; then
TESTS="${TESTS} -path '*/net/*_extended' -prune -o"
fi
-while read -r -d $'\0' marker; do
- if [ ! $QUIET ]; then
+if [ ! ${INPUT} ]; then
+ TESTS="${TESTS} -name input -prune -o"
+fi
+
+(eval "find '${MARKERSROOT}' ${TESTS} -name metadata -prune -o -name enable -print") | while read -r marker; do
+ if [ ! ${QUIET} ]; then
echo "Connecting ${marker%/enable}"
fi
- echo 1 > $marker
-done < <(eval "find '$MARKERSROOT' $TESTS -name metadata -prune -o -name enable -print0")
+ echo 1 > ${marker}
+done