# HG changeset patch
# User mabshoff@sage.math.washington.edu
# Date 1221477679 25200
# Node ID 3a0fd1499b84f23c73c6c26ad70e28498820e837
# Parent  bcba8baea71bbf9b384e946ea6659d85ec1ba254
Make valgrind options customizable, change some defaults (#925)

diff -r bcba8baea71b -r 3a0fd1499b84 sage-cachegrind
--- a/sage-cachegrind	Sun Sep 14 18:31:33 2008 -0700
+++ b/sage-cachegrind	Mon Sep 15 04:21:19 2008 -0700
@@ -7,7 +7,19 @@
 if [ ! -d "$HOME/.sage/valgrind" ]; then
     mkdir "$HOME/.sage/valgrind"
 fi
+
 LOG="$HOME"/.sage/valgrind/sage-cachegrind.%p
 echo "Log file is $LOG"
-valgrind --tool=cachegrind --trace-children=yes \
-         --log-file="$LOG"  python -i
+
+CACHEGRIND_FLAGS="--log-file=$LOG "; export CACHEGRIND_FLAGS
+if [ "$SAGE_CACHEGRIND_FLAGS" ]; then
+    echo "Overwriting cachegrind flags with:"
+    echo $SAGE_CACHEGRIND_FLAGS
+    CACHEGRIND_FLAGS=$SAGE_CACHEGRIND_FLAGS; export CACHEGRIND_FLAGS
+else
+    echo "Using default flags:"
+    echo $CACHEGRIND_FLAGS
+fi
+
+valgrind --tool=cachegrind $CACHEGRIND_FLAGS python -i
+
diff -r bcba8baea71b -r 3a0fd1499b84 sage-callgrind
--- a/sage-callgrind	Sun Sep 14 18:31:33 2008 -0700
+++ b/sage-callgrind	Mon Sep 15 04:21:19 2008 -0700
@@ -7,7 +7,19 @@
 if [ ! -d "$HOME/.sage/valgrind" ]; then
     mkdir "$HOME/.sage/valgrind"
 fi
+
 LOG="$HOME"/.sage/valgrind/sage-callgrind.%p
 echo "Log file is $LOG"
-valgrind --tool=callgrind --trace-children=yes \
-         --log-file="$LOG"  python -i
+
+CALLGRIND_FLAGS="--log-file=$LOG "; export CALLRGIND_FLAGS
+if [ "$SAGE_CALLGRIND_FLAGS" ]; then
+    echo "Overwriting callgrind flags with:"
+    echo $SAGE_CALLGRIND_FLAGS
+    CALLGRIND_FLAGS=$SAGE_CALLGRIND_FLAGS; export CALLGRIND_FLAGS
+ else
+    echo "Using default flags:"
+    echo $CALLGRIND_FLAGS
+fi
+
+valgrind --tool=callgrind $CALLGRIND_FLAGS python -i
+
diff -r bcba8baea71b -r 3a0fd1499b84 sage-doctest
--- a/sage-doctest	Sun Sep 14 18:31:33 2008 -0700
+++ b/sage-doctest	Mon Sep 15 04:21:19 2008 -0700
@@ -34,11 +34,41 @@
 
 ######################################################
 
-
 SAGE_ROOT=os.environ["SAGE_ROOT"]
 LD = os.environ["LD_LIBRARY_PATH"]
 os.environ["LD_LIBRARY_PATH"] = SAGE_ROOT + "/local/lib:" + LD
 os.environ["PYTHONPATH"]=SAGE_ROOT + "/local/lib/python/site-packages"
+
+######################################################
+
+# below we are attempting to get some custom flags for the valgrind modes
+try:
+    SAGE_MEMCHECK_FLAGS=os.environ['SAGE_MEMCHECK_FLAGS']
+    print SAGE_MEMCHECK_FLAGS
+except:
+    SAGE_MEMCHECK_FLAGS=" --leak-resolution=high --log-file=$HOME/.sage/valgrind/sage-memcheck.%p --leak-check=full --num-callers=25 --suppressions=$SAGE_LOCAL/lib/valgrind/sage.supp "
+
+try:
+    SAGE_MASSIF_FLAGS=os.environ['SAGE_MASSIF_FLAGS']
+except:
+    SAGE_MASSIF_FLAGS=" --depth=6 --log-file=$HOME/.sage/valgrind/sage-massif.%p "
+
+try:
+    SAGE_CALLGRIND_FLAGS=os.environ['SAGE_CALLGRIND_FLAGS']
+except:
+    SAGE_CALLGRIND_FLAGS = " --log-file=$HOME/.sage/valgrind/sage-callgrind.%p "
+
+try:
+    SAGE_CACHEGRIND_FLAGS=os.environ['SAGE_CACHEGRIND_FLAGS']
+except:
+    SAGE_CACHEGRIND_FLAGS=" --log-file=$HOME/.sage/valgrind/sage-cachegrind.%p "
+
+try:
+    SAGE_OMEGA_FLAGS=os.environ['SAGE_OMEGA_FLAGS']
+except:
+   SAGE_OMEGA_FLAGS = " --log-file=$HOME/.sage/valgrind/sage-omega.%p "
+
+######################################################
 
 PYTHON = SAGE_ROOT + "/local/bin/python"
 
@@ -349,13 +379,13 @@
             cmd = "gdb --args " + cmd
 
         if memcheck:
-            cmd= "valgrind --tool=memcheck --trace-children=yes --leak-resolution=high --log-file=$HOME/.sage/valgrind/sage-memcheck.%p --show-reachable=yes --leak-check=full " + cmd
+            cmd = "valgrind --tool=memcheck " + SAGE_MEMCHECK_FLAGS + cmd
         if massif:
-            cmd = "valgrind --tool=massif --trace-children=yes --depth=6 --log-file=$HOME/.sage/valgrind/sage-massif.%p " + cmd
+            cmd = "valgrind --tool=massif " + SAGE_MASSIF_FLAGS + cmd
         if cachegrind:
-            cmd = "valgrind --tool=cachegrind --trace-children=yes --log-file=$HOME/.sage/valgrind/sage-cachegrind.%p " + cmd
+            cmd = "valgrind --tool=cachegrind " +  SAGE_CACHEGRIND_FLAGS + cmd
         if omega:
-            cmd = "valgrind --tool=exp-omega --trace-children=yes --log-file=$HOME/.sage/valgrind/sage-omega.%p " + cmd
+            cmd = "valgrind --tool=exp-omega " + SAGE_OMEGA_FLAGS + cmd
 
         VALGRIND = '%s/valgrind/'%DOT_SAGE
         if not os.path.exists(VALGRIND):
diff -r bcba8baea71b -r 3a0fd1499b84 sage-massif
--- a/sage-massif	Sun Sep 14 18:31:33 2008 -0700
+++ b/sage-massif	Mon Sep 15 04:21:19 2008 -0700
@@ -7,7 +7,19 @@
 if [ ! -d "$HOME/.sage/valgrind" ]; then
     mkdir "$HOME/.sage/valgrind"
 fi
+
 LOG="$HOME"/.sage/valgrind/sage-massif.%p
 echo "Log file is $LOG"
-valgrind --tool=massif --trace-children=yes --depth=6 \
-         --log-file="$LOG"  python -i
+
+MASSIF_FLAGS="--log-file=$LOG --depth=6 "; export MASSIF_FLAGS
+if [ "$SAGE_MASSIF_FLAGS" ]; then
+    echo "Overwriting massif flags with:"
+    echo $SAGE_MASSIF_FLAGS
+    MASSIF_FLAGS=$SAGE_MASSIF_FLAGS; export MASSIF_FLAGS
+else
+    echo "Using default flags:"
+    echo $MASSIF_FLAGS
+fi
+
+valgrind --tool=massif $MASSIF_FLAGS python -i
+
diff -r bcba8baea71b -r 3a0fd1499b84 sage-omega
--- a/sage-omega	Sun Sep 14 18:31:33 2008 -0700
+++ b/sage-omega	Mon Sep 15 04:21:19 2008 -0700
@@ -7,7 +7,19 @@
 if [ ! -d "$HOME/.sage/valgrind" ]; then
     mkdir "$HOME/.sage/valgrind"
 fi
+
 LOG="$HOME"/.sage/valgrind/sage-omega.%p
 echo "Log file is $LOG"
-valgrind --tool=exp-omega --trace-children=yes \
-         --log-file="$LOG"  python -i
+
+OMEGA_FLAGS="--log-file=$LOG "; export OMEGA_FLAGS
+if [ "$SAGE_OMEGA_FLAGS" ]; then
+    echo "Overwriting omega flags with:"
+    echo $SAGE_OMEGA_FLAGS
+    OMEGA_FLAGS=$SAGE_OMEGA_FLAGS; export OMEGA_FLAGS
+else
+    echo "Using default flags:"
+    echo $OMEGA_FLAGS
+fi
+
+valgrind --tool=exp-omega $OMEGA_FLAGS python -i
+
diff -r bcba8baea71b -r 3a0fd1499b84 sage-valgrind
--- a/sage-valgrind	Sun Sep 14 18:31:33 2008 -0700
+++ b/sage-valgrind	Mon Sep 15 04:21:19 2008 -0700
@@ -4,10 +4,22 @@
 PYTHONSTARTUP=$SAGE_ROOT/local/bin/sage-gdb-pythonstartup
 export PYTHONSTARTUP
 echo $PYTHONSTARTUP
+
 if [ ! -d "$HOME/.sage/valgrind" ]; then
     mkdir "$HOME/.sage/valgrind"
 fi
+
 LOG="$HOME"/.sage/valgrind/sage-memcheck.%p
 echo "Log file is $LOG"
-valgrind --tool=memcheck --leak-resolution=high --trace-children=yes \
-         --log-file="$LOG" --show-reachable=yes --leak-check=full  python -i
+
+MEMCHECK_FLAGS="--leak-resolution=high --log-file=$LOG --leak-check=full --num-callers=25 --suppressions=$SAGE_LOCAL/lib/valgrind/sage.supp "; export MEMCHECK_FLAGS
+if [ "$SAGE_MEMCHECK_FLAGS" ]; then
+    echo "Overwriting memcheck flags with:"
+    echo $SAGE_MEMCHECK_FLAGS
+    MEMCHECK_FLAGS=$SAGE_MEMCHECK_FLAGS; export MEMCHECK_FLAGS
+else
+    echo "Using default flags:"
+    echo $MEMCHECK_FLAGS
+fi
+
+valgrind --tool=memcheck $MEMCHECK_FLAGS python -i
