#!/bin/sh

#### Main CTL4j debugging script ####

#PROFILE=-Xrunjmp:nogui

export CLASSPATH=$CLASSPATH:`find . -name '*.jar' -print0|sed 's/jar/jar:/g'`
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/lib

ARGS=$@
if [ -z "$ARGS" ]
then
# Edit this for a standalone executable with a different main()
	ARGS="Example.Client3"			# Minimal test client
	#ARGS="Example.Client8"			# Minimal test client
	#ARGS="Example.Client4"			# C++ compatibility client
	#ARGS="Example.Client16"		# Native shared library client
	#ARGS="Example.Client17"		# Inheritance test client
	#ARGS="Example.Client18"		# CTL_List() test client
	#ARGS="Example.Client19"		# Matlab test client

	#ARGS="Example.Client2"
	#ARGS="Test.CTLFunction"
fi

## Clean up while debugging
rm -f java-crash.log /tmp/ctl4j* /tmp/*.log hs_err*.log 2>/dev/null
killall -KILL java 2>/dev/null

## For OS X
#export DYLD_LIBRARY_PATH=$PWD/cpp/libunix:$HOME/test/ctl/lib/osx-gcc:$HOME/test/de.tubs.wire.libstdjni/build/linux/lib

## JDB support
port=$$
if [ $port -le 1024 ]
then
	    port=${port}0
fi
#OPTS="$OPTS -Xdebug"
#OPTS="$OPTS -Xrunjdwp:transport=dt_socket,address=$port,server=y,suspend=n"

## Use GDB (scripted)
#TMP=`mktemp /tmp/tmp.XXXXXX`
#echo "run -cp build:.:$CLASSPATH -Dfile.encoding='ISO-8859-1' $PROFILE $ARGS" >$TMP
#gdb -x $TMP java
#rm -f $TMP
#exit 0

## Use GDB (manually)
#echo "-cp build:.:$CLASSPATH -Dfile.encoding='ISO-8859-1' $PROFILE $ARGS"
#gdb java
#exit 0

## VM commandline options
#OPTS="$OPTS -verbose"
#OPTS="$OPTS -ea"
#OPTS="$OPTS -verbose:jni"
#OPTS="$OPTS -Xcheck:jni"
#OPTS="$OPTS -XX:+PrintCompilation"
#OPTS="$OPTS -XX:+PrintClassHistogram"
#OPTS="$OPTS -XX:ErrorFile=java-crash.log" # Java 6 option
#OPTS="$OPTS -XX:StackShadowPages=2000 -Xss10M"
#OPTS="$OPTS -Xprof -Xrs"
#OPTS="$OPTS -Xmx200m"

## VM command
VMCMD=java
#VMCMD="rlwrap jdb -sourcepath src"

## Trace the VM
#TRACECMD="strace -f -o /tmp/trace.log"
#TRACECMD="$HOME/ltrace-0.4/ltrace"
#TRACECMD="valgrind --trace-children=yes -v"

if [ -z "$VMCMD" ]
then
	echo "No Java VM selected."
	exit 1
fi

$TRACECMD $VMCMD $OPTS -classpath build:.:$CLASSPATH -Dfile.encoding='ISO-8859-1' $PROFILE $ARGS
