Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Side by Side Diff: tools/valgrind/valgrind.sh

Issue 839143002: Roll Chrome into Mojo. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Rebase Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/valgrind/tsan_analyze.py ('k') | tools/valgrind/valgrind_test.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 2
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # This is a small script for manually launching valgrind, along with passing 7 # This is a small script for manually launching valgrind, along with passing
8 # it the suppression file, and some helpful arguments (automatically attaching 8 # it the suppression file, and some helpful arguments (automatically attaching
9 # the debugger on failures, etc). Run it from your repo root, something like: 9 # the debugger on failures, etc). Run it from your repo root, something like:
10 # $ sh ./tools/valgrind/valgrind.sh ./out/Debug/chrome 10 # $ sh ./tools/valgrind/valgrind.sh ./out/Debug/chrome
(...skipping 11 matching lines...) Expand all
22 DEFAULT_TOOL_FLAGS=("--db-command=gdb -nw %f %p" "--db-attach=yes" \ 22 DEFAULT_TOOL_FLAGS=("--db-command=gdb -nw %f %p" "--db-attach=yes" \
23 # Keep the registers in gdb in sync with the code. 23 # Keep the registers in gdb in sync with the code.
24 "--vex-iropt-register-updates=allregs-at-mem-access" \ 24 "--vex-iropt-register-updates=allregs-at-mem-access" \
25 # Overwrite newly allocated or freed objects 25 # Overwrite newly allocated or freed objects
26 # with 0x41 to catch inproper use. 26 # with 0x41 to catch inproper use.
27 "--malloc-fill=41" "--free-fill=41" \ 27 "--malloc-fill=41" "--free-fill=41" \
28 # Increase the size of stacks being tracked. 28 # Increase the size of stacks being tracked.
29 "--num-callers=30") 29 "--num-callers=30")
30 } 30 }
31 31
32 setup_tsan() {
33 RUN_COMMAND="valgrind-tsan.sh"
34 IGNORE_FILE="$THISDIR/tsan/ignores.txt"
35 DEFAULT_TOOL_FLAGS=("--announce-threads" "--pure-happens-before=yes" \
36 "--ignore=$IGNORE_FILE")
37 }
38
39 setup_unknown() { 32 setup_unknown() {
40 echo "Unknown tool \"$TOOL_NAME\" specified, the result is not guaranteed" 33 echo "Unknown tool \"$TOOL_NAME\" specified, the result is not guaranteed"
41 DEFAULT_TOOL_FLAGS=() 34 DEFAULT_TOOL_FLAGS=()
42 } 35 }
43 36
44 set -e 37 set -e
45 38
46 if [ $# -eq 0 ]; then 39 if [ $# -eq 0 ]; then
47 echo "usage: <command to run> <arguments ...>" 40 echo "usage: <command to run> <arguments ...>"
48 exit 1 41 exit 1
49 fi 42 fi
50 43
51 TOOL_NAME="memcheck" 44 TOOL_NAME="memcheck"
52 declare -a DEFAULT_TOOL_FLAGS[0] 45 declare -a DEFAULT_TOOL_FLAGS[0]
53 46
54 # Select a tool different from memcheck with --tool=TOOL as a first argument 47 # Select a tool different from memcheck with --tool=TOOL as a first argument
55 TMP_STR=`echo $1 | sed 's/^\-\-tool=//'` 48 TMP_STR=`echo $1 | sed 's/^\-\-tool=//'`
56 if [ "$TMP_STR" != "$1" ]; then 49 if [ "$TMP_STR" != "$1" ]; then
57 TOOL_NAME="$TMP_STR" 50 TOOL_NAME="$TMP_STR"
58 shift 51 shift
59 fi 52 fi
60 53
61 if echo "$@" | grep "\-\-tool" ; then 54 if echo "$@" | grep "\-\-tool" ; then
62 echo "--tool=TOOL must be the first argument" >&2 55 echo "--tool=TOOL must be the first argument" >&2
63 exit 1 56 exit 1
64 fi 57 fi
65 58
66 case $TOOL_NAME in 59 case $TOOL_NAME in
67 memcheck*) setup_memcheck "$1";; 60 memcheck*) setup_memcheck "$1";;
68 tsan*) setup_tsan;;
69 *) setup_unknown;; 61 *) setup_unknown;;
70 esac 62 esac
71 63
72 64
73 SUPPRESSIONS="$THISDIR/$TOOL_NAME/suppressions.txt" 65 SUPPRESSIONS="$THISDIR/$TOOL_NAME/suppressions.txt"
74 66
75 CHROME_VALGRIND=`sh $THISDIR/locate_valgrind.sh` 67 CHROME_VALGRIND=`sh $THISDIR/locate_valgrind.sh`
76 if [ "$CHROME_VALGRIND" = "" ] 68 if [ "$CHROME_VALGRIND" = "" ]
77 then 69 then
78 # locate_valgrind.sh failed 70 # locate_valgrind.sh failed
(...skipping 26 matching lines...) Expand all
105 NSS_DISABLE_UNLOAD=1 \ 97 NSS_DISABLE_UNLOAD=1 \
106 NSS_DISABLE_ARENA_FREE_LIST=1 \ 98 NSS_DISABLE_ARENA_FREE_LIST=1 \
107 G_DEBUG=fatal_warnings \ 99 G_DEBUG=fatal_warnings \
108 GTEST_DEATH_TEST_USE_FORK=1 \ 100 GTEST_DEATH_TEST_USE_FORK=1 \
109 $RUN_COMMAND \ 101 $RUN_COMMAND \
110 --trace-children=yes \ 102 --trace-children=yes \
111 --leak-check=yes \ 103 --leak-check=yes \
112 --suppressions="$SUPPRESSIONS" \ 104 --suppressions="$SUPPRESSIONS" \
113 "${DEFAULT_TOOL_FLAGS[@]}" \ 105 "${DEFAULT_TOOL_FLAGS[@]}" \
114 "$@" 106 "$@"
OLDNEW
« no previous file with comments | « tools/valgrind/tsan_analyze.py ('k') | tools/valgrind/valgrind_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698