| # ********************************************************** |
| # Copyright (c) 2010-2017 Google, Inc. All rights reserved. |
| # Copyright (c) 2009-2010 VMware, Inc. All rights reserved. |
| # ********************************************************** |
| # |
| # Dr. Memory: the memory debugger |
| # |
| # This library is free software; you can redistribute it and/or |
| # modify it under the terms of the GNU Lesser General Public |
| # License as published by the Free Software Foundation; |
| # version 2.1 of the License, and no later version. |
| # |
| # This library is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| # Library General Public License for more details. |
| # |
| # You should have received a copy of the GNU Lesser General Public |
| # License along with this library; if not, write to the Free Software |
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| # |
| |
| # we rely on suppress-gen* tests to test mod+offs suppressions: |
| # that's too flaky on different builds for this test |
| |
| # uninitialized read: plain |
| UNINITIALIZED READ |
| name=uninit_test1 plain |
| suppress!do_uninit_read |
| suppress!uninit_test1 |
| suppress!test |
| suppress!main |
| |
| # uninitialized read: middle-of-symbol wildcard |
| UNINITIALIZED READ |
| name=uninit_test2 * |
| suppress!do_u*t_read |
| suppress!uninit_test2 |
| suppress!test |
| suppress!main |
| |
| # uninitialized read: valgrind-style |
| { |
| uninit_test3_plain |
| Memcheck:Value1 |
| fun:do_uninit_read |
| fun:unin*_test3 |
| fun:test |
| obj:suppre?s |
| } |
| |
| # uninitialized read: top frames based mod!func suppression |
| UNINITIALIZED READ |
| name=uninit_test4 top |
| suppress!do_uninit_read |
| suppress!uninit_test4 |
| |
| # uninitialized read: vertical wildcard |
| UNINITIALIZED READ |
| name=uninit_test5 ... match 1 |
| ... |
| suppress!uninit_test5 |
| |
| # uninitialized read: vertical wildcard |
| UNINITIALIZED READ |
| name=uninit_test6 ... match 6 |
| ... |
| suppress!uninit_test6 |
| |
| # uninitialized read: vertical wildcard |
| UNINITIALIZED READ |
| name=uninit_test7 ... + ? |
| ... |
| su??ress!unini??test7 |
| |
| # uninitialized read: two mod!... |
| UNINITIALIZED READ |
| name=mod_ellipsis_test two mod!... |
| suppress!... |
| libsuppress-mod-bar.so!... |
| suppress!call_into_bar |
| libsuppress-mod-foo.so!... |
| suppress!mod_ellipsis_test |
| |
| #------------------------------------------------------------------------------- |
| |
| # unaddressable access: plain, valgrind style w/ drmem type |
| { |
| unaddr_test1 plain |
| Dr.Memory:UNADDRESSABLE ACCESS |
| fun:unaddr_test1 |
| fun:test |
| fun:main |
| } |
| |
| UNADDRESSABLE ACCESS |
| name=unaddr_test2 * |
| s*s!unaddr_test2 |
| suppress!test |
| suppress!main |
| |
| # unaddressable access: full callstack based mod!func suppression |
| # also tests wildcard |
| UNADDRESSABLE ACCESS |
| name=unaddr_test3 instruction |
| instruction=mov (%*ax) -> %eax |
| suppress!unaddr_*3 |
| supp*!test |
| |
| # unaddressable access: top 2 frames based mod!func suppression |
| UNADDRESSABLE ACCESS |
| name=unaddr_test4 top |
| suppress!unaddr_test4 |
| suppress!test |
| |
| #------------------------------------------------------------------------------- |
| |
| # leak: plain |
| LEAK |
| name=leak_test1 plain |
| suppress!leak_test1 |
| suppress!test |
| suppress!main |
| |
| # leak: wildcards |
| LEAK |
| name=leak_test2 * |
| suppress!l*2 |
| *!test |
| suppress!m* |
| |
| # leak: full callstack based mod!func suppression |
| LEAK |
| name=leak_test3 ? |
| suppress!leak_test3 |
| suppress!test |
| suppress!main |
| |
| # leak: top frame based mod!func suppression |
| LEAK |
| name=leak_test4 top |
| suppress!leak_test4 |
| |
| # possible leak: top frame based mod!func suppression |
| POSSIBLE LEAK |
| name=possible_leak_test1 top |
| suppress!possible_leak_test1 |
| |
| # possible leak: top frame based mod!func suppression |
| LEAK |
| name=possible_leak_test2 w/ leak supp |
| suppress!possible_leak_test2 |
| |