summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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")