diff --git a/coregrind/vg_errcontext.c b/coregrind/vg_errcontext.c index ac7874b5d..9da03fc4b 100644 --- a/coregrind/vg_errcontext.c +++ b/coregrind/vg_errcontext.c @@ -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; + /* 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++; + } + buf[i] = '\0'; /* Replace ':', splitting into two strings */ - /* 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 */ + skin_name = & buf[0]; + supp_name = & buf[i+1]; + + /* Is it a core suppression? (core:) */ + if (VG_(needs).core_errors && STREQ(skin_name, "core")) + { + if (STREQ(supp_name, "PThread")) + supp->skin_supp.skind = PThreadSupp; + else + goto syntax_error; } - //else goto syntax_error; + + /* Is it a skin suppression? (:") */ + 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; diff --git a/glibc-2.1.supp b/glibc-2.1.supp index 111293e97..86efc54d2 100644 --- a/glibc-2.1.supp +++ b/glibc-2.1.supp @@ -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* diff --git a/glibc-2.2.supp b/glibc-2.2.supp index 8dd0269f2..92f6b28ae 100644 --- a/glibc-2.2.supp +++ b/glibc-2.2.supp @@ -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 diff --git a/linux22.supp b/linux22.supp index 750aa2d5d..fd694d354 100644 --- a/linux22.supp +++ b/linux22.supp @@ -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 diff --git a/linux24.supp b/linux24.supp index 1401a4cb0..4311d42f6 100644 --- a/linux24.supp +++ b/linux24.supp @@ -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 diff --git a/memcheck/mc_main.c b/memcheck/mc_main.c index c2d378583..6df699337 100644 --- a/memcheck/mc_main.c +++ b/memcheck/mc_main.c @@ -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; diff --git a/memcheck/tests/supp.supp b/memcheck/tests/supp.supp index 477c6c47c..916b3530e 100644 --- a/memcheck/tests/supp.supp +++ b/memcheck/tests/supp.supp @@ -1,6 +1,6 @@ { name_of_this_suppression - Cond + memcheck:Cond obj:*supp1 fun:__libc_start_main } diff --git a/xfree-3.supp b/xfree-3.supp index ab1efae5a..eb7e8d95a 100644 --- a/xfree-3.supp +++ b/xfree-3.supp @@ -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 diff --git a/xfree-4.supp b/xfree-4.supp index 2ac9dc88c..35ada35bf 100644 --- a/xfree-4.supp +++ b/xfree-4.supp @@ -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