#!/usr/bin/env bash if [ -z $SAGE_EXTCODE ]; then SAGE_EXTCODE=`${0/-valgrind} -c "from sage.env import SAGE_EXTCODE; print(SAGE_EXTCODE)"` fi SUPP="" # Our python spkgs and also Debian install this file as python3.supp PYTHON_SUPP_FILENAME="python3.supp" for dir in "$SAGE_LOCAL/lib/valgrind" "/usr/local/lib/valgrind" "/usr/lib64/valgrind" "/usr/lib/valgrind" ; do if [ -f "$dir"/"$PYTHON_SUPP_FILENAME" ]; then SUPP=" --suppressions=$dir/$PYTHON_SUPP_FILENAME" break fi done if [ -z "$SUPP" ] ; then echo "Python suppressions not found (not installed?), skipping" fi SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/pyalloc.supp" SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/sage.supp" SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/sage-additional.supp" SUPP+=" --suppressions=$SAGE_EXTCODE/valgrind/valgrind-python.supp" MEMCHECK_FLAGS="--leak-resolution=high --leak-check=full --num-callers=25 $SUPP" if [ "$SAGE_MEMCHECK_FLAGS" ]; then echo "Overwriting memcheck flags with: $SAGE_MEMCHECK_FLAGS" MEMCHECK_FLAGS=$SAGE_MEMCHECK_FLAGS else echo "Using default flags: $MEMCHECK_FLAGS" fi valgrind --tool=memcheck $MEMCHECK_FLAGS sage-ipython "$@" -i