summaryrefslogtreecommitdiffstats
path: root/tools/valgrind/memcheck_analyze.py
diff options
context:
space:
mode:
authortimurrrr@chromium.org <timurrrr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-28 08:19:18 +0000
committertimurrrr@chromium.org <timurrrr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-28 08:19:18 +0000
commite01e737e289dfb5a6a2ce04b73a2c932a72ee342 (patch)
tree3cb92e2e2023d05e5184d878d700ba57cf0a3806 /tools/valgrind/memcheck_analyze.py
parent50e9a23ce0f459dc34748a10a9a1a727602b2f5f (diff)
downloadchromium_src-e01e737e289dfb5a6a2ce04b73a2c932a72ee342.zip
chromium_src-e01e737e289dfb5a6a2ce04b73a2c932a72ee342.tar.gz
chromium_src-e01e737e289dfb5a6a2ce04b73a2c932a72ee342.tar.bz2
Replace all Memcheck:(Addr[1248]|Cond|Value[1248]) with Memcheck:Unaddressable and Memcheck:Uninitialized
TODO in follow-up CLs: remove duplicate stacks which had different types. The support for these new suppression types have been added to valgrind-variant in http://code.google.com/p/valgrind-variant/source/detail?r=116 It should decrease the pain of writing up to 5 different suppressions for one error giving reports at different instructions, e.g. memcpy(..., ..., 17) on a free'd buffer will likely give us all flavours of Addr* Also, there's an upstream feature request with positive feedback from the authors of Memcheck. BUG=https://bugs.kde.org/show_bug.cgi?id=256525#c6 Also, the suppression generator code has been changed to not produce suppressions of "legacy" types anymore and the tools/valgrind/waterfall.sh suppression matcher has been altered to support both "legacy" and "new" type suppressions. TEST=base --gtest_filter="*Sanity*" + tools/valgrind/suppressions.py SelfTest() Review URL: http://codereview.chromium.org/8712001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111680 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/valgrind/memcheck_analyze.py')
-rwxr-xr-xtools/valgrind/memcheck_analyze.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/valgrind/memcheck_analyze.py b/tools/valgrind/memcheck_analyze.py
index 8248944..e73ad26 100755
--- a/tools/valgrind/memcheck_analyze.py
+++ b/tools/valgrind/memcheck_analyze.py
@@ -270,12 +270,20 @@ class ValgrindError:
"http://dev.chromium.org/developers/how-tos/using-valgrind#TOC-Suppressing-Errors")
# Widen suppression slightly to make portable between mac and linux
+ # TODO(timurrrr): Oops, these transformations should happen
+ # BEFORE calculating the hash!
supp = self._suppression;
supp = supp.replace("fun:_Znwj", "fun:_Znw*")
supp = supp.replace("fun:_Znwm", "fun:_Znw*")
supp = supp.replace("fun:_Znaj", "fun:_Zna*")
supp = supp.replace("fun:_Znam", "fun:_Zna*")
+ # Make suppressions even less platform-dependent.
+ for sz in [1, 2, 4, 8]:
+ supp = supp.replace("Memcheck:Addr%d" % sz, "Memcheck:Unaddressable")
+ supp = supp.replace("Memcheck:Value%d" % sz, "Memcheck:Uninitialized")
+ supp = supp.replace("Memcheck:Cond", "Memcheck:Uninitialized")
+
# Split into lines so we can enforce length limits
supplines = supp.split("\n")
supp = None # to avoid re-use