diff options
author | deanm@chromium.org <deanm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-12 17:28:52 +0000 |
---|---|---|
committer | deanm@chromium.org <deanm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-12 17:28:52 +0000 |
commit | 51721db54d4b7401ff4d93ca0af25ced9ba82f73 (patch) | |
tree | 4f17fb3afa5e53100e6c429f95eac9b883362d86 /tools/valgrind/valgrind.sh | |
parent | 6dcaec848a278b360a267a4e4da5219d23c0bf72 (diff) | |
download | chromium_src-51721db54d4b7401ff4d93ca0af25ced9ba82f73.zip chromium_src-51721db54d4b7401ff4d93ca0af25ced9ba82f73.tar.gz chromium_src-51721db54d4b7401ff4d93ca0af25ced9ba82f73.tar.bz2 |
Add a script to more easily run valgrind with our parameters and suppressions.
Add some more suppressions to the suppressions file. I don't have any errors when running Chromium on my workstation.
Review URL: http://codereview.chromium.org/43129
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11546 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/valgrind/valgrind.sh')
-rw-r--r-- | tools/valgrind/valgrind.sh | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tools/valgrind/valgrind.sh b/tools/valgrind/valgrind.sh new file mode 100644 index 0000000..d0cff56 --- /dev/null +++ b/tools/valgrind/valgrind.sh @@ -0,0 +1,47 @@ +#!/bin/sh +# Copyright (c) 2009 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This is a small script for manually launching valgrind, along with passing +# 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 + +set -e + +if [ $# -eq 0 ]; then + echo "usage: <command to run> <arguments ...>" + exit 1 +fi + +# Prefer a 32-bit gdb if it's available. +GDB="/usr/bin/gdb32"; +if [ ! -x $GDB ]; then + GDB="gdb" +fi + +# Prefer a local install of valgrind if it's available. +VALGRIND="/usr/local/bin/valgrind" +if [ ! -x $VALGRIND ]; then + VALGRIND="valgrind" +fi + +SUPPRESSIONS=`pwd`/tools/valgrind/suppressions.txt + +set -v + +# Pass GTK glib allocations through to system malloc so valgrind sees them. +# 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 \ +"$VALGRIND" \ + --trace-children=yes \ + --db-command="$GDB -nw %f %p" \ + --db-attach=yes \ + --suppressions="$SUPPRESSIONS" \ + --malloc-fill=41 --free-fill=41 \ + --smc-check=all \ + "$@" |