Commit b5e0537a authored by timurrrr@chromium.org's avatar timurrrr@chromium.org

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
parent 7d5c3cf1
...@@ -465,6 +465,14 @@ UNINITIALIZED READ ...@@ -465,6 +465,14 @@ UNINITIALIZED READ
... ...
*!v8* *!v8*
# http://code.google.com/p/drmemory/issues/detail?id=546
UNINITIALIZED READ
...
mscms.dll!*
...
GDI32.dll!*
*!IconUtil::Create*HICON*
############################ ############################
# TODO(timurrrr): investigate these # TODO(timurrrr): investigate these
UNINITIALIZED READ UNINITIALIZED READ
......
...@@ -50,7 +50,7 @@ class DrMemoryAnalyze: ...@@ -50,7 +50,7 @@ class DrMemoryAnalyze:
"chromium\\src\\", "chromium\\src\\",
"crt_bld\\self_x86\\", "crt_bld\\self_x86\\",
] ]
CUT_STACK_BELOW = ".*testing.*Test.*Run.*" CUT_STACK_BELOW = ".*testing.*Test.*Run.*|testing::internal.*"
result = [self.line_] result = [self.line_]
self.ReadLine() self.ReadLine()
...@@ -70,8 +70,8 @@ class DrMemoryAnalyze: ...@@ -70,8 +70,8 @@ class DrMemoryAnalyze:
# access address in the UNADDRESSABLE ACCESS reports like this: # access address in the UNADDRESSABLE ACCESS reports like this:
# Note: next higher malloc: <address range> # Note: next higher malloc: <address range>
# Note: prev lower malloc: <address range> # Note: prev lower malloc: <address range>
match_malloc_info = re.search("Note: .* malloc: +0x.*", tmp_line) # Note: 0x1234-0x5678 overlaps freed memory 0x1000-0x6000
if match_malloc_info: if tmp_line.startswith("Note: "):
result.append(tmp_line) result.append(tmp_line)
self.ReadLine() self.ReadLine()
continue continue
...@@ -87,7 +87,8 @@ class DrMemoryAnalyze: ...@@ -87,7 +87,8 @@ class DrMemoryAnalyze:
if re.search(CUT_STACK_BELOW, fname): if re.search(CUT_STACK_BELOW, fname):
break break
report_line = (" #%2i %-50s" % (cnt, fname)) 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 # Print the DLL name
report_line += " " + binary report_line += " " + binary
src, lineno = match_src_line.groups() src, lineno = match_src_line.groups()
......
...@@ -712,6 +712,10 @@ class DrMemory(BaseTool): ...@@ -712,6 +712,10 @@ class DrMemory(BaseTool):
help="Monitor python child processes. If off, neither " help="Monitor python child processes. If off, neither "
"python children nor any children of python children " "python children nor any children of python children "
"will be monitored.") "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", parser.add_option("", "--use_debug", action="store_true",
default=False, dest="use_debug", default=False, dest="use_debug",
help="Run Dr. Memory debug build") help="Run Dr. Memory debug build")
...@@ -812,10 +816,17 @@ class DrMemory(BaseTool): ...@@ -812,10 +816,17 @@ class DrMemory(BaseTool):
# Dr.Memory requires -- to separate tool flags from the executable name. # Dr.Memory requires -- to separate tool flags from the executable name.
proc += ["--"] proc += ["--"]
if self._options.indirect:
self.CreateBrowserWrapper(" ".join(proc))
proc = []
# Note that self._args begins with the name of the exe to be run. # Note that self._args begins with the name of the exe to be run.
proc += self._args proc += self._args
return proc return proc
def CreateBrowserWrapper(self, command):
os.putenv("BROWSER_WRAPPER", command)
def Analyze(self, check_sanity=False): def Analyze(self, check_sanity=False):
# Glob all the results files in the "testing.tmp" directory # Glob all the results files in the "testing.tmp" directory
filenames = glob.glob(self.log_dir + "/*/results.txt") filenames = glob.glob(self.log_dir + "/*/results.txt")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment