Qualifying suppression types with the skin name, like this:

memcheck:Addr4

Changed the `name' need of the memcheck skin from "valgrind" to "memcheck" for
this.  But the name Valgrind will return when I print core and skin names in
the startup message.

One issue is that some skins share suppression types, eg. memcheck and
addrcheck.  Might be useful to allow multi-skin suppressions, viz:

  memcheck,addrcheck:Addr4

This won't be too hard to tack on, though.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1163
This commit is contained in:
Nicholas Nethercote 2002-10-02 11:02:27 +00:00
parent 06a95f2392
commit 8bffd600d5
9 changed files with 265 additions and 210 deletions

View File

@ -527,10 +527,12 @@ static Bool setLocationTy ( Char** p_caller, SuppLocTy* p_ty )
static void load_one_suppressions_file ( Char* filename )
{
# define N_BUF 200
Int fd, i;
Bool eof;
Bool is_unrecognised_suppressions = False;
Char buf[N_BUF+1];
Int fd, i;
Bool eof;
Char buf[N_BUF+1];
Char* skin_name;
Char* supp_name;
fd = VG_(open)( filename, VKI_O_RDONLY, 0 );
if (fd == -1) {
VG_(message)(Vg_UserMsg, "FATAL: can't open suppressions file `%s'",
@ -541,7 +543,7 @@ static void load_one_suppressions_file ( Char* filename )
while (True) {
/* Assign and initialise the two suppression halves (core and skin) */
CoreSupp* supp;
supp = VG_(arena_malloc)(VG_AR_CORE, sizeof(CoreSupp));
supp = VG_(arena_malloc)(VG_AR_CORE, sizeof(CoreSupp));
supp->count = 0;
for (i = 0; i < VG_N_SUPP_CALLERS; i++) supp->caller[i] = NULL;
supp->skin_supp.string = supp->skin_supp.extra = NULL;
@ -559,29 +561,39 @@ static void load_one_suppressions_file ( Char* filename )
if (eof) goto syntax_error;
/* Is it a core suppression? */
else if (VG_(needs).core_errors && STREQ(buf, "PThread"))
supp->skin_supp.skind = PThreadSupp;
/* Is it a skin suppression? */
else if (VG_(needs).skin_errors &&
SK_(recognised_suppression)(buf, &(supp->skin_supp.skind))) {
/* do nothing, function fills in supp->skin_supp.skind */
/* Check it has the "skin_name:supp_name" form (ie. look for ':') */
i = 0;
while (True) {
if (buf[i] == ':') break;
if (buf[i] == '\0') goto syntax_error;
i++;
}
//else goto syntax_error;
buf[i] = '\0'; /* Replace ':', splitting into two strings */
skin_name = & buf[0];
supp_name = & buf[i+1];
/* Is it a core suppression? (core:<supp_name>) */
if (VG_(needs).core_errors && STREQ(skin_name, "core"))
{
if (STREQ(supp_name, "PThread"))
supp->skin_supp.skind = PThreadSupp;
else
goto syntax_error;
}
/* Is it a skin suppression? (<skin_name>:<supp_name>") */
else if (VG_(needs).skin_errors && STREQ(skin_name, VG_(needs).name))
{
if (SK_(recognised_suppression)(supp_name, & supp->skin_supp.skind))
{
/* Do nothing, function fills in supp->skin_supp.skind */
} else
goto syntax_error;
}
else {
/* SSS: if we don't recognise the suppression name, ignore entire
* entry. Not sure if this is a good long-term approach -- makes
* it impossible to spot incorrect suppression names? (apart
* from the warning given) */
if (! is_unrecognised_suppressions) {
is_unrecognised_suppressions = True;
VG_(start_msg)(Vg_DebugMsg);
VG_(add_to_msg)("Ignoring unrecognised suppressions: ");
VG_(add_to_msg)("'%s'", buf);
} else {
VG_(add_to_msg)(", '%s'", buf);
}
/* Ignore rest of suppression */
while (True) {
eof = VG_(get_line) ( fd, buf, N_BUF );
if (eof) goto syntax_error;
@ -609,10 +621,6 @@ static void load_one_suppressions_file ( Char* filename )
supp->next = vg_suppressions;
vg_suppressions = supp;
}
if (is_unrecognised_suppressions) {
/* Print out warning about any ignored suppressions */
//VG_(end_msg)();
}
VG_(close)(fd);
return;

View File

@ -5,22 +5,30 @@
# Format of this file is:
# {
# name_of_suppression
# kind: one of Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
# (if Param: name of system call param, if Free: name of free-ing fn)
# skin_name:supp_kind
# (optional extra info for some suppression types)
# caller0 name, or /name/of/so/file.so
# caller1 name, or ditto
# (optionally: caller2 name)
# (optionally: caller3 name)
# }
#
# For memcheck, the supp_kinds are:
#
# Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
#
# and the optional extra info is:
# if Param: name of system call param
# if Free: name of free-ing fn)
#-------- Suppress errors appearing as a result of calling
#-------- __libc_freeres()
{
__libc_freeres/free_mem(Addr4)
Addr4
memcheck:Addr4
fun:free_mem
fun:__libc_freeres
}
@ -30,14 +38,14 @@
{
__pthread_mutex_unlock/__register_frame_info_bases
PThread
core:PThread
fun:__pthread_mutex_unlock
fun:__register_frame_info_bases
}
{
socketcall.connect(serv_addr)/__libc_connect/*(Param)
Param
memcheck:Param
socketcall.connect(serv_addr)
fun:__libc_connect
fun:*
@ -45,7 +53,7 @@
{
strrchr/_dl_map_object_from_fd/_dl_map_object(Addr4)
Addr4
memcheck:Addr4
fun:strrchr
fun:_dl_map_object_from_fd
fun:_dl_map_object
@ -53,7 +61,7 @@
{
strrchr/_dl_map_object_from_fd/_dl_map_object(Value1)
Value1
memcheck:Value1
fun:strrchr
fun:_dl_map_object_from_fd
fun:_dl_map_object
@ -61,7 +69,7 @@
{
llseek(result)/__libc_lseek64/_IO_file_seek(Param)
Param
memcheck:Param
llseek(result)
fun:__libc_lseek64
fun:_IO_file_seek
@ -69,7 +77,7 @@
{
__rawmemchr/_nl_*/*locale(Addr4)
Addr4
memcheck:Addr4
fun:__rawmemchr
fun:_nl_*
fun:*locale
@ -78,20 +86,20 @@
# new ones for RH62 ls -l
{
__strchrnul/__nss_database_lookup(Cond)
Cond
memcheck:Cond
fun:__strchrnul
fun:__nss_database_lookup
}
{
__strchrnul/__gethostbyname_r(Cond)
Cond
memcheck:Cond
fun:__strchrnul
fun:__gethostbyname_r
}
{
strrchr/_dl_map*/_dl_map*(Cond)
Cond
memcheck:Cond
fun:strrchr
fun:_dl_map*
fun:_dl_map*
@ -99,7 +107,7 @@
{
strchr/dl_open_worker/_dl_catch_error(Cond)
Cond
memcheck:Cond
fun:strchr
fun:dl_open_worker
fun:_dl_catch_error
@ -107,7 +115,7 @@
{
__rawmemchr/???/__getgrgid_r(Cond)
Cond
memcheck:Cond
fun:__rawmemchr
fun:*
fun:__getgrgid_r
@ -115,7 +123,7 @@
{
__rawmemchr/_nl_*/*locale*(Cond)
Cond
memcheck:Cond
fun:__rawmemchr
fun:_nl_*
fun:*locale*
@ -123,7 +131,7 @@
{
_dl_relocate_object/dl_open_worker(Value0)
Cond
memcheck:Cond
fun:_dl_relocate_object
fun:dl_open_worker
}
@ -135,7 +143,7 @@
{
libc-2.1.3.so/libc-2.1.3.so/libc-2.1.3.so(Cond)
Cond
memcheck:Cond
obj:*libc-2.1.3.so
obj:*libc-2.1.3.so
obj:*libc-2.1.3.so
@ -143,21 +151,21 @@
{
strchr/libc-2.1.3.so(Cond)
Cond
memcheck:Cond
fun:*strchr*
obj:*libc-2.1.3.so
}
{
libc-2.1.3.so/libXt.so(Cond)
Cond
memcheck:Cond
obj:*libc-2.1.3.so
obj:*libXt.so*
}
{
socketcall.connect(serv_addr)/__libc_connect/*(Param)
Param
memcheck:Param
socketcall.connect(serv_addr)
obj:*libc-2.1.3.so
obj:*libX11.so*

View File

@ -6,46 +6,54 @@
# Format of this file is:
# {
# name_of_suppression
# kind: one of Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
# (if Param: name of system call param, if Free: name of free-ing fn)
# skin_name:supp_kind
# (optional extra info for some suppression types)
# caller0 name, or /name/of/so/file.so
# caller1 name, or ditto
# (optionally: caller2 name)
# (optionally: caller3 name)
# }
# }
#
# For memcheck, the supp_kinds are:
#
# Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
#
# and the optional extra info is:
# if Param: name of system call param
# if Free: name of free-ing fn)
#-------- SuSE 8.1 stuff (gcc-3.2, glibc-2.2.5 + SuSE's hacks)
{
__stpcpy/*
Cond
memcheck:Cond
fun:__stpcpy
fun:*
}
{
strlen/decompose_rpath/_dl_map_object
Cond
memcheck:Cond
fun:strlen
fun:decompose_rpath
fun:_dl_map_object
}
{
strlen/_dl_sym/dlsym_doit
Cond
memcheck:Cond
fun:strlen
fun:_dl_sym
fun:dlsym_doit
}
{
trecurse/__gconv_release_shlib(Addr4)
Addr4
memcheck:Addr4
fun:trecurse
fun:__gconv_release_shlib
}
{
do_release_shlib/trecurse(Addr4)
Addr4
memcheck:Addr4
fun:do_release_shlib
fun:trecurse
}
@ -53,28 +61,28 @@
#-------- R H Limbo (glibc-2.2.90) stuff
{
elf_dynamic_do_rela.8/_dl_relocate_object_internal
Cond
memcheck:Cond
fun:elf_dynamic_do_rela.8
fun:_dl_relocate_object_internal
}
{
__strnlen/_nl_make_l10nflist(Cond)
Cond
memcheck:Cond
fun:__strnlen
fun:_nl_make_l10nflist
}
{
__strnlen/*vfprintf*
Cond
memcheck:Cond
fun:__strnlen
fun:*vfprintf*
}
{
libXaw.so.7.0(Cond)
Cond
memcheck:Cond
obj:*libXaw.so.7.0
}
@ -83,20 +91,20 @@
{
__twalk/*(Addr4)
Addr4
memcheck:Addr4
fun:__twalk
}
{
do_release_shlib/__twalk(Addr4)
Addr4
memcheck:Addr4
fun:do_release_shlib
fun:__twalk
}
{
__libc_freeres/free_mem/free(Free)
Free
memcheck:Free
fun:free
fun:free_mem
fun:__libc_freeres
@ -105,7 +113,7 @@
#-------- Data races
#{
# _dl_lookup_symbol/fixup/_dl_runtime_resolve
# Eraser
# helgrind:Eraser
# fun:_dl_lookup_symbol
# fun:fixup
# fun:_dl_runtime_resolve
@ -113,7 +121,7 @@
#
#{
# _dl_lookup_versioned_symbol/fixup/_dl_runtime_resolve
# Eraser
# helgrind:Eraser
# fun:_dl_lookup_versioned_symbol
# fun:fixup
# fun:_dl_runtime_resolve
@ -122,7 +130,7 @@
#-------- Threading bugs?
{
pthread_error/__pthread_mutex_destroy/__closedir
PThread
core:PThread
fun:pthread_error
fun:__pthread_mutex_destroy
fun:__closedir
@ -130,7 +138,7 @@
{
pthread_error/__pthread_mutex_destroy/_IO_default_finish
PThread
core:PThread
fun:pthread_error
fun:__pthread_mutex_destroy
fun:_IO_default_finish*
@ -138,14 +146,14 @@
{
__pthread_mutex_unlock/_IO_funlockfile
PThread
core:PThread
fun:__pthread_mutex_unlock
fun:_IO_funlockfile
}
{
__pthread_mutex_unlock/__register_frame_info
PThread
core:PThread
fun:__pthread_mutex_unlock
fun:__register_frame_info
}
@ -153,14 +161,14 @@
# even more glibc suppressions ?
{
libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Cond)
Cond
memcheck:Cond
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
}
{
libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Value4)
Value4
memcheck:Value4
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
@ -170,24 +178,24 @@
##### suppressions for coolo
{
strchr/dl_open_worker(Cond)
Cond
memcheck:Cond
fun:strchr
fun:dl_open_worker
}
{
__rawmemchr(Cond)
Cond
memcheck:Cond
fun:__rawmemchr
}
{
_IO_vfprintf/__strnlen(Cond)
Cond
memcheck:Cond
fun:__strnlen
fun:_IO_vfprintf
}
{
__strchrnul/gethostbyname*(Cond)
Cond
memcheck:Cond
fun:__strchrnul
fun:gethostbyname*
}
@ -196,28 +204,28 @@
##----
{
strlen/*dl_map_object*(Cond)
Cond
memcheck:Cond
fun:strlen
fun:*dl_map_object*
}
{
strlen/*dl_open_worker*(Cond)
Cond
memcheck:Cond
fun:strlen
fun:*dl_open_worker*
}
{
*rawmemchr*/*nss*(Cond)
Cond
memcheck:Cond
fun:*rawmemchr*
fun:*nss*
}
{
*strchrnul*/*nss*(Cond)
Cond
memcheck:Cond
fun:*strchrnul*
fun:*nss*
}
@ -229,13 +237,13 @@
# two:
{
__mpn_construct_double/*(Addr4)
Addr4
memcheck:Addr4
fun:__mpn_construct_double
fun:*
}
{
__mpn_construct_double/*(Addr8)
Addr8
memcheck:Addr8
fun:__mpn_construct_double
fun:*
}
@ -243,13 +251,13 @@
# More of the same (gcc bug, I'm pretty sure)
{
__fabs/*(Addr4)
Addr4
memcheck:Addr4
fun:__fabs
fun:*
}
{
__fabs/*(Addr8)
Addr8
memcheck:Addr8
fun:__fabs
fun:*
}
@ -258,7 +266,7 @@
# Not sure what this is about ... but anyway
{
pthread_sighandler/*(Addr4)
Addr4
memcheck:Addr4
fun:pthread_sighandler
fun:*
}
@ -268,7 +276,7 @@
{
__strnlen/__argz_stringify/_nl_make_l10nflist(Cond)
Cond
memcheck:Cond
fun:__strnlen
fun:__argz_stringify
fun:_nl_make_l10nflist
@ -277,14 +285,14 @@
#--------------
{
_dl_relocate_object*/dl_open_worker/_dl_catch_error*(Cond)
Cond
memcheck:Cond
fun:_dl_relocate_object*
fun:dl_open_worker
fun:_dl_catch_error*
}
{
_dl_relocate_object/libc-2.2.4.so/_dl_catch_error(Cond)
Cond
memcheck:Cond
fun:_dl_relocate_object
obj:*libc-2.2.?.so
fun:_dl_catch_error
@ -292,7 +300,7 @@
{
strrchr/_dl_map_object_from_fd/_dl_map_object(Cond)
Cond
memcheck:Cond
fun:strrchr
fun:_dl_map_object_from_fd
fun:_dl_map_object
@ -301,14 +309,14 @@
#-------------------
{
socketcall.connect(serv_addr)/__libc_connect/*
Param
memcheck:Param
socketcall.connect(serv_addr)
fun:__libc_connect
fun:*
}
{
socketcall.connect(serv_addr)/libc-2.2.4.so/libc-2.2.4.so
Param
memcheck:Param
socketcall.connect(serv_addr)
obj:*libc-2.2.?.so
obj:*libc-2.2.?.so
@ -317,7 +325,7 @@
#----------------------
{
write(buf)/__libc_write/libX11.so.6.2/libX11.so.6.2(Param)
Param
memcheck:Param
write(buf)
fun:__libc_write
obj:/usr/X11R6/lib/libX11.so.6.2
@ -325,7 +333,7 @@
}
{
write(buf)/libc-2.2.4.so/libX11.so.6.2/libX11.so.6.2(Param)
Param
memcheck:Param
write(buf)
obj:*libc-2.2.?.so
obj:/usr/X11R6/lib/libX11.so.6.2
@ -342,7 +350,7 @@
{
writev(vector[...])/__writev/libX11.so.6.2/libX11.so.6.2
Param
memcheck:Param
writev(vector[...])
fun:__writev
obj:/usr/X11R6/lib/libX11.so.6.2
@ -352,14 +360,14 @@
#----------------
{
__rawmemchr/libXt.so.6.0/libXt.so.6.0
Cond
memcheck:Cond
fun:__rawmemchr
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
}
{
libc-2.2.4.so/libXt.so.6.0/libXt.so.6.0
Cond
memcheck:Cond
obj:*libc-2.2.?.so
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0

View File

@ -7,21 +7,29 @@
# Format of this file is:
# {
# name_of_suppression
# kind: one of Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
# (if Param: name of system call param, if Free: name of free-ing fn)
# skin_name:supp_kind
# (optional extra info for some suppression types)
# caller0 name, or /name/of/so/file.so
# caller1 name, or ditto
# (optionally: caller2 name)
# (optionally: caller3 name)
# }
#
# For memcheck, the supp_kinds are:
#
# Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
#
# and the optional extra info is:
# if Param: name of system call param
# if Free: name of free-ing fn)
##----------------------------------------------------------------------##
{
socketcall.connect(serv_addr)/__libc_connect/*(Param)
Param
memcheck:Param
socketcall.connect(serv_addr)
fun:__libc_connect
fun:*
@ -29,7 +37,7 @@
{
strrchr/_dl_map_object_from_fd/_dl_map_object(Addr4)
Addr4
memcheck:Addr4
fun:strrchr
fun:_dl_map_object_from_fd
fun:_dl_map_object
@ -37,7 +45,7 @@
{
strrchr/_dl_map_object_from_fd/_dl_map_object(Value1)
Value1
memcheck:Value1
fun:strrchr
fun:_dl_map_object_from_fd
fun:_dl_map_object
@ -45,7 +53,7 @@
{
llseek(result)/__libc_lseek64/_IO_file_seek(Param)
Param
memcheck:Param
llseek(result)
fun:__libc_lseek64
fun:_IO_file_seek
@ -53,7 +61,7 @@
{
__rawmemchr/_nl_*/*locale(Addr4)
Addr4
memcheck:Addr4
fun:__rawmemchr
fun:_nl_*
fun:*locale
@ -62,20 +70,20 @@
# new ones for RH62 ls -l
{
__strchrnul/__nss_database_lookup(Cond)
Cond
memcheck:Cond
fun:__strchrnul
fun:__nss_database_lookup
}
{
__strchrnul/__gethostbyname_r(Cond)
Cond
memcheck:Cond
fun:__strchrnul
fun:__gethostbyname_r
}
{
strrchr/_dl_map*/_dl_map*(Cond)
Cond
memcheck:Cond
fun:strrchr
fun:_dl_map*
fun:_dl_map*
@ -83,7 +91,7 @@
{
strchr/dl_open_worker/_dl_catch_error(Cond)
Cond
memcheck:Cond
fun:strchr
fun:dl_open_worker
fun:_dl_catch_error
@ -91,7 +99,7 @@
{
__rawmemchr/???/__getgrgid_r(Cond)
Cond
memcheck:Cond
fun:__rawmemchr
fun:*
fun:__getgrgid_r
@ -99,7 +107,7 @@
{
__rawmemchr/_nl_*/*locale*(Cond)
Cond
memcheck:Cond
fun:__rawmemchr
fun:_nl_*
fun:*locale*
@ -107,7 +115,7 @@
{
_dl_relocate_object/dl_open_worker(Value0)
Cond
memcheck:Cond
fun:_dl_relocate_object
fun:dl_open_worker
}
@ -119,7 +127,7 @@
{
libc-2.1.3.so/libc-2.1.3.so/libc-2.1.3.so(Cond)
Cond
memcheck:Cond
obj:*libc-2.1.3.so
obj:*libc-2.1.3.so
obj:*libc-2.1.3.so
@ -127,21 +135,21 @@
{
strchr/libc-2.1.3.so(Cond)
Cond
memcheck:Cond
fun:*strchr*
obj:*libc-2.1.3.so
}
{
libc-2.1.3.so/libXt.so(Cond)
Cond
memcheck:Cond
obj:*libc-2.1.3.so
obj:*libXt.so*
}
{
socketcall.connect(serv_addr)/__libc_connect/*(Param)
Param
memcheck:Param
socketcall.connect(serv_addr)
obj:*libc-2.1.3.so
obj:*libX11.so*
@ -152,14 +160,14 @@
{
X11-Cond-0
Cond
memcheck:Cond
obj:*libXt.so.6.0
obj:*libXt.so.6.0
obj:*libXt.so.6.0
}
{
X11-Cond-1
Cond
memcheck:Cond
fun:__rawmemchr
obj:*libXt.so.6.0
obj:*libXt.so.6.0
@ -170,7 +178,7 @@
{
X11-Addr4-1
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libX11.so.6.1
@ -178,7 +186,7 @@
{
X11-Addr4-2
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libXt.so.6.0
@ -186,7 +194,7 @@
{
X11-Addr4-3
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -194,7 +202,7 @@
{
X11-Addr4-4
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -202,7 +210,7 @@
{
X11-Addr4-5
Addr4
memcheck:Addr4
fun:__rawmemchr
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -210,7 +218,7 @@
{
X11-Addr4-6
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXmu.so.6.0
obj:/usr/X11R6/lib/libXmu.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -218,7 +226,7 @@
{
X11-Addr4-7
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1
@ -226,7 +234,7 @@
{
X11-Param-1
Param
memcheck:Param
write(buf)
fun:__libc_write
obj:/usr/X11R6/lib/libX11.so.6.1
@ -235,7 +243,7 @@
{
X11-Addr4-8
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libXpm.so.4.11
obj:/usr/X11R6/lib/libXpm.so.4.11
@ -243,7 +251,7 @@
{
X11-Addr4-8
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1
obj:/usr/X11R6/lib/libXt.so.6.0
@ -251,7 +259,7 @@
{
X11-Addr4-9
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXaw.so.6.1
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -259,7 +267,7 @@
{
X11-Addr4-10
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXaw.so.6.1
obj:/usr/X11R6/lib/libXaw.so.6.1
obj:/usr/X11R6/lib/libXt.so.6.0
@ -267,7 +275,7 @@
{
X11-Addr4-11
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXaw.so.6.1

View File

@ -7,28 +7,35 @@
# Format of this file is:
# {
# name_of_suppression
# kind: one of Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
# (if Param: name of system call param, if Free: name of free-ing fn)
# skin_name:supp_kind
# (optional extra info for some suppression types)
# caller0 name, or /name/of/so/file.so
# caller1 name, or ditto
# (optionally: caller2 name)
# (optionally: caller3 name)
# }
#
# For memcheck, the supp_kinds are:
#
# Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
#
# and the optional extra info is:
# if Param: name of system call param
# if Free: name of free-ing fn)
# even more glibc suppressions ?
{
libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Cond)
Cond
memcheck:Cond
obj:*libc-2.2.4.so
obj:*libc-2.2.4.so
obj:*libc-2.2.4.so
}
{
libc-2.2.4.so/libc-2.2.4.so/libc-2.2.4.so(Value4)
Value4
memcheck:Value4
obj:*libc-2.2.4.so
obj:*libc-2.2.4.so
obj:*libc-2.2.4.so
@ -38,25 +45,25 @@
##### suppressions for coolo
{
strchr/dl_open_worker(Cond)
Cond
memcheck:Cond
fun:strchr
fun:dl_open_worker
}
{
__rawmemchr/internal_getgrgid_r(Cond)
Cond
memcheck:Cond
fun:__rawmemchr
fun:internal_getgrgid_r
}
{
_IO_vfprintf/__strnlen(Cond)
Cond
memcheck:Cond
fun:__strnlen
fun:_IO_vfprintf
}
{
__strchrnul/gethostbyname*(Cond)
Cond
memcheck:Cond
fun:__strchrnul
fun:gethostbyname*
}
@ -65,28 +72,28 @@
##----
{
strlen/*dl_map_object*(Cond)
Cond
memcheck:Cond
fun:strlen
fun:*dl_map_object*
}
{
strlen/*dl_open_worker*(Cond)
Cond
memcheck:Cond
fun:strlen
fun:*dl_open_worker*
}
{
*rawmemchr*/*nss*(Cond)
Cond
memcheck:Cond
fun:*rawmemchr*
fun:*nss*
}
{
*strchrnul*/*nss*(Cond)
Cond
memcheck:Cond
fun:*strchrnul*
fun:*nss*
}
@ -100,13 +107,13 @@
# two:
{
__mpn_construct_double/*(Addr4)
Addr4
memcheck:Addr4
fun:__mpn_construct_double
fun:*
}
{
__mpn_construct_double/*(Addr8)
Addr8
memcheck:Addr8
fun:__mpn_construct_double
fun:*
}
@ -114,13 +121,13 @@
# More of the same (gcc bug, I'm pretty sure)
{
__fabs/*(Addr4)
Addr4
memcheck:Addr4
fun:__fabs
fun:*
}
{
__fabs/*(Addr8)
Addr8
memcheck:Addr8
fun:__fabs
fun:*
}
@ -129,7 +136,7 @@
# Not sure what this is about ... but anyway
{
pthread_sighandler/*(Addr4)
Addr4
memcheck:Addr4
fun:pthread_sighandler
fun:*
}
@ -139,7 +146,7 @@
{
__strnlen/__argz_stringify/_nl_make_l10nflist(Cond)
Cond
memcheck:Cond
fun:__strnlen
fun:__argz_stringify
fun:_nl_make_l10nflist
@ -148,14 +155,14 @@
#--------------
{
_dl_relocate_object/dl_open_worker/_dl_catch_error(Cond)
Cond
memcheck:Cond
fun:_dl_relocate_object
fun:dl_open_worker
fun:_dl_catch_error
}
{
_dl_relocate_object/libc-2.2.4.so/_dl_catch_error(Cond)
Cond
memcheck:Cond
fun:_dl_relocate_object
obj:*libc-2.2.4.so
fun:_dl_catch_error
@ -163,7 +170,7 @@
{
strrchr/_dl_map_object_from_fd/_dl_map_object(Cond)
Cond
memcheck:Cond
fun:strrchr
fun:_dl_map_object_from_fd
fun:_dl_map_object
@ -172,14 +179,14 @@
#-------------------
{
socketcall.connect(serv_addr)/__libc_connect/*
Param
memcheck:Param
socketcall.connect(serv_addr)
fun:__libc_connect
fun:*
}
{
socketcall.connect(serv_addr)/libc-2.2.4.so/libc-2.2.4.so
Param
memcheck:Param
socketcall.connect(serv_addr)
obj:*libc-2.2.4.so
obj:*libc-2.2.4.so
@ -187,7 +194,7 @@
{
libX11.so.6.2/libX11.so.6.2/libX11.so.6.2(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libX11.so.6.2
@ -195,7 +202,7 @@
{
libXt.so.6.2/libXt.so.6.2/libXt.so.6.2(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -204,7 +211,7 @@
{
libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXaw.so.7.0
@ -212,7 +219,7 @@
{
libXmu.so.6.2/libXmu.so.6.2/libXmu.so.6.2(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libXmu.so.6.2
obj:/usr/X11R6/lib/libXmu.so.6.2
obj:/usr/X11R6/lib/libXmu.so.6.2
@ -220,7 +227,7 @@
{
libXt.so.6.0/libXt.so.6.0/libXaw.so.7.0(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXaw.so.7.0
@ -228,7 +235,7 @@
{
libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Value4)
Value4
memcheck:Value4
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -236,7 +243,7 @@
{
libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libXaw.so.7.0
@ -245,7 +252,7 @@
#----------------------
{
write(buf)/__libc_write/libX11.so.6.2/libX11.so.6.2(Param)
Param
memcheck:Param
write(buf)
fun:__libc_write
obj:/usr/X11R6/lib/libX11.so.6.2
@ -253,7 +260,7 @@
}
{
write(buf)/libc-2.2.4.so/libX11.so.6.2/libX11.so.6.2(Param)
Param
memcheck:Param
write(buf)
obj:*libc-2.2.4.so
obj:/usr/X11R6/lib/libX11.so.6.2
@ -262,7 +269,7 @@
#{
# llseek(result)/__libc_lseek64/_IO_file_seek(Param)
# Param
# memcheck:Param
# llseek(result)
# fun:__libc_lseek64
# fun:_IO_file_seek
@ -270,7 +277,7 @@
{
writev(vector[...])/__writev/libX11.so.6.2/libX11.so.6.2
Param
memcheck:Param
writev(vector[...])
fun:__writev
obj:/usr/X11R6/lib/libX11.so.6.2
@ -280,14 +287,14 @@
#----------------
{
__rawmemchr/libXt.so.6.0/libXt.so.6.0
Cond
memcheck:Cond
fun:__rawmemchr
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
}
{
libc-2.2.4.so/libXt.so.6.0/libXt.so.6.0
Cond
memcheck:Cond
obj:*libc-2.2.4.so
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0

View File

@ -2351,7 +2351,7 @@ Char* SK_(usage)(void)
void SK_(pre_clo_init)(VgNeeds* needs, VgTrackEvents* track)
{
needs->name = "valgrind";
needs->name = "memcheck";
needs->description = "a memory error detector";
needs->core_errors = True;

View File

@ -1,6 +1,6 @@
{
name_of_this_suppression
Cond
memcheck:Cond
obj:*supp1
fun:__libc_start_main
}

View File

@ -6,28 +6,36 @@
# Format of this file is:
# {
# name_of_suppression
# kind: one of Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
# (if Param: name of system call param, if Free: name of free-ing fn)
# skin_name:supp_kind
# (optional extra info for some suppression types)
# caller0 name, or /name/of/so/file.so
# caller1 name, or ditto
# (optionally: caller2 name)
# (optionally: caller3 name)
# }
#
# For memcheck, the supp_kinds are:
#
# Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
#
# and the optional extra info is:
# if Param: name of system call param
# if Free: name of free-ing fn)
##----------------------------------------------------------------------##
{
X11-Cond-0
Cond
memcheck:Cond
obj:*libXt.so.6.0
obj:*libXt.so.6.0
obj:*libXt.so.6.0
}
{
X11-Cond-1
Cond
memcheck:Cond
fun:__rawmemchr
obj:*libXt.so.6.0
obj:*libXt.so.6.0
@ -38,7 +46,7 @@
{
X11-Addr4-1
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libX11.so.6.1
@ -46,7 +54,7 @@
{
X11-Addr4-2
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libXt.so.6.0
@ -54,7 +62,7 @@
{
X11-Addr4-3
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -62,7 +70,7 @@
{
X11-Addr4-4
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -70,7 +78,7 @@
{
X11-Addr4-5
Addr4
memcheck:Addr4
fun:__rawmemchr
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -78,7 +86,7 @@
{
X11-Addr4-6
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXmu.so.6.0
obj:/usr/X11R6/lib/libXmu.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -86,7 +94,7 @@
{
X11-Addr4-7
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1
@ -94,7 +102,7 @@
{
X11-Param-1
Param
memcheck:Param
write(buf)
fun:__libc_write
obj:/usr/X11R6/lib/libX11.so.6.1
@ -103,7 +111,7 @@
{
X11-Addr4-8
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libX11.so.6.1
obj:/usr/X11R6/lib/libXpm.so.4.11
obj:/usr/X11R6/lib/libXpm.so.4.11
@ -111,7 +119,7 @@
{
X11-Addr4-8
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXawXpm_posing_as_Xaw.so.6.1
obj:/usr/X11R6/lib/libXt.so.6.0
@ -119,7 +127,7 @@
{
X11-Addr4-9
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXaw.so.6.1
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -127,7 +135,7 @@
{
X11-Addr4-10
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXaw.so.6.1
obj:/usr/X11R6/lib/libXaw.so.6.1
obj:/usr/X11R6/lib/libXt.so.6.0
@ -135,7 +143,7 @@
{
X11-Addr4-11
Addr4
memcheck:Addr4
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXaw.so.6.1

View File

@ -6,20 +6,28 @@
# Format of this file is:
# {
# name_of_suppression
# kind: one of Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
# (if Param: name of system call param, if Free: name of free-ing fn)
# skin_name:supp_kind
# (optional extra info for some suppression types)
# caller0 name, or /name/of/so/file.so
# caller1 name, or ditto
# (optionally: caller2 name)
# (optionally: caller3 name)
# }
#
# For memcheck, the supp_kinds are:
#
# Param Value1 Value2 Value4 Value8
# Free Addr1 Addr2 Addr4 Addr8
# Cond (previously known as Value0)
#
# and the optional extra info is:
# if Param: name of system call param
# if Free: name of free-ing fn)
{
libX11.so.6.2/libX11.so.6.2/libX11.so.6.2(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libX11.so.6.2
@ -27,7 +35,7 @@
{
libXt.so.6.2/libXt.so.6.2/libXt.so.6.2(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -36,7 +44,7 @@
{
libXaw.so.7.0/libXaw.so.7.0/libXaw.so.7.0(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXaw.so.7.0
@ -44,7 +52,7 @@
{
libXmu.so.6.2/libXmu.so.6.2/libXmu.so.6.2(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libXmu.so.6.2
obj:/usr/X11R6/lib/libXmu.so.6.2
obj:/usr/X11R6/lib/libXmu.so.6.2
@ -52,7 +60,7 @@
{
libXt.so.6.0/libXt.so.6.0/libXaw.so.7.0(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXt.so.6.0
obj:/usr/X11R6/lib/libXaw.so.7.0
@ -60,7 +68,7 @@
{
libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Value4)
Value4
memcheck:Value4
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -68,7 +76,7 @@
{
libXaw.so.7.0/libXaw.so.7.0/libXt.so.6.0(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXt.so.6.0
@ -76,7 +84,7 @@
{
libX11.so.6.2/libX11.so.6.2/libXaw.so.7.0(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libXaw.so.7.0
@ -84,7 +92,7 @@
{
libX11.so.6.2/libXaw.so.7.0/libXaw.so.7.0(Cond)
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libX11.so.6.2
obj:/usr/X11R6/lib/libXaw.so.7.0
obj:/usr/X11R6/lib/libXaw.so.7.0
@ -92,7 +100,7 @@
{
libXpm.so.4.11/libXpm.so.4.11/libXpm.so.4.11
Cond
memcheck:Cond
obj:/usr/X11R6/lib/libXpm.so.4.11
obj:/usr/X11R6/lib/libXpm.so.4.11
obj:/usr/X11R6/lib/libXpm.so.4.11