123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/bin/bash
- export THISDIR=`dirname $0`
- setup_memcheck() {
- RUN_COMMAND="valgrind"
-
- DEFAULT_TOOL_FLAGS=("--db-command=gdb -nw %f %p" "--db-attach=yes" \
-
- "--vex-iropt-register-updates=allregs-at-mem-access" \
-
-
- "--malloc-fill=41" "--free-fill=41" \
-
- "--num-callers=30")
- }
- setup_unknown() {
- echo "Unknown tool \"$TOOL_NAME\" specified, the result is not guaranteed"
- DEFAULT_TOOL_FLAGS=()
- }
- set -e
- if [ $# -eq 0 ]; then
- echo "usage: <command to run> <arguments ...>"
- exit 1
- fi
- TOOL_NAME="memcheck"
- declare -a DEFAULT_TOOL_FLAGS[0]
- TMP_STR=`echo $1 | sed 's/^\-\-tool=//'`
- if [ "$TMP_STR" != "$1" ]; then
- TOOL_NAME="$TMP_STR"
- shift
- fi
- if echo "$@" | grep "\-\-tool" ; then
- echo "--tool=TOOL must be the first argument" >&2
- exit 1
- fi
- case $TOOL_NAME in
- memcheck*) setup_memcheck "$1";;
- *) setup_unknown;;
- esac
- SUPPRESSIONS="$THISDIR/$TOOL_NAME/suppressions.txt"
- CHROME_VALGRIND=`sh $THISDIR/locate_valgrind.sh`
- if [ "$CHROME_VALGRIND" = "" ]
- then
-
- exit 1
- fi
- echo "Using valgrind binaries from ${CHROME_VALGRIND}"
- set -x
- PATH="${CHROME_VALGRIND}/bin:$PATH"
- export VALGRIND_LIB="$CHROME_VALGRIND/lib/valgrind"
- export VALGRIND_LIB_INNER="$CHROME_VALGRIND/lib/valgrind"
- G_SLICE=always-malloc \
- NSS_DISABLE_UNLOAD=1 \
- NSS_DISABLE_ARENA_FREE_LIST=1 \
- G_DEBUG=fatal_warnings \
- GTEST_DEATH_TEST_USE_FORK=1 \
- $RUN_COMMAND \
- --trace-children=yes \
- --leak-check=yes \
- --suppressions="$SUPPRESSIONS" \
- "${DEFAULT_TOOL_FLAGS[@]}" \
- "$@"
|