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
(1) |
2
(13) |
3
(1) |
|
4
(1) |
5
(11) |
6
|
7
|
8
(3) |
9
(18) |
10
(7) |
|
11
(21) |
12
(26) |
13
(16) |
14
(17) |
15
(14) |
16
(6) |
17
(6) |
|
18
(17) |
19
(1) |
20
(16) |
21
(1) |
22
(2) |
23
(14) |
24
(7) |
|
25
(6) |
26
(3) |
27
(11) |
28
(9) |
29
(2) |
30
(7) |
31
(3) |
|
From: Bart V. A. <bva...@ac...> - 2011-12-17 15:40:54
|
On Fri, Dec 2, 2011 at 8:51 PM, Philippe Waroquiers < phi...@sk...> wrote: > In order to have a regtest for the patch in > https://bugs.kde.org/show_bug.cgi?id=286270 , > I need to have a 32 bit and a 64 bit test program (so that one can exec > the other). > > The only way I see to do that is to put a test program in amd64 directory; > and the other one in x86. > > But this means that there is no test for ppc32/ppc64 (unless I duplicates > the test programs there). > > Is there a way to have a test program compiled in 32 bits and another test > program > in 64 bits, but in a "common" test directory, rather than in specific > architecture directory ? > Subversion supports storing soft links. There are several examples in the Valgrind Subversion repository where the source code for 32-bit and 64-bit examples is identical and where one of the two is a soft link to the other: $ ls -l none/tests/ppc*/tw[^i]*c lrwxrwxrwx 1 bart users 16 Oct 23 14:25 none/tests/ppc32/tw.c -> ../ppc64/tw_td.c -rw-r--r-- 1 bart users 10383 Oct 23 14:25 none/tests/ppc64/tw_td.c $ svn log none/tests/ppc64/tw_td.c r6796 | sewardj | 2007-09-02 01:16:49 +0200 (Sun, 02 Sep 2007) | 2 lines Add test for tw and td instructions. $ svn log none/tests/ppc32/tw.c r6797 | sewardj | 2007-09-02 01:22:39 +0200 (Sun, 02 Sep 2007) | 2 lines Add test for tw instruction. Bart. |
|
From: Bart V. A. <bva...@ac...> - 2011-12-17 15:34:40
|
On Thu, Dec 15, 2011 at 9:51 AM, Philippe Waroquiers <
phi...@sk...> wrote:
> valgrind revision: 12308
> VEX revision: 2233
> C compiler: gcc (GCC) 4.6.2 20111027 (Red Hat 4.6.2-1)
> Assembler: GNU assembler version 2.21.53.0.1-3.fc16 20110716
> C library: GNU C Library development release version 2.14.90
> uname -mrs: Linux 3.1.0-0.rc9.git0.2.fc16.kh.ppc64 ppc64
> Vendor version: Fedora release 16 (Verne)
>
> Nightly build on gcc110 ( Fedora release 16 (Verne), ppc64 )
> Started at 2011-12-14 20:00:09 PST
> Ended at 2011-12-15 00:49:27 PST
> Results unchanged from 24 hours ago
>
Hello Maynard,
Had you already noticed this ppc-specific regression test failure ?
=================================================
./valgrind-new/memcheck/tests/ppc32/power_ISA2_05.stderr.diff
=================================================
--- power_ISA2_05.stderr.exp 2011-12-14 22:23:43.381000388 -0800
+++ power_ISA2_05.stderr.out 2011-12-14 22:28:50.539000388 -0800
@@ -1,4 +1,19 @@
+Invalid read of size 4
+ at 0x........: test_lfiwax (power_ISA2_05.c:54)
+ by 0x........: main (power_ISA2_05.c:204)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+
+Process terminating with default action of signal 11 (SIGSEGV)
+ Access not within mapped region at address 0x........
+ at 0x........: test_lfiwax (power_ISA2_05.c:54)
+ by 0x........: main (power_ISA2_05.c:204)
+ If you believe this happened as a result of a stack
+ overflow in your program's main thread (unlikely but
+ possible), you can try to increase the size of the
+ main thread stack using the --main-stacksize= flag.
+ The main thread stack size used in this run was ....
HEAP SUMMARY:
in use at exit: 0 bytes in 0 blocks
@@ -7,4 +22,4 @@
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
|
|
From: <sv...@va...> - 2011-12-17 15:22:59
|
Author: bart
Date: 2011-12-17 15:18:20 +0000 (Sat, 17 Dec 2011)
New Revision: 12312
Log:
DRD: revert r12308 because it didn't help
Modified:
trunk/drd/drd_main.c
Modified: trunk/drd/drd_main.c
===================================================================
--- trunk/drd/drd_main.c 2011-12-17 14:18:25 UTC (rev 12311)
+++ trunk/drd/drd_main.c 2011-12-17 15:18:20 UTC (rev 12312)
@@ -324,20 +324,7 @@
DRD_(trace_mem_access)(a1, len, eStart, 0, 0);
}
- /*
- * Hack: telling the tool about initial permissions happens before
- * the pre_thread_first_insn callback is invoked, which sets
- * DRD_(g_drd_running_tid). Suppress all memory accesses on these
- * initial memory regions since sporadically it happens that an
- * (uninteresting) data race is reported on one of these regions, triggered
- * by the symbol lookup algorithms in the dynamic loader. That behavior
- * can be reproduced on Linux/amd64 by disabling the DRD_(g_drd_running_tid)
- * test below and by running the following command:
- * ./vg-in-place --tool=drd --check-stack-var=yes \
- * drd/tests/annotate_smart_pointer 50 50
- */
- if (UNLIKELY(DRD_(running_thread_inside_pthread_create)()
- || DRD_(g_drd_running_tid) == DRD_INVALID_THREADID))
+ if (UNLIKELY(DRD_(running_thread_inside_pthread_create)()))
{
DRD_(start_suppression)(a1, a2, "pthread_create()");
}
|
|
From: <sv...@va...> - 2011-12-17 14:23:05
|
Author: bart Date: 2011-12-17 14:18:25 +0000 (Sat, 17 Dec 2011) New Revision: 12311 Log: DRD: add two ppc output variants Added: trunk/drd/tests/tc04_free_lock.stderr.exp-ppc trunk/drd/tests/tc04_free_lock.stderr.exp-x86 trunk/drd/tests/tc09_bad_unlock.stderr.exp-ppc trunk/drd/tests/tc09_bad_unlock.stderr.exp-x86 Removed: trunk/drd/tests/tc04_free_lock.stderr.exp trunk/drd/tests/tc09_bad_unlock.stderr.exp Modified: trunk/drd/tests/Makefile.am Modified: trunk/drd/tests/Makefile.am =================================================================== --- trunk/drd/tests/Makefile.am 2011-12-17 12:59:45 UTC (rev 12310) +++ trunk/drd/tests/Makefile.am 2011-12-17 14:18:25 UTC (rev 12311) @@ -229,7 +229,8 @@ tc02_simple_tls.vgtest \ tc03_re_excl.stderr.exp \ tc03_re_excl.vgtest \ - tc04_free_lock.stderr.exp \ + tc04_free_lock.stderr.exp-x86 \ + tc04_free_lock.stderr.exp-ppc \ tc04_free_lock.vgtest \ tc05_simple_race.stderr.exp \ tc05_simple_race.vgtest \ @@ -241,7 +242,8 @@ tc08_hbl2.stderr.exp \ tc08_hbl2.stdout.exp \ tc08_hbl2.vgtest \ - tc09_bad_unlock.stderr.exp \ + tc09_bad_unlock.stderr.exp-x86 \ + tc09_bad_unlock.stderr.exp-ppc \ tc09_bad_unlock.stderr.exp-glibc2.8 \ tc09_bad_unlock.vgtest \ tc10_rec_lock.stderr.exp \ Deleted: trunk/drd/tests/tc04_free_lock.stderr.exp =================================================================== --- trunk/drd/tests/tc04_free_lock.stderr.exp 2011-12-17 12:59:45 UTC (rev 12310) +++ trunk/drd/tests/tc04_free_lock.stderr.exp 2011-12-17 14:18:25 UTC (rev 12311) @@ -1,34 +0,0 @@ - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: free (vg_replace_malloc.c:...) - by 0x........: main (tc04_free_lock.c:24) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc04_free_lock.c:20) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: bar (tc04_free_lock.c:40) - by 0x........: main (tc04_free_lock.c:26) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) - by 0x........: bar (tc04_free_lock.c:38) - by 0x........: main (tc04_free_lock.c:26) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: foo (tc04_free_lock.c:49) - by 0x........: main (tc04_free_lock.c:27) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: foo (tc04_free_lock.c:46) - by 0x........: main (tc04_free_lock.c:27) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: bar (tc04_free_lock.c:40) - by 0x........: main (tc04_free_lock.c:28) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) - by 0x........: bar (tc04_free_lock.c:38) - by 0x........: main (tc04_free_lock.c:28) - - -ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0) Added: trunk/drd/tests/tc04_free_lock.stderr.exp-ppc =================================================================== --- trunk/drd/tests/tc04_free_lock.stderr.exp-ppc (rev 0) +++ trunk/drd/tests/tc04_free_lock.stderr.exp-ppc 2011-12-17 14:18:25 UTC (rev 12311) @@ -0,0 +1,34 @@ + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: free (vg_replace_malloc.c:...) + by 0x........: main (tc04_free_lock.c:24) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: main (tc04_free_lock.c:20) + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: bar (tc04_free_lock.c:38) + by 0x........: main (tc04_free_lock.c:26) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) + by 0x........: bar (tc04_free_lock.c:38) + by 0x........: main (tc04_free_lock.c:26) + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: foo (tc04_free_lock.c:47) + by 0x........: main (tc04_free_lock.c:27) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: foo (tc04_free_lock.c:46) + by 0x........: main (tc04_free_lock.c:27) + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: bar (tc04_free_lock.c:38) + by 0x........: main (tc04_free_lock.c:28) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) + by 0x........: bar (tc04_free_lock.c:38) + by 0x........: main (tc04_free_lock.c:28) + + +ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0) Copied: trunk/drd/tests/tc04_free_lock.stderr.exp-x86 (from rev 12308, trunk/drd/tests/tc04_free_lock.stderr.exp) =================================================================== --- trunk/drd/tests/tc04_free_lock.stderr.exp-x86 (rev 0) +++ trunk/drd/tests/tc04_free_lock.stderr.exp-x86 2011-12-17 14:18:25 UTC (rev 12311) @@ -0,0 +1,34 @@ + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: free (vg_replace_malloc.c:...) + by 0x........: main (tc04_free_lock.c:24) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: main (tc04_free_lock.c:20) + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: bar (tc04_free_lock.c:40) + by 0x........: main (tc04_free_lock.c:26) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) + by 0x........: bar (tc04_free_lock.c:38) + by 0x........: main (tc04_free_lock.c:26) + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: foo (tc04_free_lock.c:49) + by 0x........: main (tc04_free_lock.c:27) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: foo (tc04_free_lock.c:46) + by 0x........: main (tc04_free_lock.c:27) + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: bar (tc04_free_lock.c:40) + by 0x........: main (tc04_free_lock.c:28) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) + by 0x........: bar (tc04_free_lock.c:38) + by 0x........: main (tc04_free_lock.c:28) + + +ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0) Deleted: trunk/drd/tests/tc09_bad_unlock.stderr.exp =================================================================== --- trunk/drd/tests/tc09_bad_unlock.stderr.exp 2011-12-17 12:59:45 UTC (rev 12310) +++ trunk/drd/tests/tc09_bad_unlock.stderr.exp 2011-12-17 14:18:25 UTC (rev 12311) @@ -1,59 +0,0 @@ - -Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: nearly_main (tc09_bad_unlock.c:27) - by 0x........: main (tc09_bad_unlock.c:49) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: nearly_main (tc09_bad_unlock.c:23) - by 0x........: main (tc09_bad_unlock.c:49) - -Thread 2: -Mutex not locked by calling thread: mutex 0x........, recursion count 1, owner 1. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: child_fn (tc09_bad_unlock.c:11) - by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: nearly_main (tc09_bad_unlock.c:31) - by 0x........: main (tc09_bad_unlock.c:49) - -Thread 1: -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: nearly_main (tc09_bad_unlock.c:41) - by 0x........: main (tc09_bad_unlock.c:49) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: nearly_main (tc09_bad_unlock.c:45) - by 0x........: main (tc09_bad_unlock.c:49) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: nearly_main (tc09_bad_unlock.c:31) - by 0x........: main (tc09_bad_unlock.c:49) - ---------------------- -Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: nearly_main (tc09_bad_unlock.c:27) - by 0x........: main (tc09_bad_unlock.c:50) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: nearly_main (tc09_bad_unlock.c:23) - by 0x........: main (tc09_bad_unlock.c:50) - -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: nearly_main (tc09_bad_unlock.c:41) - by 0x........: main (tc09_bad_unlock.c:50) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: nearly_main (tc09_bad_unlock.c:45) - by 0x........: main (tc09_bad_unlock.c:50) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: nearly_main (tc09_bad_unlock.c:31) - by 0x........: main (tc09_bad_unlock.c:50) - - -ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0) Added: trunk/drd/tests/tc09_bad_unlock.stderr.exp-ppc =================================================================== --- trunk/drd/tests/tc09_bad_unlock.stderr.exp-ppc (rev 0) +++ trunk/drd/tests/tc09_bad_unlock.stderr.exp-ppc 2011-12-17 14:18:25 UTC (rev 12311) @@ -0,0 +1,59 @@ + +Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1. + at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:27) + by 0x........: main (tc09_bad_unlock.c:49) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:23) + by 0x........: main (tc09_bad_unlock.c:49) + +Thread 2: +Mutex not locked by calling thread: mutex 0x........, recursion count 1, owner 1. + at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) + by 0x........: child_fn (tc09_bad_unlock.c:11) + by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:31) + by 0x........: main (tc09_bad_unlock.c:49) + +Thread 1: +The object at address 0x........ is not a mutex. + at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:41) + by 0x........: main (tc09_bad_unlock.c:49) + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: nearly_main (tc09_bad_unlock.c:41) + by 0x........: main (tc09_bad_unlock.c:49) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:31) + by 0x........: main (tc09_bad_unlock.c:49) + +--------------------- +Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1. + at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:27) + by 0x........: main (tc09_bad_unlock.c:50) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:23) + by 0x........: main (tc09_bad_unlock.c:50) + +The object at address 0x........ is not a mutex. + at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:41) + by 0x........: main (tc09_bad_unlock.c:50) + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: nearly_main (tc09_bad_unlock.c:41) + by 0x........: main (tc09_bad_unlock.c:50) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:31) + by 0x........: main (tc09_bad_unlock.c:50) + + +ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0) Copied: trunk/drd/tests/tc09_bad_unlock.stderr.exp-x86 (from rev 12308, trunk/drd/tests/tc09_bad_unlock.stderr.exp) =================================================================== --- trunk/drd/tests/tc09_bad_unlock.stderr.exp-x86 (rev 0) +++ trunk/drd/tests/tc09_bad_unlock.stderr.exp-x86 2011-12-17 14:18:25 UTC (rev 12311) @@ -0,0 +1,59 @@ + +Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1. + at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:27) + by 0x........: main (tc09_bad_unlock.c:49) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:23) + by 0x........: main (tc09_bad_unlock.c:49) + +Thread 2: +Mutex not locked by calling thread: mutex 0x........, recursion count 1, owner 1. + at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) + by 0x........: child_fn (tc09_bad_unlock.c:11) + by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:31) + by 0x........: main (tc09_bad_unlock.c:49) + +Thread 1: +The object at address 0x........ is not a mutex. + at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:41) + by 0x........: main (tc09_bad_unlock.c:49) + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: nearly_main (tc09_bad_unlock.c:45) + by 0x........: main (tc09_bad_unlock.c:49) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:31) + by 0x........: main (tc09_bad_unlock.c:49) + +--------------------- +Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1. + at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:27) + by 0x........: main (tc09_bad_unlock.c:50) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:23) + by 0x........: main (tc09_bad_unlock.c:50) + +The object at address 0x........ is not a mutex. + at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:41) + by 0x........: main (tc09_bad_unlock.c:50) + +Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. + at 0x........: nearly_main (tc09_bad_unlock.c:45) + by 0x........: main (tc09_bad_unlock.c:50) +mutex 0x........ was first observed at: + at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) + by 0x........: nearly_main (tc09_bad_unlock.c:31) + by 0x........: main (tc09_bad_unlock.c:50) + + +ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0) |
|
From: <sv...@va...> - 2011-12-17 13:04:24
|
Author: bart
Date: 2011-12-17 12:59:45 +0000 (Sat, 17 Dec 2011)
New Revision: 12310
Log:
DRD, load/store tracing: avoid evaluating the address expression twice
Modified:
trunk/drd/drd_load_store.c
Modified: trunk/drd/drd_load_store.c
===================================================================
--- trunk/drd/drd_load_store.c 2011-12-17 12:53:23 UTC (rev 12309)
+++ trunk/drd/drd_load_store.c 2011-12-17 12:59:45 UTC (rev 12310)
@@ -329,9 +329,15 @@
/**
* Instrument the client code to trace a memory load (--trace-addr).
*/
-static void instr_trace_mem_load(IRSB* const bb, IRExpr* const addr_expr,
- const HWord size)
+static IRExpr* instr_trace_mem_load(IRSB* const bb, IRExpr* addr_expr,
+ const HWord size)
{
+ IRTemp tmp;
+
+ tmp = newIRTemp(bb->tyenv, typeOfIRExpr(bb->tyenv, addr_expr));
+ addStmtToIRSB(bb, IRStmt_WrTmp(tmp, addr_expr));
+ addr_expr = IRExpr_RdTmp(tmp);
+
addStmtToIRSB(bb,
IRStmt_Dirty(
unsafeIRDirty_0_N(/*regparms*/2,
@@ -339,6 +345,8 @@
VG_(fnptr_to_fnentry)
(drd_trace_mem_load),
mkIRExprVec_2(addr_expr, mkIRExpr_HWord(size)))));
+
+ return addr_expr;
}
/**
@@ -493,7 +501,7 @@
addStmtToIRSB(bb, IRStmt_Dirty(di));
}
-static void instrument_store(IRSB* const bb, IRExpr* const addr_expr,
+static void instrument_store(IRSB* const bb, IRExpr* addr_expr,
IRExpr* const data_expr)
{
IRExpr* size_expr;
@@ -503,8 +511,12 @@
size = sizeofIRType(typeOfIRExpr(bb->tyenv, data_expr));
- if (UNLIKELY(DRD_(any_address_is_traced)()))
+ if (UNLIKELY(DRD_(any_address_is_traced)())) {
+ IRTemp tmp = newIRTemp(bb->tyenv, typeOfIRExpr(bb->tyenv, addr_expr));
+ addStmtToIRSB(bb, IRStmt_WrTmp(tmp, addr_expr));
+ addr_expr = IRExpr_RdTmp(tmp);
instr_trace_mem_store(bb, addr_expr, NULL, data_expr);
+ }
if (!s_check_stack_accesses && is_stack_access(bb, addr_expr))
return;
@@ -610,11 +622,12 @@
case Ist_WrTmp:
if (instrument) {
const IRExpr* const data = st->Ist.WrTmp.data;
+ IRExpr* addr_expr = data->Iex.Load.addr;
if (data->tag == Iex_Load) {
- if (UNLIKELY(DRD_(any_address_is_traced)()))
- instr_trace_mem_load(bb, data->Iex.Load.addr,
+ if (UNLIKELY(DRD_(any_address_is_traced)())) {
+ addr_expr = instr_trace_mem_load(bb, addr_expr,
sizeofIRType(data->Iex.Load.ty));
-
+ }
instrument_load(bb, data->Iex.Load.addr,
sizeofIRType(data->Iex.Load.ty));
}
@@ -698,11 +711,12 @@
/* LL */
dataTy = typeOfIRTemp(bb_in->tyenv, st->Ist.LLSC.result);
if (instrument) {
+ IRExpr* addr_expr = st->Ist.LLSC.addr;
if (UNLIKELY(DRD_(any_address_is_traced)()))
- instr_trace_mem_load(bb, st->Ist.LLSC.addr,
- sizeofIRType(dataTy));
+ addr_expr = instr_trace_mem_load(bb, addr_expr,
+ sizeofIRType(dataTy));
- instrument_load(bb, st->Ist.LLSC.addr, sizeofIRType(dataTy));
+ instrument_load(bb, addr_expr, sizeofIRType(dataTy));
}
} else {
/* SC */
|
|
From: <sv...@va...> - 2011-12-17 12:58:05
|
Author: bart
Date: 2011-12-17 12:53:23 +0000 (Sat, 17 Dec 2011)
New Revision: 12309
Log:
Add a configure test for detecting whether gcc supports atomic operations on
64-bit integers on 32-bit platforms. Apparently newer gcc versions support
this but older versions not. Thanks to Philippe Waroquiers for reporting this.
Modified:
trunk/configure.in
trunk/drd/tests/Makefile.am
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2011-12-14 20:05:51 UTC (rev 12308)
+++ trunk/configure.in 2011-12-17 12:53:23 UTC (rev 12309)
@@ -1911,7 +1911,56 @@
AM_CONDITIONAL([HAVE_BUILTIN_ATOMIC_SECONDARY],
[test x$ac_have_builtin_atomic_secondary = xyes])
+# does this compiler have built-in functions for atomic memory access on
+# 64-bit integers for all targets ?
+AC_MSG_CHECKING([if gcc supports __sync_add_and_fetch on uint64_t for all targets])
+
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ #include <stdint.h>
+]], [[
+ uint64_t variable = 1;
+ return __sync_add_and_fetch(&variable, 1)
+]])], [
+ ac_have_builtin_atomic64_primary=yes
+], [
+ ac_have_builtin_atomic64_primary=no
+])
+
+if test x$VGCONF_PLATFORM_SEC_CAPS != x; then
+
+safe_CFLAGS=$CFLAGS
+CFLAGS="$mflag_secondary"
+
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+ #include <stdint.h>
+]], [[
+ uint64_t variable = 1;
+ return __sync_add_and_fetch(&variable, 1)
+]])], [
+ ac_have_builtin_atomic64_secondary=yes
+], [
+ ac_have_builtin_atomic64_secondary=no
+])
+
+CFLAGS=$safe_CFLAGS
+
+fi
+
+if test x$ac_have_builtin_atomic64_primary = xyes && \
+ test x$VGCONF_PLATFORM_SEC_CAPS = x \
+ -o x$ac_have_builtin_atomic64_secondary = xyes; then
+ AC_MSG_RESULT([yes])
+ ac_have_builtin_atomic64=yes
+else
+ AC_MSG_RESULT([no])
+ ac_have_builtin_atomic64=no
+fi
+
+AM_CONDITIONAL([HAVE_BUILTIN_ATOMIC64],
+ [test x$ac_have_builtin_atomic64 = xyes])
+
+
# does g++ have built-in functions for atomic memory access ?
AC_MSG_CHECKING([if g++ supports __sync_add_and_fetch])
Modified: trunk/drd/tests/Makefile.am
===================================================================
--- trunk/drd/tests/Makefile.am 2011-12-14 20:05:51 UTC (rev 12308)
+++ trunk/drd/tests/Makefile.am 2011-12-17 12:53:23 UTC (rev 12309)
@@ -339,11 +339,15 @@
check_PROGRAMS += \
annotate_barrier \
annotate_rwlock \
- annotate_trace_memory \
atomic_var \
circular_buffer
endif
+if HAVE_BUILTIN_ATOMIC64
+check_PROGRAMS += \
+ annotate_trace_memory
+endif
+
if HAVE_BUILTIN_ATOMIC_CXX
check_PROGRAMS += \
annotate_smart_pointer \
|