diff options
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/valgrind/valgrind.sh | 6 | ||||
-rwxr-xr-x | tools/valgrind/valgrind_test.py | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/tools/valgrind/valgrind.sh b/tools/valgrind/valgrind.sh index 2aa06fc..08bc480 100755 --- a/tools/valgrind/valgrind.sh +++ b/tools/valgrind/valgrind.sh @@ -7,6 +7,10 @@ # it the suppression file, and some helpful arguments (automatically attaching # the debugger on failures, etc). Run it from your repo root, something like: # $ sh ./tools/valgrind/valgrind.sh ./chrome/Hammer/chrome +# +# This is mostly intended for running the chrome browser interactively. +# To run unit tests, you probably want to run chrome_tests.sh instead. +# That's the script used by the valgrind buildbot. set -e @@ -32,12 +36,14 @@ SUPPRESSIONS="$(cd `dirname "$0"` && pwd)/suppressions.txt" set -v # Pass GTK glib allocations through to system malloc so valgrind sees them. +# Prevent NSS from recycling memory arenas so valgrind can track origins. # Ask GTK to abort on any critical or warning assertions. # Overwrite newly allocated or freed objects with 0x41 to catch inproper use. # smc-check=all is required for valgrind to see v8's dynamic code generation. # trace-children to follow into the renderer processes. # Prompt to attach gdb when there was an error detected. G_SLICE=always-malloc \ +NSS_DISABLE_ARENA_FREE_LIST=1 \ G_DEBUG=fatal_warnings \ "$VALGRIND" \ --trace-children=yes \ diff --git a/tools/valgrind/valgrind_test.py b/tools/valgrind/valgrind_test.py index 6fc7da5..4306d29 100755 --- a/tools/valgrind/valgrind_test.py +++ b/tools/valgrind/valgrind_test.py @@ -84,6 +84,9 @@ class Valgrind(object): logging.info("starting execution...") proc = self.ValgrindCommand() + os.putenv("G_SLICE", "always-malloc") + os.putenv("NSS_DISABLE_ARENA_FREE_LIST", "1") + common.RunSubprocess(proc, self._timeout) # Always return true, even if running the subprocess failed. We depend on |