summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authortimurrrr@chromium.org <timurrrr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-08 12:58:30 +0000
committertimurrrr@chromium.org <timurrrr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-08 12:58:30 +0000
commitb5e0537a77275e408ff7b6f66166abe675e57cf9 (patch)
tree36ab13267691cf8fc2a6a1b08051e5d23841c21c /tools
parent7d5c3cf1d401855bbe23d343bf7c078e923ea0e7 (diff)
downloadchromium_src-b5e0537a77275e408ff7b6f66166abe675e57cf9.zip
chromium_src-b5e0537a77275e408ff7b6f66166abe675e57cf9.tar.gz
chromium_src-b5e0537a77275e408ff7b6f66166abe675e57cf9.tar.bz2
Suppress uninitialized read reports below GetStandardColorSpaceProfile
Also: * improve readability and completeness of the drmemory_analyze script * add BROWSER_WRAPPER support to the Dr. Memory runner (for ui_tests, browser_tests, etc) TBR=bruening BUG=http://code.google.com/p/drmemory/issues/detail?id=546 Review URL: http://codereview.chromium.org/7491093 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95803 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools')
-rw-r--r--tools/valgrind/drmemory/suppressions.txt8
-rwxr-xr-xtools/valgrind/drmemory_analyze.py9
-rwxr-xr-xtools/valgrind/valgrind_test.py11
3 files changed, 24 insertions, 4 deletions
diff --git a/tools/valgrind/drmemory/suppressions.txt b/tools/valgrind/drmemory/suppressions.txt
index cd34555..b50066c 100644
--- a/tools/valgrind/drmemory/suppressions.txt
+++ b/tools/valgrind/drmemory/suppressions.txt
@@ -465,6 +465,14 @@ UNINITIALIZED READ
...
*!v8*
+# http://code.google.com/p/drmemory/issues/detail?id=546
+UNINITIALIZED READ
+...
+mscms.dll!*
+...
+GDI32.dll!*
+*!IconUtil::Create*HICON*
+
############################
# TODO(timurrrr): investigate these
UNINITIALIZED READ
diff --git a/tools/valgrind/drmemory_analyze.py b/tools/valgrind/drmemory_analyze.py
index c2b257c..4780593 100755
--- a/tools/valgrind/drmemory_analyze.py
+++ b/tools/valgrind/drmemory_analyze.py
@@ -50,7 +50,7 @@ class DrMemoryAnalyze:
"chromium\\src\\",
"crt_bld\\self_x86\\",
]
- CUT_STACK_BELOW = ".*testing.*Test.*Run.*"
+ CUT_STACK_BELOW = ".*testing.*Test.*Run.*|testing::internal.*"
result = [self.line_]
self.ReadLine()
@@ -70,8 +70,8 @@ class DrMemoryAnalyze:
# access address in the UNADDRESSABLE ACCESS reports like this:
# Note: next higher malloc: <address range>
# Note: prev lower malloc: <address range>
- match_malloc_info = re.search("Note: .* malloc: +0x.*", tmp_line)
- if match_malloc_info:
+ # Note: 0x1234-0x5678 overlaps freed memory 0x1000-0x6000
+ if tmp_line.startswith("Note: "):
result.append(tmp_line)
self.ReadLine()
continue
@@ -87,7 +87,8 @@ class DrMemoryAnalyze:
if re.search(CUT_STACK_BELOW, fname):
break
report_line = (" #%2i %-50s" % (cnt, fname))
- if not re.search("\.exe\+0x", binary):
+ if (not re.search("\.exe\+0x", binary) and
+ not re.search("chrome\.dll", binary)):
# Print the DLL name
report_line += " " + binary
src, lineno = match_src_line.groups()
diff --git a/tools/valgrind/valgrind_test.py b/tools/valgrind/valgrind_test.py
index 17230a5..11ccc72c 100755
--- a/tools/valgrind/valgrind_test.py
+++ b/tools/valgrind/valgrind_test.py
@@ -712,6 +712,10 @@ class DrMemory(BaseTool):
help="Monitor python child processes. If off, neither "
"python children nor any children of python children "
"will be monitored.")
+ parser._parser.add_option("", "--indirect", action="store_true",
+ default=False,
+ help="set BROWSER_WRAPPER rather than "
+ "running Dr. Memory directly on the harness")
parser.add_option("", "--use_debug", action="store_true",
default=False, dest="use_debug",
help="Run Dr. Memory debug build")
@@ -812,10 +816,17 @@ class DrMemory(BaseTool):
# Dr.Memory requires -- to separate tool flags from the executable name.
proc += ["--"]
+ if self._options.indirect:
+ self.CreateBrowserWrapper(" ".join(proc))
+ proc = []
+
# Note that self._args begins with the name of the exe to be run.
proc += self._args
return proc
+ def CreateBrowserWrapper(self, command):
+ os.putenv("BROWSER_WRAPPER", command)
+
def Analyze(self, check_sanity=False):
# Glob all the results files in the "testing.tmp" directory
filenames = glob.glob(self.log_dir + "/*/results.txt")