X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=runlttv;h=73b7d8ee53741f25eda30e7a131a4fda7d6151e8;hb=92a37329e1513cfb346c6af2bb92d6742e5dcbad;hp=983b50cb177227217d740091f643fae42e5c6284;hpb=58f53b56557577b64911d0e7a2bba3fbb521d71d;p=lttv.git diff --git a/runlttv b/runlttv index 983b50cb..73b7d8ee 100755 --- a/runlttv +++ b/runlttv @@ -5,33 +5,21 @@ # This script runs LTTV in place in the compile directory without need for # installing it with make install. # -# Run with the TF environment variable set to a trace directory to open it. -# ex: TF=/my/trace ./runlttv -# -# The .runlttvrc file can be used to control its behavior. -# - by setting the TRACEFILE variable, a trace can be automatically loaded -# ex: TRACEFILE="-t /tmp/traces/dijkstra-20071212" -# - by setting the ARGS variable, a different set of plugins can be loaded -# for an example see the ARGS= line below -# - the LTTV_ARGS environment variable may be used to add additional arguments to lttv -# # In order for icons to display correctly, it might be necessary to create a # symlink: # $ ln -s ./lttv/modules/gui/lttvwindow/pixmaps # while in the same directory as this script. -RCFILE=".runlttvrc" +RCFILE="$(dirname $0)/.runlttvrc" -ARGS=\ -"-L lttv/modules/gui/lttvwindow/lttvwindow/.libs -m lttvwindow "\ -"-L lttv/modules/gui/controlflow/.libs -m guicontrolflow "\ -"-L lttv/modules/gui/detailedevents/.libs -m guievents "\ -"-L lttv/modules/gui/tracecontrol/.libs -m guitracecontrol "\ -"-L lttv/modules/gui/statistics/.libs -m guistatistics "\ -"-L lttv/modules/gui/resourceview/.libs -m resourceview "\ -"-L lttv/modules/gui/filter/.libs -m guifilter "\ -"-L lttv/modules/gui/interrupts/.libs -m interrupts "\ -"-L lttv/modules/gui/histogram/.libs -m guihistogram" +function usage { + echo "Usage: $0 OPTIONS TRACES..." >/dev/stderr + echo "" >/dev/stderr + echo "Options:" >/dev/stderr + echo -e "\t-m mode (modes: text)" >/dev/stderr + echo -e "\t-H helper (helpers: gdb, valgrind, massif, strace)" >/dev/stderr + echo "" >/dev/stderr +} if [ -e "lttv/lttv/.libs/lttv.real" ]; then LTTV_EXEC="lttv/lttv/.libs/lttv.real" @@ -42,26 +30,55 @@ else exit 1 fi -for a in $@; do - eval $(echo $a)"=1" -done - -if [ -n "$TF" ]; then - TRACEFILE="-t $TF" -fi - if [ -e "$RCFILE" ]; then source "$RCFILE"; fi -ARGS="$ARGS $LTTV_ARGS" +while getopts ":hH:m:" options; do + case $options in + H) HELPER=$OPTARG;; + m) MODE=$OPTARG;; + h) usage; + exit 0;; + \?) usage + exit 1;; + *) usage + exit 1;; + esac +done +shift $(($OPTIND - 1)) + +for trace in $@; +do + TRACEFILE="$TRACEFILE -t $trace " +done + +if [ "$MODE" = "text" ]; then + ARGS="-L lttv/modules/text/.libs -m textDump" +else + ARGS="-L lttv/modules/gui/lttvwindow/lttvwindow/.libs -m lttvwindow "\ +"-L lttv/modules/gui/controlflow/.libs -m guicontrolflow "\ +"-L lttv/modules/gui/detailedevents/.libs -m guievents "\ +"-L lttv/modules/gui/tracecontrol/.libs -m guitracecontrol "\ +"-L lttv/modules/gui/statistics/.libs -m guistatistics "\ +"-L lttv/modules/gui/resourceview/.libs -m resourceview "\ +"-L lttv/modules/gui/filter/.libs -m guifilter "\ +"-L lttv/modules/gui/interrupts/.libs -m interrupts "\ +"-L lttv/modules/gui/histogram/.libs -m guihistogram" +fi -if [ -n "$dbg" ]; then - LD_LIBRARY_PATH=ltt/.libs gdb --args $LTTV_EXEC $ARGS $TRACEFILE -elif [ -n "$valgrind" ]; then - LD_LIBRARY_PATH=ltt/.libs valgrind --track-origins=yes --show-reachable=yes --leak-check=full --error-limit=no $LTTV_EXEC $ARGS $TRACEFILE -elif [ -n "$strace" ]; then - LD_LIBRARY_PATH=ltt/.libs strace $LTTV_EXEC $ARGS $TRACEFILE +if [ "$HELPER" = "gdb" ]; then + shift + LD_LIBRARY_PATH=ltt/.libs gdb --args $LTTV_EXEC $ARGS $TRACEFILE $@ +elif [ "$HELPER" = "valgrind" ]; then + shift + LD_LIBRARY_PATH=ltt/.libs valgrind --track-origins=yes --show-reachable=yes --leak-check=full --error-limit=no $LTTV_EXEC $ARGS $TRACEFILE $@ +elif [ "$HELPER" = "massif" ]; then + shift + LD_LIBRARY_PATH=ltt/.libs valgrind --tool=massif $LTTV_EXEC $ARGS $TRACEFILE $@ +elif [ "$HELPER" = "strace" ]; then + shift + LD_LIBRARY_PATH=ltt/.libs strace $LTTV_EXEC $ARGS $TRACEFILE $@ else - LD_LIBRARY_PATH=ltt/.libs $LTTV_EXEC $ARGS $TRACEFILE + LD_LIBRARY_PATH=ltt/.libs $LTTV_EXEC $ARGS $TRACEFILE $@ fi