You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(32) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
(8) |
2
(8) |
3
(7) |
|
4
(3) |
5
(6) |
6
(9) |
7
(8) |
8
(7) |
9
(7) |
10
(18) |
|
11
(7) |
12
(11) |
13
(24) |
14
(13) |
15
(11) |
16
(18) |
17
(7) |
|
18
(8) |
19
(7) |
20
(9) |
21
(24) |
22
(18) |
23
(10) |
24
(7) |
|
25
(8) |
26
(11) |
27
(14) |
28
(7) |
29
(10) |
30
(7) |
|
|
From: Nicholas N. <nj...@ca...> - 2004-04-16 11:33:57
|
CVS commit by nethercote:
Improved pretty-printing:
- now showing conditions for CC2VAL and CMOV
- fixed indenting on JumpKind (-c, -r, -sys, etc)
M +17 -9 vg_translate.c 1.74
--- valgrind/coregrind/vg_translate.c #1.73:1.74
@@ -963,5 +963,6 @@ void pp_UInstrWorker ( Int instrNo, UIns
VG_(printf)("\t%4d: %s", instrNo,
VG_(name_UOpcode)(True, u->opcode));
- if (u->opcode == JMP || u->opcode == CC2VAL)
+ // For JMP, the condition goes before the size
+ if (u->opcode == JMP)
VG_(printf)("%s", VG_(name_UCondcode)(u->cond));
@@ -976,4 +977,19 @@ void pp_UInstrWorker ( Int instrNo, UIns
}
+ // For CC2VAL and CMOV, the condition goes after the size
+ if (u->opcode == CC2VAL || u->opcode == CMOV)
+ VG_(printf)("%s", VG_(name_UCondcode)(u->cond));
+
+ // Append jmpkind
+ if (u->opcode == JMP) {
+ switch (u->jmpkind) {
+ case JmpCall: VG_(printf)("-c"); break;
+ case JmpRet: VG_(printf)("-r"); break;
+ case JmpSyscall: VG_(printf)("-sys"); break;
+ case JmpClientReq: VG_(printf)("-cli"); break;
+ case JmpYield: VG_(printf)("-yld"); break;
+ default: break;
+ }
+ }
VG_(printf)(" \t");
@@ -1132,12 +1148,4 @@ void pp_UInstrWorker ( Int instrNo, UIns
case JMP:
- switch (u->jmpkind) {
- case JmpCall: VG_(printf)("-c"); break;
- case JmpRet: VG_(printf)("-r"); break;
- case JmpSyscall: VG_(printf)("-sys"); break;
- case JmpClientReq: VG_(printf)("-cli"); break;
- case JmpYield: VG_(printf)("-yld"); break;
- default: break;
- }
VG_(pp_UOperand)(u, 1, u->size, False);
if (CondAlways == u->cond) {
|
|
From: Nicholas N. <nj...@ca...> - 2004-04-16 08:25:52
|
CVS commit by nethercote: Clarified instructions for installing from CVS M +9 -4 cvs.html 1.7 --- devel-home/valgrind/cvs.html #1.6:1.7 @@ -7,8 +7,13 @@ If you want a bleeding-edge version of Valgrind, follow these <a href="http://developer.kde.org/source/anoncvs.html">instructions</a> -to check out the HEAD from our CVS repository; the <em>modulename</em> is -<code>valgrind</code>. Note particularly the information about mirrors. -Once you have checked out the code, follow the instructions in the README -to install. +to check out the current code from our CVS repository. But please note the +following exceptions to the instructions: +<ul> +<li>You only need to check out one module for Valgrind; the + <em>modulename</em> is <code>valgrind</code>. +<li>To compile, don't follow those instructions, instead follow the + instructions in Valgrind's README. +</ul> + <p> Or, you can <a href="http://webcvs.kde.org/cgi-bin/cvsweb.cgi/valgrind/"> |
|
From: Nicholas N. <nj...@ca...> - 2004-04-16 08:04:31
|
CVS commit by nethercote:
Fix assertion failure msg.
M +1 -1 vg_from_ucode.c 1.76
--- valgrind/coregrind/vg_from_ucode.c #1.75:1.76
@@ -3919,5 +3919,5 @@ static void emitUInstr ( UCodeBlock* cb,
u->opcode, u->size, u->val1, u->val2 );
break;
- default: VG_(core_panic)("emitUInstr:non-shift-op");
+ default: VG_(core_panic)("emitUInstr:shift-op");
}
break;
|
|
From: Nicholas N. <nj...@ca...> - 2004-04-16 07:41:39
|
Hi, Attached patch prints the contents of /proc/version at startup when -v is specified. Anyone see any problems with this, before I commit? (Linux-specific, yes, but...) N |
|
From: Nicholas N. <nj...@ca...> - 2004-04-16 07:25:37
|
CVS commit by nethercote: Fix typo, and update bug-reporting procedure. M +3 -3 README 1.17 --- valgrind/README #1.16:1.17 @@ -21,5 +21,5 @@ detailed profiling to help speed up your programs. -The Valgrind distribution includes four tools: two memory error +The Valgrind distribution includes five tools: two memory error detectors, a thread error detector, a cache profiler and a heap profiler. Several other tools have been built with Valgrind. @@ -87,6 +87,6 @@ 6. See if it works. Try "valgrind ls -l". Either this works, - or it bombs out complaining it can't find argc/argv/envp. - In that case, mail me a bug report. + or it bombs out with some complaint. In that case, please let + us know (see valgrind.kde.org/bugs.html). Important! Do not move the valgrind installation into a place |
|
From: Nicholas N. <nj...@ca...> - 2004-04-16 07:23:09
|
CVS commit by nethercote: Make that damn 'inherit' test stop failing, even if Helgrind isn't doing the right thing. M +6 -6 inherit.c 1.2 M +2 -1 inherit.stderr.exp 1.4 --- valgrind/helgrind/tests/inherit.c #1.1:1.2 @@ -1,4 +1,10 @@ /* test child thread inheriting data */ +// *** +// +// Helgrind should detect an error on line 48 for this test, but it doesn't! +// +// *** + #include <pthread.h> #include <unistd.h> --- valgrind/helgrind/tests/inherit.stderr.exp #1.3:1.4 @@ -1 +1,2 @@ -XXX We expect an error on inherit.c:48 + + |
|
From: <js...@ac...> - 2004-04-16 05:02:13
|
Nightly build on phoenix ( SuSE 8.2 ) started at 2004-04-16 04:00:00 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 152 tests, 13 stderr failures, 0 stdout failures ================= corecheck/tests/as_mmap (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) helgrind/tests/inherit (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stderr) make: *** [regtest] Error 1 |
|
From: Jeremy F. <je...@go...> - 2004-04-16 04:56:52
|
On Fri, 2004-04-16 at 08:40, Nicholas Nethercote wrote: > You say you want the long explanation for GUIs -- can you explain more why > that's useful? AFAICT people usually don't bother even giving meaningful > suppression names. Sure, but other people won't. In particular, I'm thinking about the standard suppressions we supply, and that library/software vendors might supply, which presumably will be put together with some care. Run of the mill suppressions will just be slapped together as always. A comment would do if you're directly editing/viewing the suppressions file, but I think we need to anticipate better interfaces. > > Well, when you link with a shared object, the dependency is "I need a > > file with an soname of (say) libc.so.6" rather than "I need a file > > called libc.so.6". The filename of the shared library is irrelevant if > > the soname is correct. > > Is the idea that you ignore the path before the filename? No, the SONAME is a specific property of a shared object which is unrelated to the filename (though it may be similar). For example: $ readelf -d /lib/libc.so.6 Dynamic segment at offset 0x1378b4 contains 23 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [ld-linux.so.2] 0x0000000e (SONAME) Library soname: [libc.so.6] 0x0000000c (INIT) 0x15950 0x0000000d (FINI) 0x11b3f0 ... You set this with the --soname option on the linker. That's why VG_(add_redirect_sym) supports either matching the filename of a library, or the soname. J |
|
From: <js...@ac...> - 2004-04-16 02:39:36
|
Nightly build on nemesis ( SuSE 9.0 ) started at 2004-04-16 03:50:00 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 152 tests, 13 stderr failures, 0 stdout failures ================= corecheck/tests/as_mmap (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) helgrind/tests/inherit (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <to...@co...> - 2004-04-16 02:23:03
|
Nightly build on dunsmere ( Fedora Core 1 ) started at 2004-04-16 03:20:01 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow readline1: valgrind ./readline1 resolv: valgrind ./resolv seg_override: valgrind ./seg_override semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 157 tests, 1 stderr failure, 1 stdout failure ================= helgrind/tests/inherit (stderr) none/tests/exec-sigmask (stdout) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-04-16 02:18:38
|
Nightly build on audi ( Red Hat 9 ) started at 2004-04-16 03:15:04 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow rcrl: valgrind ./rcrl readline1: valgrind ./readline1 resolv: valgrind ./resolv seg_override: valgrind ./seg_override semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 157 tests, 1 stderr failure, 0 stdout failures ================= helgrind/tests/inherit (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-04-16 02:13:18
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2004-04-16 03:10:03 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 157 tests, 6 stderr failures, 0 stdout failures ================= helgrind/tests/deadlock (stderr) helgrind/tests/inherit (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-04-16 02:08:11
|
Nightly build on alvis ( Red Hat 7.3 ) started at 2004-04-16 03:05:03 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 157 tests, 6 stderr failures, 1 stdout failure ================= helgrind/tests/inherit (stderr) memcheck/tests/badfree-2trace (stderr) memcheck/tests/badjump (stderr) memcheck/tests/brk (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/new_nothrow (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-04-16 02:06:37
|
Nightly build on standard ( Red Hat 7.2 ) started at 2004-04-16 03:00:03 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow readline1: valgrind ./readline1 resolv: valgrind ./resolv seg_override: valgrind ./seg_override semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 157 tests, 2 stderr failures, 0 stdout failures ================= helgrind/tests/inherit (stderr) memcheck/tests/badfree-2trace (stderr) make: *** [regtest] Error 1 |
|
From: Nicholas N. <nj...@ca...> - 2004-04-15 22:40:54
|
On Thu, 15 Apr 2004, Jeremy Fitzhardinge wrote:
> Memcheck,Addrcheck: Addr4(
> name "some badness",
> description
> "when the frobincator calls blattock without setting
> quokka-mode first, then this error occurs deep inside
> someone else's code",
> enable true)
> {
> func:blattock,
> func:twunk | soname:libgurple.so.1,
> func:frobnicator
> }
>
> I think this syntax is still pretty cumbersome, but putting block text
> which isn't a comment is a bit tricky. Python-like """ for block
> strings might be a good idea.
You say you want the long explanation for GUIs -- can you explain more why
that's useful? AFAICT people usually don't bother even giving meaningful
suppression names.
> Well, when you link with a shared object, the dependency is "I need a
> file with an soname of (say) libc.so.6" rather than "I need a file
> called libc.so.6". The filename of the shared library is irrelevant if
> the soname is correct.
Is the idea that you ignore the path before the filename?
N
|
|
From: Nicholas N. <nj...@ca...> - 2004-04-15 16:58:39
|
CVS commit by nethercote: More instructions about info to submit with a bug report. M +5 -6 bugs.html 1.10 --- devel-home/valgrind/bugs.html #1.9:1.10 @@ -23,11 +23,10 @@ When you report a bug, <em>please</em> give the following information: <ul> -<li>What version of Valgrind you are running; -<li>What command-line you are using to run Valgrind; -<li>The output of <code>valgrind -v</code>. +<li>The output of <code>uname -a</code>. +<li>The full output of <code>valgrind -v</code>. </ul> -It may also be useful to include your Linux version, kernel version, and -glibc version. If you include all this information, you are much more -likely to get a useful response. +It may also be useful to include your Linux distro version and glibc +version. If you include all this information, you are much more likely +to get a useful response. <p> |
|
From: Nicholas N. <nj...@ca...> - 2004-04-15 08:03:19
|
> ==21781== 200 bytes in 1 blocks are definitely lost in loss record 2 of 2
> ==21781== at 0x3C01E250: malloc (vg_replace_malloc.c:105)
> ==21781== by 0x3C025DF6: my_malloc (vg_libpthread.c:334)
> ==21781== by 0x3C028AAA: get_or_allocate_specifics_ptr
> (vg_libpthread.c:1591)
> ==21781== by 0x3C028C33: pthread_key_create (vg_libpthread.c:1628)
This is an leak in Valgrind's libpthread; there's meant to be a
suppression for it (the leak is in our code, not yours) but it doesn't
seem to be working. In default.supp (should be wherever Valgrind is
installed), change this suppression:
{
my_malloc/get_or_allocate_specifics_ptr/pthread_key_create(Leak)
Memcheck:Leak
fun:my_malloc
fun:get_or_allocate_specifics_ptr
fun:pthread_key_create
}
to this:
{
my_malloc/get_or_allocate_specifics_ptr/pthread_key_create(Leak)
Memcheck:Leak
fun:malloc
fun:my_malloc
fun:get_or_allocate_specifics_ptr
fun:pthread_key_create
}
which should get rid of it.
Does anyone else have this same problem, ie. this leak from David Hawkins'
program (posted on the valgrind-users list) isn't suppressed? I'll commit
it if so.
N
|
|
From: Jeremy F. <je...@go...> - 2004-04-15 07:27:25
|
On Thu, 2004-04-15 at 00:43, Nicholas Nethercote wrote:
> On Wed, 14 Apr 2004, Jeremy Fitzhardinge wrote:
>
> > I think _ and ... are reasonably clear as entry-matching operators,
>
> Unfortunately, if you don't look at the manual, you won't know what they
> are from context (unlike * and ? which people will likely be able to
> guess... not that anyone ever uses ?). Maybe that's unavoidable.
Well, yes, but if you don't use them you don't need to know about them.
If you're reading someone else's suppressions you'd need to look it up.
> I'm wary about these -- have you seen particular cases where these would
> be useful, or are you just hypothesizing? All the things I've mentioned
> have come from user feedback, people saying either "I want to be able to
> do this", or being confused about something. No point adding complexity
> if no-one will use it.
Well, the | syntax is optional, because you can always have multiple
suppressions with the same effect. The & syntax adds something new.
Whether these are sufficiently useful or not I don't know, but I have
seen situations where one suppression could be applied to multiple call
paths where some of the middle call elements have a few alternatives.
So, dunno. We can reserve the syntax and decide to implement them
later.
> > Another nit: use {} for grouping, since that's what the languages do.
>
> I specifically didn't choose {} because it's used to groups statements in
> procedural languages, which is not at all like a call trace. I
> deliberately used [] because it's often used as list notation (eg. in
> Haskell, Prolog), and a call trace can be considered exactly as a list.
Yes, but C uses {} for lists, as in array and structure initializers.
It doesn't use [] in this way at all.
> > Other comments:
> >
> > * Some way of enabling/disabling a suppression while keeping it in
> > the file and not commenting it out. This would make it a bit
> > easier for tools/programs to manage the file contents
>
> ok, any ideas how?
Well, I'm thinking of a grammar something like this:
suppfile := suppression*
suppression := tool-list ':' SUPPTYPE '(' params? ')' trace
tool-list := TOOLNAME ( ',' TOOLNAME )*
params := param ( ',' param )*
param := "name" STRING
| "description" STRING
| "enable" BOOL
trace := '{' entry ( ',' entry )* ','? '}'
entry := match
| "_"
| "..."
| match ( '&' match )+
| match ( '|' match )+
entry := "obj:" FILENAME-PATTERN
| "src:" FILENAME-PATTERN
| "func:" SYMBOL-PATTERN
>
> > * allow comments everywhere
>
> yes
>
> > * allow a more detailed description about the suppression, so it
> > can be shown in a GUI
>
> can you give an example?
Well, given the grammar above, an entry could look like
Memcheck,Addrcheck: Addr4(
name "some badness",
description
"when the frobincator calls blattock without setting
quokka-mode first, then this error occurs deep inside
someone else's code",
enable true)
{
func:blattock,
func:twunk | soname:libgurple.so.1,
func:frobnicator
}
I think this syntax is still pretty cumbersome, but putting block text
which isn't a comment is a bit tricky. Python-like """ for block
strings might be a good idea.
>
>
> > * matching against the soname of a .so file, rather than just the
> > file name. The soname is canonical.
>
> I don't understand what you mean by canonical here...
Well, when you link with a shared object, the dependency is "I need a
file with an soname of (say) libc.so.6" rather than "I need a file
called libc.so.6". The filename of the shared library is irrelevant if
the soname is correct.
> > * Need to work out how to address mangling. Since there are
> > multiple mangling schemes, we would either need to specify which
> > one we want (ugly, compliler-dependent, but what we have now in
> > effect, only manual), or generate matching rules for all mangled
> > forms of the given c++ name. I guess some syntax like
> > "mangle:int foo(void)" would do it.
>
> I'm tempted to stick with the current system.
I would say that exposing mangled names to users is about the #1
usability problem with suppressions. Mangled names are all but useless
for any human-visible output, yet we require them for suppressions. It
also means that a generated suppression (or manual suppressions for that
matter) is essentially uninterpretable by a later reader. It also means
that if you change toolchains, you need separate suppressions for each
version of the compiler (consider supplying a suppression file with your
source code, with the intent that it be built on a wide range of target
machines).
The whole mangling issue is a big pain, but I don't think we can ignore
it.
> I think current system -- exact matches against entire paths -- seems ok.
OK.
|
|
From: <js...@ac...> - 2004-04-15 03:06:40
|
Nightly build on phoenix ( SuSE 8.2 ) started at 2004-04-15 04:00:00 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 152 tests, 13 stderr failures, 0 stdout failures ================= corecheck/tests/as_mmap (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) helgrind/tests/inherit (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stderr) make: *** [regtest] Error 1 |
|
From: <js...@ac...> - 2004-04-15 02:40:29
|
Nightly build on nemesis ( SuSE 9.0 ) started at 2004-04-15 03:50:00 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 152 tests, 13 stderr failures, 0 stdout failures ================= corecheck/tests/as_mmap (stderr) corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_creat (stderr) corecheck/tests/fdleak_dup (stderr) corecheck/tests/fdleak_dup2 (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_open (stderr) corecheck/tests/fdleak_pipe (stderr) corecheck/tests/fdleak_socketpair (stderr) helgrind/tests/inherit (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <to...@co...> - 2004-04-15 02:23:06
|
Nightly build on dunsmere ( Fedora Core 1 ) started at 2004-04-15 03:20:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow readline1: valgrind ./readline1 resolv: valgrind ./resolv seg_override: valgrind ./seg_override semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 157 tests, 1 stderr failure, 1 stdout failure ================= helgrind/tests/inherit (stderr) none/tests/exec-sigmask (stdout) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-04-15 02:18:37
|
Nightly build on audi ( Red Hat 9 ) started at 2004-04-15 03:15:04 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow rcrl: valgrind ./rcrl readline1: valgrind ./readline1 resolv: valgrind ./resolv seg_override: valgrind ./seg_override semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 157 tests, 1 stderr failure, 0 stdout failures ================= helgrind/tests/inherit (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-04-15 02:13:26
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2004-04-15 03:10:02 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 157 tests, 6 stderr failures, 0 stdout failures ================= helgrind/tests/deadlock (stderr) helgrind/tests/inherit (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-04-15 02:08:12
|
Nightly build on alvis ( Red Hat 7.3 ) started at 2004-04-15 03:05:03 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 157 tests, 6 stderr failures, 1 stdout failure ================= helgrind/tests/inherit (stderr) memcheck/tests/badfree-2trace (stderr) memcheck/tests/badjump (stderr) memcheck/tests/brk (stderr) memcheck/tests/error_counts (stdout) memcheck/tests/new_nothrow (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-04-15 02:06:40
|
Nightly build on standard ( Red Hat 7.2 ) started at 2004-04-15 03:00:03 BST Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow readline1: valgrind ./readline1 resolv: valgrind ./resolv seg_override: valgrind ./seg_override semlimit: valgrind ./semlimit sha1_test: valgrind ./sha1_test shortpush: valgrind ./shortpush shorts: valgrind ./shorts smc1: valgrind ./smc1 susphello: valgrind ./susphello syscall-restart1: valgrind ./syscall-restart1 syscall-restart2: valgrind ./syscall-restart2 system: valgrind ./system yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 157 tests, 2 stderr failures, 0 stdout failures ================= helgrind/tests/inherit (stderr) memcheck/tests/badfree-2trace (stderr) make: *** [regtest] Error 1 |