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
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(6) |
2
(7) |
|
3
(12) |
4
(9) |
5
(12) |
6
(9) |
7
(18) |
8
(10) |
9
(17) |
|
10
(15) |
11
(22) |
12
(16) |
13
(18) |
14
(9) |
15
(14) |
16
(18) |
|
17
(24) |
18
(11) |
19
(15) |
20
(29) |
21
(19) |
22
(20) |
23
(9) |
|
24
(25) |
25
(25) |
26
(38) |
27
(22) |
28
(16) |
29
(17) |
|
|
From: Nicholas N. <nj...@cs...> - 2008-02-25 21:31:29
|
On Mon, 25 Feb 2008, Bart Van Assche wrote: > While all exp-drd regression tests ran fine on my development system, > the pth_barrier regression test failed on all systems the nightly > build ran on. The result of this regression test must be that a single > data race is be reported. Depending on how the Valgrind core scheduled > the threads of this test, the data race is either reported in thread 2 > or in thread 3. Furthermore, the details of the call stacks printed > depend on the glibc library used during the test. So I would like to > change this test such that only the number of errors is compared > during the regression tests instead of the full output. I would like > to have a facility to suppress the output of the error messages > generated by a tool while keeping the error count summary. Should I > implement such functionality in the Valgrind core or in the exp-drd > tool ? For this specific problem, it would be easier to use a filter script for the test output, to remove the information you don't want. See the comment at the top of tests/vg_regtest, particular the stuff about "stderr_filter"/"stdout_filter". Nick |
|
From: <sv...@va...> - 2008-02-25 20:41:06
|
Author: bart Date: 2008-02-25 20:41:07 +0000 (Mon, 25 Feb 2008) New Revision: 7467 Log: Added to repository. Added: trunk/exp-drd/tests/tc11_XCHG.stdout.exp Added: trunk/exp-drd/tests/tc11_XCHG.stdout.exp =================================================================== --- trunk/exp-drd/tests/tc11_XCHG.stdout.exp (rev 0) +++ trunk/exp-drd/tests/tc11_XCHG.stdout.exp 2008-02-25 20:41:07 UTC (rev 7467) @@ -0,0 +1 @@ +success |
|
From: <sv...@va...> - 2008-02-25 20:40:49
|
Author: bart
Date: 2008-02-25 20:40:52 +0000 (Mon, 25 Feb 2008)
New Revision: 7466
Log:
Fixed typo.
Modified:
trunk/exp-drd/tests/Makefile.am
Modified: trunk/exp-drd/tests/Makefile.am
===================================================================
--- trunk/exp-drd/tests/Makefile.am 2008-02-25 20:34:15 UTC (rev 7465)
+++ trunk/exp-drd/tests/Makefile.am 2008-02-25 20:40:52 UTC (rev 7466)
@@ -62,7 +62,7 @@
tc10_rec_lock.vgtest \
tc10_rec_lock.stderr.exp \
tc11_XCHG.vgtest \
- tc11_XCHG.stderr.exp tc11_XCHG.stderr.exp \
+ tc11_XCHG.stderr.exp tc11_XCHG.stdout.exp \
tc12_rwl_trivial.vgtest \
tc12_rwl_trivial.stderr.exp \
tc13_laog1.vgtest \
|
|
From: <sv...@va...> - 2008-02-25 20:34:15
|
Author: bart
Date: 2008-02-25 20:34:15 +0000 (Mon, 25 Feb 2008)
New Revision: 7465
Log:
Fixed more Fedora 8 regression test failures.
Added:
trunk/exp-drd/tests/tc07_hbl1.stdout.exp
trunk/exp-drd/tests/tc21_pthonce.stdout.exp
Modified:
trunk/exp-drd/tests/Makefile.am
Modified: trunk/exp-drd/tests/Makefile.am
===================================================================
--- trunk/exp-drd/tests/Makefile.am 2008-02-25 20:25:41 UTC (rev 7464)
+++ trunk/exp-drd/tests/Makefile.am 2008-02-25 20:34:15 UTC (rev 7465)
@@ -56,13 +56,13 @@
tc04_free_lock.vgtest \
tc04_free_lock.stderr.exp \
tc07_hbl1.vgtest \
- tc07_hbl1.stderr.exp \
+ tc07_hbl1.stderr.exp tc07_hbl1.stdout.exp \
tc09_bad_unlock.vgtest \
tc09_bad_unlock.stderr.exp \
tc10_rec_lock.vgtest \
tc10_rec_lock.stderr.exp \
tc11_XCHG.vgtest \
- tc11_XCHG.stderr.exp \
+ tc11_XCHG.stderr.exp tc11_XCHG.stderr.exp \
tc12_rwl_trivial.vgtest \
tc12_rwl_trivial.stderr.exp \
tc13_laog1.vgtest \
@@ -80,7 +80,7 @@
tc20_verifywrap.vgtest \
tc20_verifywrap.stderr.exp \
tc21_pthonce.vgtest \
- tc21_pthonce.stderr.exp \
+ tc21_pthonce.stderr.exp tc21_pthonce.stdout.exp \
tc22_exit_w_lock.vgtest \
tc22_exit_w_lock.stderr.exp \
tc23_bogus_condwait.vgtest \
Added: trunk/exp-drd/tests/tc07_hbl1.stdout.exp
===================================================================
--- trunk/exp-drd/tests/tc07_hbl1.stdout.exp (rev 0)
+++ trunk/exp-drd/tests/tc07_hbl1.stdout.exp 2008-02-25 20:34:15 UTC (rev 7465)
@@ -0,0 +1 @@
+x = 2
Added: trunk/exp-drd/tests/tc21_pthonce.stdout.exp
===================================================================
--- trunk/exp-drd/tests/tc21_pthonce.stdout.exp (rev 0)
+++ trunk/exp-drd/tests/tc21_pthonce.stdout.exp 2008-02-25 20:34:15 UTC (rev 7465)
@@ -0,0 +1,4 @@
+welcome: Welcome
+child: Hi, I'm thread 0
+child: Hi, I'm thread 1
+main: Goodbye
|
|
From: <sv...@va...> - 2008-02-25 20:25:45
|
Author: bart
Date: 2008-02-25 20:25:41 +0000 (Mon, 25 Feb 2008)
New Revision: 7464
Log:
Fixed most Fedora 8 regression test failures.
Added:
trunk/exp-drd/tests/hg03_inherit.stderr.exp2
trunk/exp-drd/tests/hg04_race.stderr.exp2
trunk/exp-drd/tests/pth_barrier.stderr.exp-thread2b
trunk/exp-drd/tests/tc01_simple_race.stderr.exp2
trunk/exp-drd/tests/tc07_hbl1.stderr.exp2
trunk/exp-drd/tests/tc11_XCHG.stderr.exp2
trunk/exp-drd/tests/tc16_byterace.stderr.exp2
trunk/exp-drd/tests/tc22_exit_w_lock.stderr.exp-32bit
Modified:
trunk/exp-drd/tests/hg03_inherit.stderr.exp
trunk/exp-drd/tests/hg04_race.stderr.exp
trunk/exp-drd/tests/hg05_race2.stderr.exp
trunk/exp-drd/tests/tc01_simple_race.stderr.exp
trunk/exp-drd/tests/tc07_hbl1.stderr.exp
trunk/exp-drd/tests/tc11_XCHG.stderr.exp
trunk/exp-drd/tests/tc16_byterace.stderr.exp
Modified: trunk/exp-drd/tests/hg03_inherit.stderr.exp
===================================================================
--- trunk/exp-drd/tests/hg03_inherit.stderr.exp 2008-02-25 20:25:10 UTC (rev 7463)
+++ trunk/exp-drd/tests/hg03_inherit.stderr.exp 2008-02-25 20:25:41 UTC (rev 7464)
@@ -5,7 +5,7 @@
by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
by 0x........: start_thread (in libpthread-?.?.so)
by 0x........: clone (in /...libc...)
-Allocation context: unknown
+Allocation context: shared (offset 4, size 8) in hg03_inherit, NONE:BSS
Other segment start (thread 1)
at 0x........: pthread_join (drd_intercepts.c:?)
by 0x........: main (hg03_inherit.c:49)
@@ -19,7 +19,7 @@
by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
by 0x........: start_thread (in libpthread-?.?.so)
by 0x........: clone (in /...libc...)
-Allocation context: unknown
+Allocation context: shared (offset 4, size 8) in hg03_inherit, NONE:BSS
Other segment start (thread 1)
at 0x........: pthread_join (drd_intercepts.c:?)
by 0x........: main (hg03_inherit.c:49)
Added: trunk/exp-drd/tests/hg03_inherit.stderr.exp2
===================================================================
--- trunk/exp-drd/tests/hg03_inherit.stderr.exp2 (rev 0)
+++ trunk/exp-drd/tests/hg03_inherit.stderr.exp2 2008-02-25 20:25:41 UTC (rev 7464)
@@ -0,0 +1,31 @@
+
+Thread 3:
+Conflicting store by thread 3 at 0x........ size 4
+ at 0x........: t2 (hg03_inherit.c:28)
+ by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
+ by 0x........: start_thread (in libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Allocation context: unknown
+Other segment start (thread 1)
+ at 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (hg03_inherit.c:49)
+Other segment end (thread 1)
+ at 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (hg03_inherit.c:63)
+
+Conflicting store by thread 3 at 0x........ size 4
+ at 0x........: t2 (hg03_inherit.c:29)
+ by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
+ by 0x........: start_thread (in libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Allocation context: unknown
+Other segment start (thread 1)
+ at 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (hg03_inherit.c:49)
+Other segment end (thread 1)
+ at 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (hg03_inherit.c:63)
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Modified: trunk/exp-drd/tests/hg04_race.stderr.exp
===================================================================
--- trunk/exp-drd/tests/hg04_race.stderr.exp 2008-02-25 20:25:10 UTC (rev 7463)
+++ trunk/exp-drd/tests/hg04_race.stderr.exp 2008-02-25 20:25:41 UTC (rev 7464)
@@ -5,7 +5,7 @@
by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
by 0x........: start_thread (in libpthread-?.?.so)
by 0x........: clone (in /...libc...)
-Allocation context: unknown
+Allocation context: shared (offset 0, size 4) in hg04_race, NONE:BSS
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
@@ -16,7 +16,7 @@
by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
by 0x........: start_thread (in libpthread-?.?.so)
by 0x........: clone (in /...libc...)
-Allocation context: unknown
+Allocation context: shared (offset 0, size 4) in hg04_race, NONE:BSS
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
Added: trunk/exp-drd/tests/hg04_race.stderr.exp2
===================================================================
--- trunk/exp-drd/tests/hg04_race.stderr.exp2 (rev 0)
+++ trunk/exp-drd/tests/hg04_race.stderr.exp2 2008-02-25 20:25:41 UTC (rev 7464)
@@ -0,0 +1,25 @@
+
+Thread 2:
+Conflicting load by thread 2 at 0x........ size 4
+ at 0x........: th (hg04_race.c:10)
+ by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
+ by 0x........: start_thread (in libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Allocation context: unknown
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 2 at 0x........ size 4
+ at 0x........: th (hg04_race.c:10)
+ by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
+ by 0x........: start_thread (in libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Allocation context: unknown
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Modified: trunk/exp-drd/tests/hg05_race2.stderr.exp
===================================================================
--- trunk/exp-drd/tests/hg05_race2.stderr.exp 2008-02-25 20:25:10 UTC (rev 7463)
+++ trunk/exp-drd/tests/hg05_race2.stderr.exp 2008-02-25 20:25:41 UTC (rev 7464)
@@ -5,7 +5,7 @@
by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
by 0x........: start_thread (in libpthread-?.?.so)
by 0x........: clone (in /...libc...)
-Allocation context: stack of thread 1, offset -5584
+Allocation context: stack of thread 1, offset ...
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
@@ -16,7 +16,7 @@
by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
by 0x........: start_thread (in libpthread-?.?.so)
by 0x........: clone (in /...libc...)
-Allocation context: stack of thread 1, offset -5584
+Allocation context: stack of thread 1, offset ...
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
Added: trunk/exp-drd/tests/pth_barrier.stderr.exp-thread2b
===================================================================
--- trunk/exp-drd/tests/pth_barrier.stderr.exp-thread2b (rev 0)
+++ trunk/exp-drd/tests/pth_barrier.stderr.exp-thread2b 2008-02-25 20:25:41 UTC (rev 7464)
@@ -0,0 +1,25 @@
+
+Thread 2:
+Conflicting store by thread 2 at 0x........ size 4
+ at 0x........: threadfunc (pth_barrier.c:?)
+ by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
+ by 0x........: start_thread (in libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Allocation context: heap, offset 0 in block at 0x........ of size 4
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: barriers_and_races (pth_barrier.c:?)
+ by 0x........: main (pth_barrier.c:?)
+Other segment start (thread 3)
+ at 0x........: pthread_barrier_wait (drd_intercepts.c:?)
+ by 0x........: threadfunc (pth_barrier.c:?)
+ by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
+ by 0x........: start_thread (in libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment end (thread 3)
+ at 0x........: __lll_lock_wait (in libpthread-?.?.so)
+ by 0x........: threadfunc (pth_barrier.c:?)
+ by 0x........: vg_thread_wrapper (drd_intercepts.c:?)
+ by 0x........: start_thread (in libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Modified: trunk/exp-drd/tests/tc01_simple_race.stderr.exp
===================================================================
--- trunk/exp-drd/tests/tc01_simple_race.stderr.exp 2008-02-25 20:25:10 UTC (rev 7463)
+++ trunk/exp-drd/tests/tc01_simple_race.stderr.exp 2008-02-25 20:25:41 UTC (rev 7464)
@@ -1,7 +1,7 @@
Conflicting load by thread 1 at 0x........ size 4
at 0x........: main (tc01_simple_race.c:28)
-Allocation context: unknown
+Allocation context: x (offset 0, size 4) in tc01_simple_race, NONE:BSS
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
@@ -9,7 +9,7 @@
Conflicting store by thread 1 at 0x........ size 4
at 0x........: main (tc01_simple_race.c:28)
-Allocation context: unknown
+Allocation context: x (offset 0, size 4) in tc01_simple_race, NONE:BSS
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
Added: trunk/exp-drd/tests/tc01_simple_race.stderr.exp2
===================================================================
--- trunk/exp-drd/tests/tc01_simple_race.stderr.exp2 (rev 0)
+++ trunk/exp-drd/tests/tc01_simple_race.stderr.exp2 2008-02-25 20:25:41 UTC (rev 7464)
@@ -0,0 +1,18 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (tc01_simple_race.c:28)
+Allocation context: unknown
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (tc01_simple_race.c:28)
+Allocation context: unknown
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Modified: trunk/exp-drd/tests/tc07_hbl1.stderr.exp
===================================================================
--- trunk/exp-drd/tests/tc07_hbl1.stderr.exp 2008-02-25 20:25:10 UTC (rev 7463)
+++ trunk/exp-drd/tests/tc07_hbl1.stderr.exp 2008-02-25 20:25:41 UTC (rev 7464)
@@ -1,7 +1,7 @@
Conflicting load by thread 1 at 0x........ size 4
at 0x........: main (tc07_hbl1.c:68)
-Allocation context: unknown
+Allocation context: x (offset 0, size 4) in tc07_hbl1, NONE:BSS
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
@@ -9,7 +9,7 @@
Conflicting store by thread 1 at 0x........ size 4
at 0x........: main (tc07_hbl1.c:68)
-Allocation context: unknown
+Allocation context: x (offset 0, size 4) in tc07_hbl1, NONE:BSS
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
Added: trunk/exp-drd/tests/tc07_hbl1.stderr.exp2
===================================================================
--- trunk/exp-drd/tests/tc07_hbl1.stderr.exp2 (rev 0)
+++ trunk/exp-drd/tests/tc07_hbl1.stderr.exp2 2008-02-25 20:25:41 UTC (rev 7464)
@@ -0,0 +1,18 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (tc07_hbl1.c:68)
+Allocation context: unknown
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (tc07_hbl1.c:68)
+Allocation context: unknown
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Modified: trunk/exp-drd/tests/tc11_XCHG.stderr.exp
===================================================================
--- trunk/exp-drd/tests/tc11_XCHG.stderr.exp 2008-02-25 20:25:10 UTC (rev 7463)
+++ trunk/exp-drd/tests/tc11_XCHG.stderr.exp 2008-02-25 20:25:41 UTC (rev 7464)
@@ -1,7 +1,7 @@
Conflicting load by thread 1 at 0x........ size 4
at 0x........: main (tc11_XCHG.c:78)
-Allocation context: unknown
+Allocation context: x (offset 0, size 4) in tc11_XCHG, NONE:BSS
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
@@ -9,7 +9,7 @@
Conflicting store by thread 1 at 0x........ size 4
at 0x........: main (tc11_XCHG.c:78)
-Allocation context: unknown
+Allocation context: x (offset 0, size 4) in tc11_XCHG, NONE:BSS
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
Added: trunk/exp-drd/tests/tc11_XCHG.stderr.exp2
===================================================================
--- trunk/exp-drd/tests/tc11_XCHG.stderr.exp2 (rev 0)
+++ trunk/exp-drd/tests/tc11_XCHG.stderr.exp2 2008-02-25 20:25:41 UTC (rev 7464)
@@ -0,0 +1,18 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (tc11_XCHG.c:78)
+Allocation context: unknown
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (tc11_XCHG.c:78)
+Allocation context: unknown
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Modified: trunk/exp-drd/tests/tc16_byterace.stderr.exp
===================================================================
--- trunk/exp-drd/tests/tc16_byterace.stderr.exp 2008-02-25 20:25:10 UTC (rev 7463)
+++ trunk/exp-drd/tests/tc16_byterace.stderr.exp 2008-02-25 20:25:41 UTC (rev 7464)
@@ -1,7 +1,7 @@
Conflicting load by thread 1 at 0x........ size 1
at 0x........: main (tc16_byterace.c:34)
-Allocation context: unknown
+Allocation context: bytes (offset 4, size 10) in tc16_byterace, NONE:BSS
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
@@ -9,7 +9,7 @@
Conflicting store by thread 1 at 0x........ size 1
at 0x........: main (tc16_byterace.c:34)
-Allocation context: unknown
+Allocation context: bytes (offset 4, size 10) in tc16_byterace, NONE:BSS
Other segment start (thread 2)
(thread finished, call stack no longer available)
Other segment end (thread 2)
Added: trunk/exp-drd/tests/tc16_byterace.stderr.exp2
===================================================================
--- trunk/exp-drd/tests/tc16_byterace.stderr.exp2 (rev 0)
+++ trunk/exp-drd/tests/tc16_byterace.stderr.exp2 2008-02-25 20:25:41 UTC (rev 7464)
@@ -0,0 +1,18 @@
+
+Conflicting load by thread 1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:34)
+Allocation context: unknown
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 1
+ at 0x........: main (tc16_byterace.c:34)
+Allocation context: unknown
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Added: trunk/exp-drd/tests/tc22_exit_w_lock.stderr.exp-32bit
===================================================================
--- trunk/exp-drd/tests/tc22_exit_w_lock.stderr.exp-32bit (rev 0)
+++ trunk/exp-drd/tests/tc22_exit_w_lock.stderr.exp-32bit 2008-02-25 20:25:41 UTC (rev 7464)
@@ -0,0 +1,134 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_cache_lock (offset 0, size 4) in libpthread-?.?.so, libpthread.so.0:BSS
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_cache_lock (offset 0, size 4) in libpthread-?.?.so, libpthread.so.0:BSS
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_used (offset 4, size 8) in libpthread-?.?.so, libpthread.so.0:Data
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_used (offset 0, size 8) in libpthread-?.?.so, libpthread.so.0:Data
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_cache (offset 0, size 8) in libpthread-?.?.so, libpthread.so.0:Data
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_cache (offset 4, size 8) in libpthread-?.?.so, libpthread.so.0:Data
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_cache_actsize (offset 0, size 4) in libpthread-?.?.so, libpthread.so.0:BSS
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_cache (offset 0, size 8) in libpthread-?.?.so, libpthread.so.0:Data
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_cache_actsize (offset 0, size 4) in libpthread-?.?.so, libpthread.so.0:BSS
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_cache_lock (offset 0, size 4) in libpthread-?.?.so, libpthread.so.0:BSS
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: __deallocate_stack (in libpthread-?.?.so)
+ by 0x........: __free_tcb (in libpthread-?.?.so)
+ by 0x........: pthread_join (in libpthread-?.?.so)
+ by 0x........: pthread_join (drd_intercepts.c:?)
+ by 0x........: main (tc22_exit_w_lock.c:43)
+Allocation context: stack_cache_lock (offset 0, size 4) in libpthread-?.?.so, libpthread.so.0:BSS
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
|
|
From: <sv...@va...> - 2008-02-25 20:25:21
|
Author: bart Date: 2008-02-25 20:25:10 +0000 (Mon, 25 Feb 2008) New Revision: 7463 Log: Filter out stack offset of stack variables. Modified: trunk/exp-drd/tests/filter_stderr Modified: trunk/exp-drd/tests/filter_stderr =================================================================== --- trunk/exp-drd/tests/filter_stderr 2008-02-25 19:58:25 UTC (rev 7462) +++ trunk/exp-drd/tests/filter_stderr 2008-02-25 20:25:10 UTC (rev 7463) @@ -10,6 +10,7 @@ # Remove line numbers from stack traces. sed \ -e "/^exp-drd, a data race detector\.$/d" \ +-e "s/^Allocation context: stack of thread \([0-9]*\), offset -[0-9]*$/Allocation context: stack of thread \1, offset .../" \ -e "/^NOTE: This is an Experimental-Class Valgrind Tool.$/d" \ -e "/^Copyright (C) 2006-200., and GNU GPL'd, by Bart Van Assche.$/d" \ -e "s/\(pthread_create.c:[0-9]*\)/in libpthread-?.?.so/" \ |
|
From: <sv...@va...> - 2008-02-25 19:58:23
|
Author: bart Date: 2008-02-25 19:58:25 +0000 (Mon, 25 Feb 2008) New Revision: 7462 Log: Added more of Helgrind's regression tests. Added: trunk/exp-drd/tests/hg01_all_ok.stderr.exp trunk/exp-drd/tests/hg01_all_ok.vgtest trunk/exp-drd/tests/hg02_deadlock.stderr.exp trunk/exp-drd/tests/hg02_deadlock.vgtest trunk/exp-drd/tests/hg03_inherit.stderr.exp trunk/exp-drd/tests/hg03_inherit.vgtest trunk/exp-drd/tests/hg04_race.stderr.exp trunk/exp-drd/tests/hg04_race.vgtest trunk/exp-drd/tests/hg05_race2.stderr.exp trunk/exp-drd/tests/hg05_race2.vgtest trunk/exp-drd/tests/hg06_readshared.stderr.exp trunk/exp-drd/tests/hg06_readshared.vgtest trunk/exp-drd/tests/tc01_simple_race.stderr.exp trunk/exp-drd/tests/tc01_simple_race.vgtest trunk/exp-drd/tests/tc02_simple_tls.stderr.exp trunk/exp-drd/tests/tc02_simple_tls.vgtest trunk/exp-drd/tests/tc03_re_excl.stderr.exp trunk/exp-drd/tests/tc03_re_excl.vgtest trunk/exp-drd/tests/tc04_free_lock.stderr.exp trunk/exp-drd/tests/tc04_free_lock.vgtest trunk/exp-drd/tests/tc07_hbl1.stderr.exp trunk/exp-drd/tests/tc07_hbl1.vgtest trunk/exp-drd/tests/tc09_bad_unlock.stderr.exp trunk/exp-drd/tests/tc09_bad_unlock.vgtest trunk/exp-drd/tests/tc10_rec_lock.stderr.exp trunk/exp-drd/tests/tc10_rec_lock.vgtest trunk/exp-drd/tests/tc11_XCHG.stderr.exp trunk/exp-drd/tests/tc11_XCHG.vgtest trunk/exp-drd/tests/tc12_rwl_trivial.stderr.exp trunk/exp-drd/tests/tc12_rwl_trivial.vgtest trunk/exp-drd/tests/tc13_laog1.stderr.exp trunk/exp-drd/tests/tc13_laog1.vgtest trunk/exp-drd/tests/tc15_laog_lockdel.stderr.exp trunk/exp-drd/tests/tc15_laog_lockdel.vgtest trunk/exp-drd/tests/tc16_byterace.stderr.exp trunk/exp-drd/tests/tc16_byterace.vgtest trunk/exp-drd/tests/tc19_shadowmem.stderr.exp trunk/exp-drd/tests/tc19_shadowmem.vgtest trunk/exp-drd/tests/tc20_verifywrap.stderr.exp trunk/exp-drd/tests/tc20_verifywrap.vgtest trunk/exp-drd/tests/tc21_pthonce.stderr.exp trunk/exp-drd/tests/tc21_pthonce.vgtest trunk/exp-drd/tests/tc22_exit_w_lock.stderr.exp trunk/exp-drd/tests/tc22_exit_w_lock.vgtest trunk/exp-drd/tests/tc23_bogus_condwait.stderr.exp trunk/exp-drd/tests/tc23_bogus_condwait.vgtest trunk/exp-drd/tests/tc24_nonzero_sem.stderr.exp trunk/exp-drd/tests/tc24_nonzero_sem.vgtest Modified: trunk/exp-drd/tests/Makefile.am Modified: trunk/exp-drd/tests/Makefile.am =================================================================== --- trunk/exp-drd/tests/Makefile.am 2008-02-25 19:46:14 UTC (rev 7461) +++ trunk/exp-drd/tests/Makefile.am 2008-02-25 19:58:25 UTC (rev 7462) @@ -15,6 +15,18 @@ fp_race.stderr.exp2 \ fp_race2.vgtest \ fp_race2.stdout.exp fp_race2.stderr.exp \ + hg01_all_ok.vgtest \ + hg01_all_ok.stderr.exp \ + hg02_deadlock.vgtest \ + hg02_deadlock.stderr.exp \ + hg03_inherit.vgtest \ + hg03_inherit.stderr.exp \ + hg04_race.vgtest \ + hg04_race.stderr.exp \ + hg05_race2.vgtest \ + hg05_race2.stderr.exp \ + hg06_readshared.vgtest \ + hg06_readshared.stderr.exp \ matinv.vgtest \ matinv.stdout.exp matinv.stderr.exp \ pth_barrier.vgtest \ @@ -35,10 +47,46 @@ sem_as_mutex.stderr.exp sem_as_mutex.stderr.exp2 \ sem_as_mutex2.vgtest \ sem_as_mutex2.stderr.exp \ - tc17_sembar.vgtest \ - tc17_sembar.stderr.exp \ - tc18_semabuse.vgtest \ - tc18_semabuse.stderr.exp \ + tc01_simple_race.vgtest \ + tc01_simple_race.stderr.exp \ + tc02_simple_tls.vgtest \ + tc02_simple_tls.stderr.exp \ + tc03_re_excl.vgtest \ + tc03_re_excl.stderr.exp \ + tc04_free_lock.vgtest \ + tc04_free_lock.stderr.exp \ + tc07_hbl1.vgtest \ + tc07_hbl1.stderr.exp \ + tc09_bad_unlock.vgtest \ + tc09_bad_unlock.stderr.exp \ + tc10_rec_lock.vgtest \ + tc10_rec_lock.stderr.exp \ + tc11_XCHG.vgtest \ + tc11_XCHG.stderr.exp \ + tc12_rwl_trivial.vgtest \ + tc12_rwl_trivial.stderr.exp \ + tc13_laog1.vgtest \ + tc13_laog1.stderr.exp \ + tc15_laog_lockdel.vgtest \ + tc15_laog_lockdel.stderr.exp \ + tc16_byterace.vgtest \ + tc16_byterace.stderr.exp \ + tc17_sembar.vgtest \ + tc17_sembar.stderr.exp \ + tc18_semabuse.vgtest \ + tc18_semabuse.stderr.exp \ + tc19_shadowmem.vgtest \ + tc19_shadowmem.stderr.exp \ + tc20_verifywrap.vgtest \ + tc20_verifywrap.stderr.exp \ + tc21_pthonce.vgtest \ + tc21_pthonce.stderr.exp \ + tc22_exit_w_lock.vgtest \ + tc22_exit_w_lock.stderr.exp \ + tc23_bogus_condwait.vgtest \ + tc23_bogus_condwait.stderr.exp \ + tc24_nonzero_sem.vgtest \ + tc24_nonzero_sem.stderr.exp \ sigalrm.vgtest \ sigalrm.stdout.exp sigalrm.stderr.exp @@ -46,48 +94,150 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/include -I$(top_builddir)/include AM_CXXFLAGS = $(AM_CFLAGS) -check_PROGRAMS = \ - fp_race \ - matinv \ - pth_barrier \ - pth_broadcast \ - pth_cond_race \ - pth_create_chain \ - pth_detached \ - sem_as_mutex \ - sigalrm \ - tc17_sembar \ - tc18_semabuse +check_PROGRAMS = \ + fp_race \ + hg01_all_ok \ + hg02_deadlock \ + hg03_inherit \ + hg04_race \ + hg05_race2 \ + hg06_readshared \ + matinv \ + pth_barrier \ + pth_broadcast \ + pth_cond_race \ + pth_create_chain \ + pth_detached \ + sem_as_mutex \ + sigalrm \ + tc01_simple_race \ + tc02_simple_tls \ + tc03_re_excl \ + tc04_free_lock \ + tc07_hbl1 \ + tc09_bad_unlock \ + tc10_rec_lock \ + tc11_XCHG \ + tc12_rwl_trivial \ + tc13_laog1 \ + tc15_laog_lockdel \ + tc16_byterace \ + tc17_sembar \ + tc18_semabuse \ + tc19_shadowmem \ + tc20_verifywrap \ + tc21_pthonce \ + tc22_exit_w_lock \ + tc23_bogus_condwait \ + tc24_nonzero_sem -fp_race_SOURCES = fp_race.c -fp_race_LDADD = -lpthread +# tc05_simple_race -- result depends on scheduler. +# tc06_two_races -- result depends on scheduler. +# tc08_hbl2 -- result depends on scheduler. +# tc14_laog_dinphils -- hangs. -matinv_SOURCES = matinv.c -matinv_LDADD = -lpthread -lm -pth_barrier_SOURCES = pth_barrier.c -pth_barrier_LDADD = -lpthread +fp_race_SOURCES = fp_race.c +fp_race_LDADD = -lpthread -pth_broadcast_SOURCES = pth_broadcast.c -pth_broadcast_LDADD = -lpthread +hg01_all_ok_SOURCES = ../../helgrind/tests/hg01_all_ok.c +hg01_all_ok_LDADD = -lpthread -pth_cond_race_SOURCES = pth_cond_race.c -pth_cond_race_LDADD = -lpthread +hg02_deadlock_SOURCES = ../../helgrind/tests/hg02_deadlock.c +hg02_deadlock_LDADD = -lpthread -pth_create_chain_SOURCES = pth_create_chain.c -pth_create_chain_LDADD = -lpthread +hg03_inherit_SOURCES = ../../helgrind/tests/hg03_inherit.c +hg03_inherit_LDADD = -lpthread -pth_detached_SOURCES = pth_detached.c -pth_detached_LDADD = -lpthread +hg04_race_SOURCES = ../../helgrind/tests/hg04_race.c +hg04_race_LDADD = -lpthread -sem_as_mutex_SOURCES = sem_as_mutex.c -sem_as_mutex_LDADD = -lpthread +hg05_race2_SOURCES = ../../helgrind/tests/hg05_race2.c +hg05_race2_LDADD = -lpthread -sigalrm_SOURCES = sigalrm.c -sigalrm_LDADD = -lpthread +hg06_readshared_SOURCES = ../../helgrind/tests/hg06_readshared.c +hg06_readshared_LDADD = -lpthread -tc17_sembar_SOURCES = ../../helgrind/tests/tc17_sembar.c -tc17_sembar_LDADD = -lpthread +matinv_SOURCES = matinv.c +matinv_LDADD = -lpthread -lm -tc18_semabuse_SOURCES = ../../helgrind/tests/tc18_semabuse.c -tc18_semabuse_LDADD = -lpthread +pth_barrier_SOURCES = pth_barrier.c +pth_barrier_LDADD = -lpthread + +pth_broadcast_SOURCES = pth_broadcast.c +pth_broadcast_LDADD = -lpthread + +pth_cond_race_SOURCES = pth_cond_race.c +pth_cond_race_LDADD = -lpthread + +pth_create_chain_SOURCES = pth_create_chain.c +pth_create_chain_LDADD = -lpthread + +pth_detached_SOURCES = pth_detached.c +pth_detached_LDADD = -lpthread + +sem_as_mutex_SOURCES = sem_as_mutex.c +sem_as_mutex_LDADD = -lpthread + +sigalrm_SOURCES = sigalrm.c +sigalrm_LDADD = -lpthread + +tc01_simple_race_SOURCES = ../../helgrind/tests/tc01_simple_race.c +tc01_simple_race_LDADD = -lpthread + +tc02_simple_tls_SOURCES = ../../helgrind/tests/tc02_simple_tls.c +tc02_simple_tls_LDADD = -lpthread + +tc03_re_excl_SOURCES = ../../helgrind/tests/tc03_re_excl.c +tc03_re_excl_LDADD = -lpthread + +tc04_free_lock_SOURCES = ../../helgrind/tests/tc04_free_lock.c +tc04_free_lock_LDADD = -lpthread + +tc07_hbl1_SOURCES = ../../helgrind/tests/tc07_hbl1.c +tc07_hbl1_LDADD = -lpthread + +tc09_bad_unlock_SOURCES = ../../helgrind/tests/tc09_bad_unlock.c +tc09_bad_unlock_LDADD = -lpthread + +tc10_rec_lock_SOURCES = ../../helgrind/tests/tc10_rec_lock.c +tc10_rec_lock_LDADD = -lpthread + +tc11_XCHG_SOURCES = ../../helgrind/tests/tc11_XCHG.c +tc11_XCHG_LDADD = -lpthread + +tc12_rwl_trivial_SOURCES = ../../helgrind/tests/tc12_rwl_trivial.c +tc12_rwl_trivial_LDADD = -lpthread + +tc13_laog1_SOURCES = ../../helgrind/tests/tc13_laog1.c +tc13_laog1_LDADD = -lpthread + +tc15_laog_lockdel_SOURCES = ../../helgrind/tests/tc15_laog_lockdel.c +tc15_laog_lockdel_LDADD = -lpthread + +tc16_byterace_SOURCES = ../../helgrind/tests/tc16_byterace.c +tc16_byterace_LDADD = -lpthread + +tc17_sembar_SOURCES = ../../helgrind/tests/tc17_sembar.c +tc17_sembar_LDADD = -lpthread + +tc18_semabuse_SOURCES = ../../helgrind/tests/tc18_semabuse.c +tc18_semabuse_LDADD = -lpthread + +tc19_shadowmem_SOURCES = ../../helgrind/tests/tc19_shadowmem.c +tc19_shadowmem_LDADD = -lpthread + +tc20_verifywrap_SOURCES = ../../helgrind/tests/tc20_verifywrap.c +tc20_verifywrap_LDADD = -lpthread + +tc21_pthonce_SOURCES = ../../helgrind/tests/tc21_pthonce.c +tc21_pthonce_LDADD = -lpthread + +tc22_exit_w_lock_SOURCES = ../../helgrind/tests/tc22_exit_w_lock.c +tc22_exit_w_lock_LDADD = -lpthread + +tc23_bogus_condwait_SOURCES = ../../helgrind/tests/tc23_bogus_condwait.c +tc23_bogus_condwait_LDADD = -lpthread + +tc24_nonzero_sem_SOURCES = ../../helgrind/tests/tc24_nonzero_sem.c +tc24_nonzero_sem_LDADD = -lpthread Added: trunk/exp-drd/tests/hg01_all_ok.stderr.exp =================================================================== --- trunk/exp-drd/tests/hg01_all_ok.stderr.exp (rev 0) +++ trunk/exp-drd/tests/hg01_all_ok.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,3 @@ + + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/hg01_all_ok.vgtest =================================================================== --- trunk/exp-drd/tests/hg01_all_ok.vgtest (rev 0) +++ trunk/exp-drd/tests/hg01_all_ok.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: hg01_all_ok Added: trunk/exp-drd/tests/hg02_deadlock.stderr.exp =================================================================== --- trunk/exp-drd/tests/hg02_deadlock.stderr.exp (rev 0) +++ trunk/exp-drd/tests/hg02_deadlock.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,3 @@ + + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/hg02_deadlock.vgtest =================================================================== --- trunk/exp-drd/tests/hg02_deadlock.vgtest (rev 0) +++ trunk/exp-drd/tests/hg02_deadlock.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: hg02_deadlock Added: trunk/exp-drd/tests/hg03_inherit.stderr.exp =================================================================== --- trunk/exp-drd/tests/hg03_inherit.stderr.exp (rev 0) +++ trunk/exp-drd/tests/hg03_inherit.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,31 @@ + +Thread 3: +Conflicting store by thread 3 at 0x........ size 4 + at 0x........: t2 (hg03_inherit.c:28) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Allocation context: unknown +Other segment start (thread 1) + at 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (hg03_inherit.c:49) +Other segment end (thread 1) + at 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (hg03_inherit.c:63) + +Conflicting store by thread 3 at 0x........ size 4 + at 0x........: t2 (hg03_inherit.c:29) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Allocation context: unknown +Other segment start (thread 1) + at 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (hg03_inherit.c:49) +Other segment end (thread 1) + at 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (hg03_inherit.c:63) + +ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/hg03_inherit.vgtest =================================================================== --- trunk/exp-drd/tests/hg03_inherit.vgtest (rev 0) +++ trunk/exp-drd/tests/hg03_inherit.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: hg03_inherit Added: trunk/exp-drd/tests/hg04_race.stderr.exp =================================================================== --- trunk/exp-drd/tests/hg04_race.stderr.exp (rev 0) +++ trunk/exp-drd/tests/hg04_race.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,25 @@ + +Thread 2: +Conflicting load by thread 2 at 0x........ size 4 + at 0x........: th (hg04_race.c:10) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 2 at 0x........ size 4 + at 0x........: th (hg04_race.c:10) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/hg04_race.vgtest =================================================================== --- trunk/exp-drd/tests/hg04_race.vgtest (rev 0) +++ trunk/exp-drd/tests/hg04_race.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: hg04_race Added: trunk/exp-drd/tests/hg05_race2.stderr.exp =================================================================== --- trunk/exp-drd/tests/hg05_race2.stderr.exp (rev 0) +++ trunk/exp-drd/tests/hg05_race2.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,25 @@ + +Thread 2: +Conflicting load by thread 2 at 0x........ size 4 + at 0x........: th (hg05_race2.c:17) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Allocation context: stack of thread 1, offset -5584 +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 2 at 0x........ size 4 + at 0x........: th (hg05_race2.c:17) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Allocation context: stack of thread 1, offset -5584 +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/hg05_race2.vgtest =================================================================== --- trunk/exp-drd/tests/hg05_race2.vgtest (rev 0) +++ trunk/exp-drd/tests/hg05_race2.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: hg05_race2 Added: trunk/exp-drd/tests/hg06_readshared.stderr.exp =================================================================== --- trunk/exp-drd/tests/hg06_readshared.stderr.exp (rev 0) +++ trunk/exp-drd/tests/hg06_readshared.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,3 @@ + + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/hg06_readshared.vgtest =================================================================== --- trunk/exp-drd/tests/hg06_readshared.vgtest (rev 0) +++ trunk/exp-drd/tests/hg06_readshared.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: hg06_readshared Added: trunk/exp-drd/tests/tc01_simple_race.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc01_simple_race.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc01_simple_race.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,18 @@ + +Conflicting load by thread 1 at 0x........ size 4 + at 0x........: main (tc01_simple_race.c:28) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 4 + at 0x........: main (tc01_simple_race.c:28) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc01_simple_race.vgtest =================================================================== --- trunk/exp-drd/tests/tc01_simple_race.vgtest (rev 0) +++ trunk/exp-drd/tests/tc01_simple_race.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc01_simple_race Added: trunk/exp-drd/tests/tc02_simple_tls.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc02_simple_tls.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc02_simple_tls.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,3 @@ + + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc02_simple_tls.vgtest =================================================================== --- trunk/exp-drd/tests/tc02_simple_tls.vgtest (rev 0) +++ trunk/exp-drd/tests/tc02_simple_tls.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc02_simple_tls Added: trunk/exp-drd/tests/tc03_re_excl.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc03_re_excl.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc03_re_excl.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,3 @@ + + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc03_re_excl.vgtest =================================================================== --- trunk/exp-drd/tests/tc03_re_excl.vgtest (rev 0) +++ trunk/exp-drd/tests/tc03_re_excl.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc03_re_excl Added: trunk/exp-drd/tests/tc04_free_lock.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc04_free_lock.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc04_free_lock.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,3 @@ + + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc04_free_lock.vgtest =================================================================== --- trunk/exp-drd/tests/tc04_free_lock.vgtest (rev 0) +++ trunk/exp-drd/tests/tc04_free_lock.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc04_free_lock Added: trunk/exp-drd/tests/tc07_hbl1.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc07_hbl1.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc07_hbl1.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,18 @@ + +Conflicting load by thread 1 at 0x........ size 4 + at 0x........: main (tc07_hbl1.c:68) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 4 + at 0x........: main (tc07_hbl1.c:68) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc07_hbl1.vgtest =================================================================== --- trunk/exp-drd/tests/tc07_hbl1.vgtest (rev 0) +++ trunk/exp-drd/tests/tc07_hbl1.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc07_hbl1 Added: trunk/exp-drd/tests/tc09_bad_unlock.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc09_bad_unlock.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc09_bad_unlock.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,40 @@ + +Attempt to unlock a mutex that is not locked / mutex 0x........ (recursion count -1, owner 1) + at 0x........: pthread_mutex_unlock (drd_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:27) + by 0x........: main (tc09_bad_unlock.c:49) + +Thread 2: +Mutex not unlocked by owner thread / mutex 0x........ (recursion count 1, owner 1) + at 0x........: pthread_mutex_unlock (drd_intercepts.c:?) + by 0x........: child_fn (tc09_bad_unlock.c:11) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) + +Thread 1: +Not a mutex / mutex 0x........ (recursion count 0, owner 0) + at 0x........: pthread_mutex_unlock (drd_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:41) + by 0x........: main (tc09_bad_unlock.c:49) + +Attempt to unlock a mutex that is not locked / mutex 0x........ (recursion count -1, owner 1) + at 0x........: pthread_mutex_unlock (drd_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:27) + by 0x........: main (tc09_bad_unlock.c:50) + +Thread 2: +Mutex not unlocked by owner thread / mutex 0x........ (recursion count 1, owner 1) + at 0x........: pthread_mutex_unlock (drd_intercepts.c:?) + by 0x........: child_fn (tc09_bad_unlock.c:11) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) + +Thread 1: +Not a mutex / mutex 0x........ (recursion count 0, owner 0) + at 0x........: pthread_mutex_unlock (drd_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:41) + by 0x........: main (tc09_bad_unlock.c:50) + +ERROR SUMMARY: 6 errors from 6 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc09_bad_unlock.vgtest =================================================================== --- trunk/exp-drd/tests/tc09_bad_unlock.vgtest (rev 0) +++ trunk/exp-drd/tests/tc09_bad_unlock.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc09_bad_unlock Added: trunk/exp-drd/tests/tc10_rec_lock.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc10_rec_lock.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc10_rec_lock.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,14 @@ + +before lock #1 +before lock #2 +before lock #3 +before unlock #1 +before unlock #2 +before unlock #3 +before unlock #4 +Attempt to unlock a mutex that is not locked / mutex 0x........ (recursion count -1, owner 1) + at 0x........: pthread_mutex_unlock (drd_intercepts.c:?) + by 0x........: nearly_main (tc10_rec_lock.c:42) + by 0x........: main (tc10_rec_lock.c:47) + +ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc10_rec_lock.vgtest =================================================================== --- trunk/exp-drd/tests/tc10_rec_lock.vgtest (rev 0) +++ trunk/exp-drd/tests/tc10_rec_lock.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc10_rec_lock Added: trunk/exp-drd/tests/tc11_XCHG.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc11_XCHG.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc11_XCHG.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,18 @@ + +Conflicting load by thread 1 at 0x........ size 4 + at 0x........: main (tc11_XCHG.c:78) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 4 + at 0x........: main (tc11_XCHG.c:78) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc11_XCHG.vgtest =================================================================== --- trunk/exp-drd/tests/tc11_XCHG.vgtest (rev 0) +++ trunk/exp-drd/tests/tc11_XCHG.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc11_XCHG Added: trunk/exp-drd/tests/tc12_rwl_trivial.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc12_rwl_trivial.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc12_rwl_trivial.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,3 @@ + + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc12_rwl_trivial.vgtest =================================================================== --- trunk/exp-drd/tests/tc12_rwl_trivial.vgtest (rev 0) +++ trunk/exp-drd/tests/tc12_rwl_trivial.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc12_rwl_trivial Added: trunk/exp-drd/tests/tc13_laog1.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc13_laog1.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc13_laog1.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,3 @@ + + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc13_laog1.vgtest =================================================================== --- trunk/exp-drd/tests/tc13_laog1.vgtest (rev 0) +++ trunk/exp-drd/tests/tc13_laog1.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc13_laog1 Added: trunk/exp-drd/tests/tc15_laog_lockdel.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc15_laog_lockdel.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc15_laog_lockdel.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,8 @@ + +Establish order 1 -> 2 +Try order 2 -> 1. This gives an error. +Free 2 and re-allocate it. This gives it a new identity, +so a second locking sequence 2 -> 1 should now be OK. +done + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc15_laog_lockdel.vgtest =================================================================== --- trunk/exp-drd/tests/tc15_laog_lockdel.vgtest (rev 0) +++ trunk/exp-drd/tests/tc15_laog_lockdel.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc15_laog_lockdel Added: trunk/exp-drd/tests/tc16_byterace.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc16_byterace.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc16_byterace.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,18 @@ + +Conflicting load by thread 1 at 0x........ size 1 + at 0x........: main (tc16_byterace.c:34) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 1 + at 0x........: main (tc16_byterace.c:34) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc16_byterace.vgtest =================================================================== --- trunk/exp-drd/tests/tc16_byterace.vgtest (rev 0) +++ trunk/exp-drd/tests/tc16_byterace.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc16_byterace Added: trunk/exp-drd/tests/tc19_shadowmem.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc19_shadowmem.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc19_shadowmem.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,2 @@ +valgrind: Bad option '--cmp-race-err-addrs=yes'; aborting. +valgrind: Use --help for more information. Added: trunk/exp-drd/tests/tc19_shadowmem.vgtest =================================================================== --- trunk/exp-drd/tests/tc19_shadowmem.vgtest (rev 0) +++ trunk/exp-drd/tests/tc19_shadowmem.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,2 @@ +prog: tc19_shadowmem +vgopts: --cmp-race-err-addrs=yes --error-limit=no Added: trunk/exp-drd/tests/tc20_verifywrap.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc20_verifywrap.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc20_verifywrap.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,63 @@ + + + +------ This is output for >= glibc 2.4 ------ + +---------------- pthread_create/join ---------------- + +Conflicting store by thread 1 at 0x........ size 2 + at 0x........: main (tc20_verifywrap.c:78) +Allocation context: unknown +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +---------------- pthread_mutex_lock et al ---------------- + + +Destroying locked mutex / mutex 0x........ (recursion count 1, owner 1) + at 0x........: pthread_mutex_destroy (drd_intercepts.c:?) + by 0x........: main (tc20_verifywrap.c:102) + +Not a mutex / mutex 0x........ (recursion count 0, owner 0) + at 0x........: pthread_mutex_unlock (drd_intercepts.c:?) + by 0x........: main (tc20_verifywrap.c:125) + +---------------- pthread_cond_wait et al ---------------- + + +Not a mutex / mutex 0x........ (recursion count 0, owner 0) + at 0x........: pthread_cond_wait* (drd_intercepts.c:?) + by 0x........: main (tc20_verifywrap.c:147) + +FIXME: can't figure out how to verify wrap of pthread_cond_signal + + +FIXME: can't figure out how to verify wrap of pthread_broadcast_signal + + +---------------- pthread_rwlock_* ---------------- + +(1) no error on next line +(2) no error on next line +(3) ERROR on next line +(4) no error on next line +(5) no error on next line +(6) no error on next line +(7) no error on next line +(8) ERROR on next line + +---------------- sem_* ---------------- + + +FIXME: can't figure out how to verify wrap of sem_destroy + + +FIXME: can't figure out how to verify wrap of sem_post + + +------------ dealloc of mem holding locks ------------ + + +ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc20_verifywrap.vgtest =================================================================== --- trunk/exp-drd/tests/tc20_verifywrap.vgtest (rev 0) +++ trunk/exp-drd/tests/tc20_verifywrap.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc20_verifywrap Added: trunk/exp-drd/tests/tc21_pthonce.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc21_pthonce.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc21_pthonce.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,3 @@ + + +ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc21_pthonce.vgtest =================================================================== --- trunk/exp-drd/tests/tc21_pthonce.vgtest (rev 0) +++ trunk/exp-drd/tests/tc21_pthonce.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc21_pthonce Added: trunk/exp-drd/tests/tc22_exit_w_lock.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc22_exit_w_lock.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc22_exit_w_lock.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,123 @@ + +Conflicting load by thread 1 at 0x........ size 4 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_cache_lock (offset 0, size 4) in libpthread-?.?.so, libpthread.so.0:BSS +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 4 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_cache_lock (offset 0, size 4) in libpthread-?.?.so, libpthread.so.0:BSS +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 8 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_used (offset 8, size 16) in libpthread-?.?.so, libpthread.so.0:Data +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 8 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_used (offset 0, size 16) in libpthread-?.?.so, libpthread.so.0:Data +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting load by thread 1 at 0x........ size 8 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_cache (offset 0, size 16) in libpthread-?.?.so, libpthread.so.0:Data +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 8 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_cache (offset 8, size 16) in libpthread-?.?.so, libpthread.so.0:Data +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 8 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_cache (offset 0, size 16) in libpthread-?.?.so, libpthread.so.0:Data +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting load by thread 1 at 0x........ size 8 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_cache_actsize (offset 0, size 8) in libpthread-?.?.so, libpthread.so.0:BSS +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 8 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_cache_actsize (offset 0, size 8) in libpthread-?.?.so, libpthread.so.0:BSS +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting load by thread 1 at 0x........ size 4 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_cache_lock (offset 0, size 4) in libpthread-?.?.so, libpthread.so.0:BSS +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +Conflicting store by thread 1 at 0x........ size 4 + at 0x........: __deallocate_stack (in libpthread-?.?.so) + by 0x........: pthread_join (in libpthread-?.?.so) + by 0x........: pthread_join (drd_intercepts.c:?) + by 0x........: main (tc22_exit_w_lock.c:43) +Allocation context: stack_cache_lock (offset 0, size 4) in libpthread-?.?.so, libpthread.so.0:BSS +Other segment start (thread 2) + (thread finished, call stack no longer available) +Other segment end (thread 2) + (thread finished, call stack no longer available) + +ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc22_exit_w_lock.vgtest =================================================================== --- trunk/exp-drd/tests/tc22_exit_w_lock.vgtest (rev 0) +++ trunk/exp-drd/tests/tc22_exit_w_lock.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc22_exit_w_lock Added: trunk/exp-drd/tests/tc23_bogus_condwait.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc23_bogus_condwait.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc23_bogus_condwait.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,69 @@ + +Not a mutex / mutex 0x........ (recursion count 0, owner 0) + at 0x........: pthread_cond_wait* (drd_intercepts.c:?) + by 0x........: main (tc23_bogus_condwait.c:69) + +Thread 3: +Race condition: condition variable 0x........ has been signalled but the associated mutex 0x........ is not locked by the signalling thread + at 0x........: pthread_cond_signal* (drd_intercepts.c:?) + by 0x........: rescue_me (tc23_bogus_condwait.c:20) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) + +Thread 1: +Not a mutex / mutex 0x........ (recursion count 0, owner 0) + at 0x........: pthread_cond_wait* (drd_intercepts.c:?) + by 0x........: main (tc23_bogus_condwait.c:69) + +Not a mutex / mutex 0x........ (recursion count 0, owner 0) + at 0x........: pthread_cond_wait* (drd_intercepts.c:?) + by 0x........: main (tc23_bogus_condwait.c:69) + +Not a mutex / mutex 0x........ (recursion count 0, owner 0) + at 0x........: pthread_cond_wait* (drd_intercepts.c:?) + by 0x........: main (tc23_bogus_condwait.c:72) + +Thread 3: +Race condition: condition variable 0x........ has been signalled but the associated mutex 0x........ is not locked by the signalling thread + at 0x........: pthread_cond_signal* (drd_intercepts.c:?) + by 0x........: rescue_me (tc23_bogus_condwait.c:24) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) + +Thread 1: +Not a mutex / mutex 0x........ (recursion count 0, owner 0) + at 0x........: pthread_cond_wait* (drd_intercepts.c:?) + by 0x........: main (tc23_bogus_condwait.c:75) + +Thread 3: +Race condition: condition variable 0x........ has been signalled but the associated mutex 0x........ is not locked by the signalling thread + at 0x........: pthread_cond_signal* (drd_intercepts.c:?) + by 0x........: rescue_me (tc23_bogus_condwait.c:28) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) + +Thread 1: +Mutex not unlocked by owner thread / mutex 0x........ (recursion count 1, owner 2) + at 0x........: pthread_cond_wait* (drd_intercepts.c:?) + by 0x........: main (tc23_bogus_condwait.c:78) + +Thread 3: +Race condition: condition variable 0x........ has been signalled but the associated mutex 0x........ is not locked by the signalling thread + at 0x........: pthread_cond_signal* (drd_intercepts.c:?) + by 0x........: rescue_me (tc23_bogus_condwait.c:32) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) + +Thread 2: +Mutex not unlocked by owner thread / mutex 0x........ (recursion count 1, owner 1) + at 0x........: pthread_mutex_unlock (drd_intercepts.c:?) + by 0x........: grab_the_lock (tc23_bogus_condwait.c:42) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) + +ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0) Added: trunk/exp-drd/tests/tc23_bogus_condwait.vgtest =================================================================== --- trunk/exp-drd/tests/tc23_bogus_condwait.vgtest (rev 0) +++ trunk/exp-drd/tests/tc23_bogus_condwait.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1 @@ +prog: tc23_bogus_condwait Added: trunk/exp-drd/tests/tc24_nonzero_sem.stderr.exp =================================================================== --- trunk/exp-drd/tests/tc24_nonzero_sem.stderr.exp (rev 0) +++ trunk/exp-drd/tests/tc24_nonzero_sem.stderr.exp 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,2 @@ +valgrind: Bad option '--hg-sanity-flags=111111'; aborting. +valgrind: Use --help for more information. Added: trunk/exp-drd/tests/tc24_nonzero_sem.vgtest =================================================================== --- trunk/exp-drd/tests/tc24_nonzero_sem.vgtest (rev 0) +++ trunk/exp-drd/tests/tc24_nonzero_sem.vgtest 2008-02-25 19:58:25 UTC (rev 7462) @@ -0,0 +1,2 @@ +prog: tc24_nonzero_sem +vgopts: --hg-sanity-flags=111111 |
|
From: <sv...@va...> - 2008-02-25 19:46:09
|
Author: bart
Date: 2008-02-25 19:46:14 +0000 (Mon, 25 Feb 2008)
New Revision: 7461
Log:
Converted several assertions into error messages.
Modified:
trunk/exp-drd/drd_mutex.c
Modified: trunk/exp-drd/drd_mutex.c
===================================================================
--- trunk/exp-drd/drd_mutex.c 2008-02-25 19:40:14 UTC (rev 7460)
+++ trunk/exp-drd/drd_mutex.c 2008-02-25 19:46:14 UTC (rev 7461)
@@ -110,6 +110,16 @@
{
if (s_mutex[i].mutex == 0)
{
+ if (drd_is_any_suppressed(mutex, mutex + size))
+ {
+ MutexErrInfo MEI = { 0, 0, 0 };
+ VG_(maybe_record_error)(VG_(get_running_tid)(),
+ MutexErr,
+ VG_(get_IP)(VG_(get_running_tid)()),
+ "Not a mutex",
+ &MEI);
+ return 0;
+ }
mutex_initialize(&s_mutex[i], mutex, size, mutex_type);
drd_start_suppression(mutex, mutex + size,
mutex_get_typename(&s_mutex[i]));
@@ -220,7 +230,6 @@
{
const DrdThreadId drd_tid = VgThreadIdToDrdThreadId(VG_(get_running_tid)());
struct mutex_info* const p = mutex_get_or_allocate(mutex, size, mutex_type);
- const DrdThreadId last_owner = p->owner;
if (s_trace_mutex)
{
@@ -235,6 +244,17 @@
p ? p->owner : VG_INVALID_THREADID);
}
+ if (p == 0)
+ {
+ MutexErrInfo MEI = { 0, 0, 0 };
+ VG_(maybe_record_error)(VG_(get_running_tid)(),
+ MutexErr,
+ VG_(get_IP)(VG_(get_running_tid)()),
+ "Not a mutex",
+ &MEI);
+ return 0;
+ }
+
tl_assert(mutex_type == mutex_type_mutex
|| mutex_type == mutex_type_spinlock);
tl_assert(p->mutex_type == mutex_type);
@@ -265,6 +285,8 @@
if (p->recursion_count == 1)
{
+ const DrdThreadId last_owner = p->owner;
+
if (last_owner != drd_tid && last_owner != DRD_INVALID_THREADID)
thread_combine_vc2(drd_tid, mutex_get_last_vc(mutex));
thread_new_segment(drd_tid);
@@ -299,6 +321,17 @@
p->owner);
}
+ if (p == 0 || p->owner == DRD_INVALID_THREADID)
+ {
+ MutexErrInfo MEI = { 0, 0, 0 };
+ VG_(maybe_record_error)(vg_tid,
+ MutexErr,
+ VG_(get_IP)(vg_tid),
+ "Not a mutex",
+ &MEI);
+ return 0;
+ }
+
tl_assert(p);
tl_assert(p->mutex_type == mutex_type);
tl_assert(p->owner != DRD_INVALID_THREADID);
@@ -363,7 +396,6 @@
Bool mutex_is_locked_by(const Addr mutex, const DrdThreadId tid)
{
struct mutex_info* const p = mutex_get(mutex);
- tl_assert(p);
if (p)
{
return (p->recursion_count > 0 && p->owner == tid);
|
|
From: <sv...@va...> - 2008-02-25 19:40:11
|
Author: bart
Date: 2008-02-25 19:40:14 +0000 (Mon, 25 Feb 2008)
New Revision: 7460
Log:
The mutex address may now be left zero when triggering a MutexErr.
Modified:
trunk/exp-drd/drd_error.c
Modified: trunk/exp-drd/drd_error.c
===================================================================
--- trunk/exp-drd/drd_error.c 2008-02-25 17:29:13 UTC (rev 7459)
+++ trunk/exp-drd/drd_error.c 2008-02-25 19:40:14 UTC (rev 7460)
@@ -262,9 +262,9 @@
VG_(message)(Vg_UserMsg,
"%s / mutex 0x%lx (recursion count %d, owner %d)",
VG_(get_error_string)(e),
- p->mutex,
- p->recursion_count,
- p->owner);
+ p ? p->mutex : 0,
+ p ? p->recursion_count : 0,
+ p ? p->owner : DRD_INVALID_THREADID);
VG_(pp_ExeContext)(VG_(get_error_where)(e));
break;
}
|
|
From: <sv...@va...> - 2008-02-25 17:29:12
|
Author: bart Date: 2008-02-25 17:29:13 +0000 (Mon, 25 Feb 2008) New Revision: 7459 Log: Added output for the case where the data race is detected in thread 3. Added: trunk/exp-drd/tests/pth_barrier.stderr.exp-thread3 Added: trunk/exp-drd/tests/pth_barrier.stderr.exp-thread3 =================================================================== --- trunk/exp-drd/tests/pth_barrier.stderr.exp-thread3 (rev 0) +++ trunk/exp-drd/tests/pth_barrier.stderr.exp-thread3 2008-02-25 17:29:13 UTC (rev 7459) @@ -0,0 +1,25 @@ + +Thread 3: +Conflicting store by thread 3 at 0x........ size 4 + at 0x........: threadfunc (pth_barrier.c:?) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Allocation context: heap, offset 0 in block at 0x........ of size 4 + at 0x........: malloc (vg_replace_malloc.c:...) + by 0x........: barriers_and_races (pth_barrier.c:?) + by 0x........: main (pth_barrier.c:?) +Other segment start (thread 2) + at 0x........: pthread_barrier_wait (drd_intercepts.c:?) + by 0x........: threadfunc (pth_barrier.c:?) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Other segment end (thread 2) + at 0x........: pthread_barrier_wait (in libpthread-?.?.so) + by 0x........: threadfunc (pth_barrier.c:?) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) + +ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) |
|
From: <sv...@va...> - 2008-02-25 17:26:21
|
Author: bart Date: 2008-02-25 17:26:23 +0000 (Mon, 25 Feb 2008) New Revision: 7458 Log: Renamed pth_barrier.stderr.exp into pth_barrier.stderr.exp-thread2. Added: trunk/exp-drd/tests/pth_barrier.stderr.exp-thread2 Removed: trunk/exp-drd/tests/pth_barrier.stderr.exp Deleted: trunk/exp-drd/tests/pth_barrier.stderr.exp =================================================================== --- trunk/exp-drd/tests/pth_barrier.stderr.exp 2008-02-25 13:46:58 UTC (rev 7457) +++ trunk/exp-drd/tests/pth_barrier.stderr.exp 2008-02-25 17:26:23 UTC (rev 7458) @@ -1,23 +0,0 @@ - -Thread 2: -Conflicting store by thread 2 at 0x........ size 4 - at 0x........: threadfunc (pth_barrier.c:?) - by 0x........: vg_thread_wrapper (drd_intercepts.c:?) - by 0x........: start_thread (in libpthread-?.?.so) - by 0x........: clone (in /...libc...) -Allocation context: unknown -Other segment start (thread 3) - at 0x........: pthread_barrier_wait (drd_intercepts.c:?) - by 0x........: threadfunc (pth_barrier.c:?) - by 0x........: vg_thread_wrapper (drd_intercepts.c:?) - by 0x........: start_thread (in libpthread-?.?.so) - by 0x........: clone (in /...libc...) -Other segment end (thread 3) - at 0x........: __lll_mutex_lock_wait (in libpthread-?.?.so) - by 0x........: pthread_barrier_wait (in libpthread-?.?.so) - by 0x........: threadfunc (pth_barrier.c:?) - by 0x........: vg_thread_wrapper (drd_intercepts.c:?) - by 0x........: start_thread (in libpthread-?.?.so) - by 0x........: clone (in /...libc...) - -ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) Copied: trunk/exp-drd/tests/pth_barrier.stderr.exp-thread2 (from rev 7457, trunk/exp-drd/tests/pth_barrier.stderr.exp) =================================================================== --- trunk/exp-drd/tests/pth_barrier.stderr.exp-thread2 (rev 0) +++ trunk/exp-drd/tests/pth_barrier.stderr.exp-thread2 2008-02-25 17:26:23 UTC (rev 7458) @@ -0,0 +1,23 @@ + +Thread 2: +Conflicting store by thread 2 at 0x........ size 4 + at 0x........: threadfunc (pth_barrier.c:?) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Allocation context: unknown +Other segment start (thread 3) + at 0x........: pthread_barrier_wait (drd_intercepts.c:?) + by 0x........: threadfunc (pth_barrier.c:?) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Other segment end (thread 3) + at 0x........: __lll_mutex_lock_wait (in libpthread-?.?.so) + by 0x........: pthread_barrier_wait (in libpthread-?.?.so) + by 0x........: threadfunc (pth_barrier.c:?) + by 0x........: vg_thread_wrapper (drd_intercepts.c:?) + by 0x........: start_thread (in libpthread-?.?.so) + by 0x........: clone (in /...libc...) + +ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) |
|
From: Bart V. A. <bar...@gm...> - 2008-02-25 16:37:33
|
On Mon, Feb 25, 2008 at 1:42 PM, Julian Seward <js...@ac...> wrote:
>
> > Only _start. Even if I would track _stop, I still would need code in
> > the drd_trace_load() / drd_trace_store() functions for verifying
> > whether VG_(get_running_tid)() changed.
>
> You really need to intercept the _stop function.
>
> * when notified with _start, cache the thread ID provided.
>
> * when notified with _stop, discard the cached thread ID.
>
> * when you need to know the thread ID, first see if you have
> a cached ID. If not, call VG_(get_running_tid) (but don't
> cache the result).
The code that is currently executed by exp-drd at the start of every
memory load and store is about as follows:
if (VG_(get_running_tid) != cached_tid)
{ cached_tid = VG_(get_running_tid); /* update danger set */; }
When tracking both _start and _stop, the code at the start of every
memory load and store will look as follows:
if (tracked_thread_id == VG_INVALID_THREADID && VG_(get_running_tid)
!= cached_tid)
{ cached_tid = VG_(get_running_tid); /* update danger set */; }
Is this an improvement ? This would save one function call in the
common path, but there is also an alternative solution for this --
declaring VG_(get_running_tid)() inline. And the code for checking the
thread ID still has to be executed for every client memory load and
for every client memory store.
I still prefer that the Valgrind core calls a tracking function to
notify a tool about any thread ID changes.
Bart.
|
|
From: <sv...@va...> - 2008-02-25 13:47:33
|
Author: sewardj
Date: 2008-02-25 13:44:04 +0000 (Mon, 25 Feb 2008)
New Revision: 7456
Log:
Comment-only changes.
Modified:
branches/DATASYMS/coregrind/m_debuginfo/priv_tytypes.h
branches/DATASYMS/coregrind/m_debuginfo/storage.c
Modified: branches/DATASYMS/coregrind/m_debuginfo/priv_tytypes.h
===================================================================
--- branches/DATASYMS/coregrind/m_debuginfo/priv_tytypes.h 2008-02-25 13:40:42 UTC (rev 7455)
+++ branches/DATASYMS/coregrind/m_debuginfo/priv_tytypes.h 2008-02-25 13:44:04 UTC (rev 7456)
@@ -149,7 +149,7 @@
been converted into pointers) */
void ML_(pp_Type_C_ishly) ( Type* ty );
-/* How big is this type? (post-resolved only) If . b in the
+/* How big is this type? (post-resolved only) If .b in the
returned struct is False, the size is unknown. */
/* FIXME: check all pointers before dereferencing */
Modified: branches/DATASYMS/coregrind/m_debuginfo/storage.c
===================================================================
--- branches/DATASYMS/coregrind/m_debuginfo/storage.c 2008-02-25 13:40:42 UTC (rev 7455)
+++ branches/DATASYMS/coregrind/m_debuginfo/storage.c 2008-02-25 13:44:04 UTC (rev 7456)
@@ -553,13 +553,12 @@
VG_(printf)("}\n");
}
-/* 'inner' is an XArray of DiAddrRange. Find the entry corresponding
- to [aMin,aMax]. If that doesn't exist, create one. Take care to
- preserve the invariant that none of the address ranges have the
- same starting value (aMin). That's unlikely to be the case unless
- the DWARF3 from which these calls results contains bogus range
- info; however in the interests of robustness, do handle the
- case. */
+/* Add the variable 'var' to 'scope' for the address range [aMin,aMax]
+ (inclusive of aMin and aMax). Split existing ranges as required if
+ aMin or aMax or both don't match existing range boundaries, and add
+ 'var' to all required ranges. Take great care to preserve the
+ invariant that the ranges in 'scope' cover the entire address range
+ exactly once, with no overlaps and no holes. */
static void add_var_to_arange (
/*MOD*/OSet* /* of DiAddrRange */ scope,
Addr aMin,
|
|
From: <sv...@va...> - 2008-02-25 13:46:55
|
Author: sewardj
Date: 2008-02-25 13:46:58 +0000 (Mon, 25 Feb 2008)
New Revision: 7457
Log:
Partially fix handling of variables which have Compilation-Unit scope.
In C these correspond to top level 'static' variables.
Modified:
branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c
branches/DATASYMS/coregrind/m_debuginfo/readdwarf3.c
Modified: branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c
===================================================================
--- branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c 2008-02-25 13:44:04 UTC (rev 7456)
+++ branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c 2008-02-25 13:46:58 UTC (rev 7457)
@@ -2014,6 +2014,27 @@
in the stacks of all the threads. First try to figure out which
thread's stack data_addr is in. */
+ /* --- KLUDGE --- Try examining the top frame of all thread stacks.
+ This finds variables which are not stack allocated but are not
+ globally visible either; specifically it appears to pick up
+ variables which are visible only within a compilation unit.
+ These will have the address range of the compilation unit and
+ tend to live at Scope level 1. */
+ VG_(thread_stack_reset_iter)(&tid);
+ while ( VG_(thread_stack_next)(&tid, &stack_min, &stack_max) ) {
+ if (stack_min >= stack_max)
+ continue; /* ignore obviously stupid cases */
+ if (consider_vars_in_frame( dname1, dname2, n_dname,
+ data_addr,
+ VG_(get_IP)(tid),
+ VG_(get_SP)(tid),
+ VG_(get_FP)(tid), tid, 0 )) {
+ dname1[n_dname-1] = dname2[n_dname-1] = 0;
+ return True;
+ }
+ }
+ /* --- end KLUDGE --- */
+
/* Perhaps it's on a thread's stack? */
found = False;
VG_(thread_stack_reset_iter)(&tid);
@@ -2050,6 +2071,9 @@
all non-innermost IPs. Note that VG_(get_StackTrace_wrk) itself
has to use the same trick in order to use CFI data to unwind the
stack (as documented therein in comments). */
+ /* As a result of KLUDGE above, starting the loop at j = 0
+ duplicates examination of the top frame and so isn't necessary.
+ Oh well. */
vg_assert(n_frames >= 0 && n_frames <= N_FRAMES);
for (j = 0; j < n_frames; j++) {
Word ip_delta = j == 0 ? 0 : 1;
Modified: branches/DATASYMS/coregrind/m_debuginfo/readdwarf3.c
===================================================================
--- branches/DATASYMS/coregrind/m_debuginfo/readdwarf3.c 2008-02-25 13:44:04 UTC (rev 7456)
+++ branches/DATASYMS/coregrind/m_debuginfo/readdwarf3.c 2008-02-25 13:46:58 UTC (rev 7457)
@@ -1290,7 +1290,7 @@
UWord saved_die_c_offset = get_position_of_Cursor( c_die );
UWord saved_abbv_c_offset = get_position_of_Cursor( c_abbv );
- varstack_preen( parser, td3, level );
+ varstack_preen( parser, td3, level-1 );
if (dtag == DW_TAG_compile_unit) {
Bool have_lo = False;
|
|
From: <sv...@va...> - 2008-02-25 13:40:45
|
Author: sewardj
Date: 2008-02-25 13:40:42 +0000 (Mon, 25 Feb 2008)
New Revision: 7455
Log:
Fix off-by-one error in complex case (range-splitting required) of
add_var_to_range(), and add a bunch more assertions.
Modified:
branches/DATASYMS/coregrind/m_debuginfo/storage.c
Modified: branches/DATASYMS/coregrind/m_debuginfo/storage.c
===================================================================
--- branches/DATASYMS/coregrind/m_debuginfo/storage.c 2008-02-25 12:10:07 UTC (rev 7454)
+++ branches/DATASYMS/coregrind/m_debuginfo/storage.c 2008-02-25 13:40:42 UTC (rev 7455)
@@ -567,8 +567,12 @@
DiVariable* var
)
{
- DiAddrRange *first, *last;
- DiAddrRange *range, *rangep;
+ DiAddrRange *first, *last, *range;
+ /* These xx variables are for assertion checking only; they don't
+ contribute anything to the actual work of this function. */
+ DiAddrRange *xxRangep, *xxFirst, *xxLast;
+ UWord xxIters;
+
vg_assert(aMin <= aMax);
if (0) VG_(printf)("add_var_to_arange: %p .. %p\n", aMin, aMax);
@@ -649,36 +653,55 @@
vg_assert(aMax == last->aMax);
+ xxFirst = (DiAddrRange*)VG_(OSetGen_Lookup)(scope, &aMin);
+ xxLast = (DiAddrRange*)VG_(OSetGen_Lookup)(scope, &aMax);
+ vg_assert(xxFirst);
+ vg_assert(xxLast);
+ vg_assert(xxFirst->aMin == aMin);
+ vg_assert(xxLast->aMax == aMax);
+ if (xxFirst != xxLast)
+ vg_assert(xxFirst->aMax < xxLast->aMin);
+
/* Great. Now we merely need to iterate over the segments from
'first' to 'last' inclusive, and add 'var' to the variable set
of each of them. */
- if (0) show_scope( scope, "add_var_to_arange(2)" );
+ if (0) {
+ static UWord ctr = 0;
+ ctr++;
+ VG_(printf)("ctr = %lu\n", ctr);
+ if (ctr >= 33263) show_scope( scope, "add_var_to_arange(2)" );
+ }
- range = rangep = NULL;
+ xxIters = 0;
+ range = xxRangep = NULL;
VG_(OSetGen_ResetIterAt)( scope, &aMin );
while (True) {
- range = VG_(OSetGen_Next)( scope );
+ xxRangep = range;
+ range = VG_(OSetGen_Next)( scope );
if (!range) break;
- if (range->aMin >= aMax) break;
+ if (range->aMin > aMax) break;
+ xxIters++;
if (0) VG_(printf)("have range %p %p\n",
range->aMin, range->aMax);
/* Sanity checks */
- if (!rangep) {
+ if (!xxRangep) {
/* This is the first in the range */
vg_assert(range->aMin == aMin);
} else {
- vg_assert(rangep->aMax + 1 == range->aMin);
+ vg_assert(xxRangep->aMax + 1 == range->aMin);
}
vg_assert(range->vars);
VG_(addToXA)( range->vars, var );
-
- rangep = range;
}
/* Done. We should have seen at least one range. */
- vg_assert(rangep);
- vg_assert(rangep->aMax == aMax);
+ vg_assert(xxIters >= 1);
+ if (xxIters == 1) vg_assert(xxFirst == xxLast);
+ if (xxFirst == xxLast) vg_assert(xxIters == 1);
+ vg_assert(xxRangep);
+ vg_assert(xxRangep->aMax == aMax);
+ vg_assert(xxRangep == xxLast);
}
|
|
From: Julian S. <js...@ac...> - 2008-02-25 12:46:06
|
> In exp-drd I need the value of VG_(get_running_tid)() upon *every* > client memory access, not just for the memory accesses generated by > translated code. [...] Yes. And the same is true in Helgrind. > Only _start. Even if I would track _stop, I still would need code in > the drd_trace_load() / drd_trace_store() functions for verifying > whether VG_(get_running_tid)() changed. You really need to intercept the _stop function. * when notified with _start, cache the thread ID provided. * when notified with _stop, discard the cached thread ID. * when you need to know the thread ID, first see if you have a cached ID. If not, call VG_(get_running_tid) (but don't cache the result). J |
|
From: <sv...@va...> - 2008-02-25 12:10:17
|
Author: sewardj
Date: 2008-02-25 12:10:07 +0000 (Mon, 25 Feb 2008)
New Revision: 7454
Log:
Intercept pthread_rwlock_try{rd,wr}lock. Fixes #158212.
Modified:
trunk/helgrind/hg_intercepts.c
trunk/helgrind/hg_main.c
Modified: trunk/helgrind/hg_intercepts.c
===================================================================
--- trunk/helgrind/hg_intercepts.c 2008-02-25 00:11:05 UTC (rev 7453)
+++ trunk/helgrind/hg_intercepts.c 2008-02-25 12:10:07 UTC (rev 7454)
@@ -790,6 +790,7 @@
}
+// pthread_rwlock_wrlock
PTH_FUNC(int, pthreadZurwlockZuwrlock, // pthread_rwlock_wrlock
pthread_rwlock_t* rwlock)
{
@@ -800,8 +801,9 @@
fprintf(stderr, "<< pthread_rwl_wlk %p", rwlock); fflush(stderr);
}
- DO_CREQ_v_WW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE,
- pthread_rwlock_t*,rwlock, long,1/*isW*/);
+ DO_CREQ_v_WWW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE,
+ pthread_rwlock_t*,rwlock,
+ long,1/*isW*/, long,0/*!isTryLock*/);
CALL_FN_W_W(ret, fn, rwlock);
@@ -819,6 +821,7 @@
}
+// pthread_rwlock_rdlock
PTH_FUNC(int, pthreadZurwlockZurdlock, // pthread_rwlock_rdlock
pthread_rwlock_t* rwlock)
{
@@ -829,8 +832,9 @@
fprintf(stderr, "<< pthread_rwl_rlk %p", rwlock); fflush(stderr);
}
- DO_CREQ_v_WW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE,
- pthread_rwlock_t*,rwlock, long,0/*!isW*/);
+ DO_CREQ_v_WWW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE,
+ pthread_rwlock_t*,rwlock,
+ long,0/*!isW*/, long,0/*!isTryLock*/);
CALL_FN_W_W(ret, fn, rwlock);
@@ -848,6 +852,81 @@
}
+// pthread_rwlock_trywrlock
+PTH_FUNC(int, pthreadZurwlockZutrywrlock, // pthread_rwlock_trywrlock
+ pthread_rwlock_t* rwlock)
+{
+ int ret;
+ OrigFn fn;
+ VALGRIND_GET_ORIG_FN(fn);
+ if (TRACE_PTH_FNS) {
+ fprintf(stderr, "<< pthread_rwl_trywlk %p", rwlock); fflush(stderr);
+ }
+
+ DO_CREQ_v_WWW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE,
+ pthread_rwlock_t*,rwlock,
+ long,1/*isW*/, long,1/*isTryLock*/);
+
+ CALL_FN_W_W(ret, fn, rwlock);
+
+ /* There's a hole here: libpthread now knows the lock is locked,
+ but the tool doesn't, so some other thread could run and detect
+ that the lock has been acquired by someone (this thread). Does
+ this matter? Not sure, but I don't think so. */
+
+ if (ret == 0 /*success*/) {
+ DO_CREQ_v_WW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_POST,
+ pthread_rwlock_t*,rwlock, long,1/*isW*/);
+ } else {
+ if (ret != EBUSY)
+ DO_PthAPIerror( "pthread_rwlock_trywrlock", ret );
+ }
+
+ if (TRACE_PTH_FNS) {
+ fprintf(stderr, " :: rwl_trywlk -> %d >>\n", ret);
+ }
+ return ret;
+}
+
+
+// pthread_rwlock_tryrdlock
+PTH_FUNC(int, pthreadZurwlockZutryrdlock, // pthread_rwlock_tryrdlock
+ pthread_rwlock_t* rwlock)
+{
+ int ret;
+ OrigFn fn;
+ VALGRIND_GET_ORIG_FN(fn);
+ if (TRACE_PTH_FNS) {
+ fprintf(stderr, "<< pthread_rwl_tryrlk %p", rwlock); fflush(stderr);
+ }
+
+ DO_CREQ_v_WWW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE,
+ pthread_rwlock_t*,rwlock,
+ long,0/*!isW*/, long,1/*isTryLock*/);
+
+ CALL_FN_W_W(ret, fn, rwlock);
+
+ /* There's a hole here: libpthread now knows the lock is locked,
+ but the tool doesn't, so some other thread could run and detect
+ that the lock has been acquired by someone (this thread). Does
+ this matter? Not sure, but I don't think so. */
+
+ if (ret == 0 /*success*/) {
+ DO_CREQ_v_WW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_POST,
+ pthread_rwlock_t*,rwlock, long,0/*!isW*/);
+ } else {
+ if (ret != EBUSY)
+ DO_PthAPIerror( "pthread_rwlock_tryrdlock", ret );
+ }
+
+ if (TRACE_PTH_FNS) {
+ fprintf(stderr, " :: rwl_tryrlk -> %d >>\n", ret);
+ }
+ return ret;
+}
+
+
+// pthread_rwlock_unlock
PTH_FUNC(int, pthreadZurwlockZuunlock, // pthread_rwlock_unlock
pthread_rwlock_t* rwlock)
{
@@ -1155,8 +1234,9 @@
fflush(stderr);
}
- DO_CREQ_v_WW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE,
- void*,self, long,0/*!isW*/);
+ DO_CREQ_v_WWW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE,
+ void*,self,
+ long,0/*!isW*/, long,0/*!isTryLock*/);
CALL_FN_v_W(fn, self);
@@ -1181,8 +1261,9 @@
fflush(stderr);
}
- DO_CREQ_v_WW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE,
- void*,self, long,1/*isW*/);
+ DO_CREQ_v_WWW(_VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE,
+ void*,self,
+ long,1/*isW*/, long,0/*!isTryLock*/);
CALL_FN_v_W(fn, self);
Modified: trunk/helgrind/hg_main.c
===================================================================
--- trunk/helgrind/hg_main.c 2008-02-25 00:11:05 UTC (rev 7453)
+++ trunk/helgrind/hg_main.c 2008-02-25 12:10:07 UTC (rev 7454)
@@ -6245,7 +6245,9 @@
}
static
-void evh__HG_PTHREAD_RWLOCK_LOCK_PRE ( ThreadId tid, void* rwl, Word isW )
+void evh__HG_PTHREAD_RWLOCK_LOCK_PRE ( ThreadId tid,
+ void* rwl,
+ Word isW, Word isTryLock )
{
/* Just check the rwl is sane; nothing else to do. */
// 'rwl' may be invalid - not checked by wrapper
@@ -6256,6 +6258,7 @@
(Int)tid, (Int)isW, (void*)rwl );
tl_assert(isW == 0 || isW == 1); /* assured us by wrapper */
+ tl_assert(isTryLock == 0 || isTryLock == 1); /* assured us by wrapper */
thr = map_threads_maybe_lookup( tid );
tl_assert(thr); /* cannot fail - Thread* must already exist */
@@ -7652,9 +7655,10 @@
evh__HG_PTHREAD_RWLOCK_DESTROY_PRE( tid, (void*)args[1] );
break;
- /* rwlock=arg[1], isW=arg[2] */
+ /* rwlock=arg[1], isW=arg[2], isTryLock=arg[3] */
case _VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_PRE:
- evh__HG_PTHREAD_RWLOCK_LOCK_PRE( tid, (void*)args[1], args[2] );
+ evh__HG_PTHREAD_RWLOCK_LOCK_PRE( tid, (void*)args[1],
+ args[2], args[3] );
break;
/* rwlock=arg[1], isW=arg[2] */
|
|
From: Bart V. A. <bar...@gm...> - 2008-02-25 12:05:57
|
On Mon, Feb 25, 2008 at 4:31 AM, Tom Hughes <th...@cy...> wrote: > > Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-02-25 03:10:06 GMT > Results differ from 24 hours ago > ... > exp-drd/tests/pth_barrier (stderr) > ... While all exp-drd regression tests ran fine on my development system, the pth_barrier regression test failed on all systems the nightly build ran on. The result of this regression test must be that a single data race is be reported. Depending on how the Valgrind core scheduled the threads of this test, the data race is either reported in thread 2 or in thread 3. Furthermore, the details of the call stacks printed depend on the glibc library used during the test. So I would like to change this test such that only the number of errors is compared during the regression tests instead of the full output. I would like to have a facility to suppress the output of the error messages generated by a tool while keeping the error count summary. Should I implement such functionality in the Valgrind core or in the exp-drd tool ? Bart. |
|
From: Tom H. <th...@cy...> - 2008-02-25 06:07:22
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2008-02-25 03:15:18 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 338 tests, 80 stderr failures, 1 stdout failure, 29 post failures == memcheck/tests/addressable (stderr) memcheck/tests/badjump (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-pool-0 (stderr) memcheck/tests/leak-pool-1 (stderr) memcheck/tests/leak-pool-2 (stderr) memcheck/tests/leak-pool-3 (stderr) memcheck/tests/leak-pool-4 (stderr) memcheck/tests/leak-pool-5 (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/long_namespace_xml (stderr) memcheck/tests/lsframe1 (stderr) memcheck/tests/lsframe2 (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/noisy_child (stderr) memcheck/tests/partial_load_dflt (stderr) memcheck/tests/partial_load_ok (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/x86/bug152022 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/x86/xor-undef-x86 (stderr) memcheck/tests/xml1 (stderr) massif/tests/alloc-fns-A (post) massif/tests/alloc-fns-B (post) massif/tests/basic (post) massif/tests/basic2 (post) massif/tests/big-alloc (post) massif/tests/culling1 (stderr) massif/tests/culling2 (stderr) massif/tests/custom_alloc (post) massif/tests/deep-A (post) massif/tests/deep-B (stderr) massif/tests/deep-B (post) massif/tests/deep-C (stderr) massif/tests/deep-C (post) massif/tests/deep-D (post) massif/tests/ignoring (post) massif/tests/insig (post) massif/tests/long-names (post) massif/tests/long-time (post) massif/tests/new-cpp (post) massif/tests/null (post) massif/tests/one (post) massif/tests/overloaded-new (post) massif/tests/peak (post) massif/tests/peak2 (stderr) massif/tests/peak2 (post) massif/tests/realloc (stderr) massif/tests/realloc (post) massif/tests/thresholds_0_0 (post) massif/tests/thresholds_0_10 (post) massif/tests/thresholds_10_0 (post) massif/tests/thresholds_10_10 (post) massif/tests/thresholds_5_0 (post) massif/tests/thresholds_5_10 (post) massif/tests/zero1 (post) massif/tests/zero2 (post) none/tests/blockfault (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) exp-drd/tests/fp_race (stderr) exp-drd/tests/fp_race2 (stderr) exp-drd/tests/matinv (stderr) exp-drd/tests/pth_barrier (stderr) exp-drd/tests/pth_broadcast (stderr) exp-drd/tests/pth_cond_race (stderr) exp-drd/tests/pth_cond_race2 (stderr) exp-drd/tests/pth_create_chain (stderr) exp-drd/tests/pth_detached (stderr) exp-drd/tests/pth_detached2 (stderr) exp-drd/tests/sem_as_mutex (stderr) exp-drd/tests/sem_as_mutex2 (stderr) exp-drd/tests/sigalrm (stderr) exp-drd/tests/tc17_sembar (stderr) exp-drd/tests/tc18_semabuse (stderr) |
|
From: Tom H. <th...@cy...> - 2008-02-25 04:12:27
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-02-25 03:05:05 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 372 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) exp-drd/tests/pth_barrier (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 372 tests, 7 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Feb 25 03:38:53 2008 --- new.short Mon Feb 25 04:12:29 2008 *************** *** 8,10 **** ! == 372 tests, 7 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) --- 8,10 ---- ! == 372 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) *************** *** 18,19 **** --- 18,20 ---- helgrind/tests/tc22_exit_w_lock (stderr) + exp-drd/tests/pth_barrier (stderr) |
|
From: Tom H. <th...@cy...> - 2008-02-25 03:53:40
|
Nightly build on aston ( x86_64, Fedora Core 5 ) started at 2008-02-25 03:20:08 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 378 tests, 9 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/blockfault (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) exp-drd/tests/pth_barrier (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 378 tests, 8 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/blockfault (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Feb 25 03:35:48 2008 --- new.short Mon Feb 25 03:53:43 2008 *************** *** 8,10 **** ! == 378 tests, 8 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/malloc_free_fill (stderr) --- 8,10 ---- ! == 378 tests, 9 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/malloc_free_fill (stderr) *************** *** 18,19 **** --- 18,20 ---- helgrind/tests/tc22_exit_w_lock (stderr) + exp-drd/tests/pth_barrier (stderr) |
|
From: Tom H. <th...@cy...> - 2008-02-25 03:47:15
|
Nightly build on trojan ( x86_64, Fedora Core 6 ) started at 2008-02-25 03:25:20 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 376 tests, 7 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) exp-drd/tests/pth_barrier (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 376 tests, 6 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Feb 25 03:36:47 2008 --- new.short Mon Feb 25 03:47:18 2008 *************** *** 8,10 **** ! == 376 tests, 6 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 376 tests, 7 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/pointer-trace (stderr) *************** *** 20,21 **** --- 20,22 ---- helgrind/tests/tc22_exit_w_lock (stderr) + exp-drd/tests/pth_barrier (stderr) |
|
From: Tom H. <th...@cy...> - 2008-02-25 03:31:06
|
Nightly build on dellow ( x86_64, Fedora 8 ) started at 2008-02-25 03:10:06 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 372 tests, 9 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_cvsimple (stdout) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) exp-drd/tests/pth_barrier (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 372 tests, 9 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_cvsimple (stdout) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Feb 25 03:21:44 2008 --- new.short Mon Feb 25 03:31:07 2008 *************** *** 17,19 **** none/tests/pth_cvsimple (stdout) - helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) --- 17,18 ---- *************** *** 21,22 **** --- 20,22 ---- helgrind/tests/tc22_exit_w_lock (stderr) + exp-drd/tests/pth_barrier (stderr) |
|
From: Tom H. <th...@cy...> - 2008-02-25 03:20:12
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-02-25 03:00:15 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 378 tests, 30 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) exp-drd/tests/pth_barrier (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 378 tests, 29 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Feb 25 03:10:19 2008 --- new.short Mon Feb 25 03:20:13 2008 *************** *** 8,10 **** ! == 378 tests, 29 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) --- 8,10 ---- ! == 378 tests, 30 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/malloc_free_fill (stderr) *************** *** 41,42 **** --- 41,43 ---- helgrind/tests/tc23_bogus_condwait (stderr) + exp-drd/tests/pth_barrier (stderr) |
|
From: <sv...@va...> - 2008-02-25 00:11:02
|
Author: sewardj
Date: 2008-02-25 00:11:05 +0000 (Mon, 25 Feb 2008)
New Revision: 7453
Log:
Fix off-by-one problem in IP values obtained from stack unwinding,
that caused non-identification of variables on stacks in some cases.
Modified:
branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c
branches/DATASYMS/coregrind/m_stacktrace.c
Modified: branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c
===================================================================
--- branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c 2008-02-24 19:51:51 UTC (rev 7452)
+++ branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c 2008-02-25 00:11:05 UTC (rev 7453)
@@ -1815,7 +1815,7 @@
static UInt n_search = 0;
static UInt n_steps = 0;
n_search++;
-
+ if (0) VG_(printf)("QQQQ: cvif: ip,sp,fp %p,%p,%p\n", ip,sp,fp);
/* first, find the DebugInfo that pertains to 'ip'. */
for (di = debugInfo_list; di; di = di->next) {
n_steps++;
@@ -1867,6 +1867,7 @@
DiAddrRange* arange;
OSet* this_scope
= *(OSet**)VG_(indexXA)( di->varinfo, i );
+ if (0) VG_(printf)("QQQQ: considering scope %ld\n", (Word)i);
if (!this_scope)
continue;
/* Find the set of variables in this scope that
@@ -1935,7 +1936,7 @@
vg_assert(n_dname > 1);
dname1[n_dname-1] = dname2[n_dname-1] = 0;
- if (0) VG_(printf)("GDD: dataaddr %p\n", data_addr);
+ if (0) VG_(printf)("get_data_description: dataaddr %p\n", data_addr);
/* First, see if data_addr is (or is part of) a global variable.
Loop over the DebugInfos we have. Check data_addr against the
@@ -2033,14 +2034,29 @@
/* We conclude data_addr is in thread tid's stack. Unwind the
stack to get a bunch of (ip,sp,fp) triples describing the
frames, and for each frame, consider the local variables. */
-
n_frames = VG_(get_StackTrace)( tid, ips, N_FRAMES,
sps, fps, 0/*first_ip_delta*/ );
+ /* Re ip_delta in the next loop: There's a subtlety in the meaning
+ of the IP values in a stack obtained from VG_(get_StackTrace).
+ The innermost value really is simply the thread's program
+ counter at the time the snapshot was taken. However, all the
+ other values are actually return addresses, and so point just
+ after the call instructions. Hence they notionally reflect not
+ what the program counters were at the time those calls were
+ made, but what they will be when those calls return. This can
+ be of significance should an address range happen to end at the
+ end of a call instruction -- we may ignore the range when in
+ fact it should be considered. Hence, back up the IPs by 1 for
+ all non-innermost IPs. Note that VG_(get_StackTrace_wrk) itself
+ has to use the same trick in order to use CFI data to unwind the
+ stack (as documented therein in comments). */
vg_assert(n_frames >= 0 && n_frames <= N_FRAMES);
for (j = 0; j < n_frames; j++) {
+ Word ip_delta = j == 0 ? 0 : 1;
if (consider_vars_in_frame( dname1, dname2, n_dname,
data_addr,
- ips[j], sps[j], fps[j], tid, j )) {
+ ips[j] - ip_delta,
+ sps[j], fps[j], tid, j )) {
dname1[n_dname-1] = dname2[n_dname-1] = 0;
return True;
}
Modified: branches/DATASYMS/coregrind/m_stacktrace.c
===================================================================
--- branches/DATASYMS/coregrind/m_stacktrace.c 2008-02-24 19:51:51 UTC (rev 7452)
+++ branches/DATASYMS/coregrind/m_stacktrace.c 2008-02-25 00:11:05 UTC (rev 7453)
@@ -136,6 +136,11 @@
* This most frequently happens at the end of a function when
* a tail call occurs and we wind up using the CFI info for the
* next function which is completely wrong.
+ *
+ * Note that VG_(get_data_description) (in m_debuginfo) has to take
+ * this same problem into account when unwinding the stack to
+ * examine local variable descriptions (as documented therein in
+ * comments).
*/
while (True) {
@@ -208,6 +213,11 @@
* This most frequently happens at the end of a function when
* a tail call occurs and we wind up using the CFI info for the
* next function which is completely wrong.
+ *
+ * Note that VG_(get_data_description) (in m_debuginfo) has to take
+ * this same problem into account when unwinding the stack to
+ * examine local variable descriptions (as documented therein in
+ * comments).
*/
while (True) {
|