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
(25) |
2
(25) |
3
(5) |
4
(13) |
|
5
(4) |
6
(8) |
7
(6) |
8
|
9
(10) |
10
(15) |
11
(9) |
|
12
(14) |
13
(10) |
14
(24) |
15
(41) |
16
(13) |
17
(9) |
18
(3) |
|
19
(10) |
20
(11) |
21
(28) |
22
(36) |
23
(52) |
24
(36) |
25
(12) |
|
26
(31) |
27
(27) |
28
(20) |
29
(15) |
30
(22) |
31
(17) |
|
|
From: <sv...@va...> - 2009-07-27 23:09:50
|
Author: tom
Date: 2009-07-28 00:09:42 +0100 (Tue, 28 Jul 2009)
New Revision: 10642
Log:
Make sure the x86 direction flag is cleared again if we set it as part
of a test, as the x86 requires it to be clear when any function is called
and gcc 4.3.0 and later rely on that. Fixes #201708.
Modified:
trunk/none/tests/x86/bug152818-x86.c
trunk/none/tests/x86/gen_insn_test.pl
Modified: trunk/none/tests/x86/bug152818-x86.c
===================================================================
--- trunk/none/tests/x86/bug152818-x86.c 2009-07-27 22:21:22 UTC (rev 10641)
+++ trunk/none/tests/x86/bug152818-x86.c 2009-07-27 23:09:42 UTC (rev 10642)
@@ -60,6 +60,7 @@
"lahf \t\n" \
"movl %%eax, %1 \t\n" \
"movl %%esi, %2 \t\n" \
+ "cld \t\n" \
: "=d"(out_eax), \
"=b"(out_eflags), \
"=r"(out_esi) \
Modified: trunk/none/tests/x86/gen_insn_test.pl
===================================================================
--- trunk/none/tests/x86/gen_insn_test.pl 2009-07-27 22:21:22 UTC (rev 10641)
+++ trunk/none/tests/x86/gen_insn_test.pl 2009-07-27 23:09:42 UTC (rev 10642)
@@ -809,7 +809,8 @@
}
print qq| \"frstor %$stateargnum\\n\"\n|;
-
+ print qq| \"cld\\n\"\n|;
+
print qq| :|;
$prefix = " ";
|
|
From: Nicholas N. <n.n...@gm...> - 2009-07-27 22:33:52
|
On Tue, Jul 28, 2009 at 7:53 AM, Josef Weidendorfer<Jos...@gm...> wrote: > On Monday 27 July 2009, Samuel Bronson wrote: >> So, my question is basically: if I want to do this, should I extend an >> existing skin to support it, create a new skin, or what? The preferred terminology these days is "tool", we haven't used "skin" for several years. > Checkout Callgrind with the option "--ct-verbose=1". > > And then use the debug info module of Valgrind to add type, name > and value information for the arguments and the return type/value > (perhaps this needs improving the debug info reader?). This might be possible, but I suspect it will not be easy, and may be hard to make robust. The problem is that Valgrind works mostly at the binary level, in terms of memory addresses, registers, system calls, etc. And your tool needs to operate at the source code level. Mapping from binary to source is difficult; you can use debug info for a lot of it... but think about things like working out where function arguments are -- they might usually be on the stack but depending on compiler optimisations they might be passed in registers. Maybe debug info can tell you that precisely (I guess GDB has to know that stuff) but whether Valgrind's debug info reading gives enough info I don't know. Nick |
|
From: <sv...@va...> - 2009-07-27 22:21:30
|
Author: njn
Date: 2009-07-27 23:21:22 +0100 (Mon, 27 Jul 2009)
New Revision: 10641
Log:
Clarify a comment.
Modified:
trunk/include/pub_tool_tooliface.h
Modified: trunk/include/pub_tool_tooliface.h
===================================================================
--- trunk/include/pub_tool_tooliface.h 2009-07-27 17:43:39 UTC (rev 10640)
+++ trunk/include/pub_tool_tooliface.h 2009-07-27 22:21:22 UTC (rev 10641)
@@ -276,9 +276,10 @@
/* Want to report errors from tool? This implies use of suppressions, too. */
extern void VG_(needs_tool_errors) (
- // Identify if two errors are equal, or equal enough. `res' indicates how
- // close is "close enough". `res' should be passed on as necessary, eg. if
- // the Error's `extra' part contains an ExeContext, `res' should be
+ // Identify if two errors are equal, or close enough. This function is
+ // only called if e1 and e2 will have the same error kind. `res' indicates
+ // how close is "close enough". `res' should be passed on as necessary,
+ // eg. if the Error's `extra' part contains an ExeContext, `res' should be
// passed to VG_(eq_ExeContext)() if the ExeContexts are considered. Other
// than that, probably don't worry about it unless you have lots of very
// similar errors occurring.
|
|
From: Josef W. <Jos...@gm...> - 2009-07-27 21:54:14
|
On Monday 27 July 2009, Samuel Bronson wrote: > So, my question is basically: if I want to do this, should I extend an > existing skin to support it, create a new skin, or what? Checkout Callgrind with the option "--ct-verbose=1". And then use the debug info module of Valgrind to add type, name and value information for the arguments and the return type/value (perhaps this needs improving the debug info reader?). Josef > > (I realize that there is no way this is going to be in the next > release ;-) > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: Samuel B. <na...@gm...> - 2009-07-27 21:33:38
|
Hi. I'm thinking about maybe implementing an ltrace-like skin for valgrind, or possibly extending an existing skin with functionality like that of ltrace. I assume most of you know this already, but ltrace is a tool for tracing calls to shared libraries on Linux (and perhaps other ELF-based systems) which can print the arguments passed to the traced function calls (using information from configuration files). Unfortunately, the way it works means that it can only catch calls through symbols that are actually included in the import table of the calling executable (or, theoretically, the calling library) -- not arbitrary calls. This is because it works by setting breakpoints in the PLT entries for the imported functions. It seems that the simplest way to avoid this problem is to actually trace the executed machine code, and implementing it in valgrind seems the simplest approach to that. So, my question is basically: if I want to do this, should I extend an existing skin to support it, create a new skin, or what? (I realize that there is no way this is going to be in the next release ;-) |
|
From: <sv...@va...> - 2009-07-27 17:43:51
|
Author: bart
Date: 2009-07-27 18:43:39 +0100 (Mon, 27 Jul 2009)
New Revision: 10640
Log:
Follow-up of r10638 and r10639: explained in the manual that DRD is now
able to perform rwlock type checking.
Modified:
trunk/drd/docs/drd-manual.xml
Modified: trunk/drd/docs/drd-manual.xml
===================================================================
--- trunk/drd/docs/drd-manual.xml 2009-07-27 17:02:52 UTC (rev 10639)
+++ trunk/drd/docs/drd-manual.xml 2009-07-27 17:43:39 UTC (rev 10640)
@@ -147,7 +147,8 @@
Synchronization objects and operations on these synchronization
objects. The following types of synchronization objects have been
defined in the POSIX threads standard: mutexes, condition variables,
- semaphores, reader-writer locks, barriers and spinlocks.
+ semaphores, reader-writer synchronization objects, barriers and
+ spinlocks.
</para>
</listitem>
</itemizedlist>
@@ -699,9 +700,9 @@
<title>Detected Errors: Lock Contention</title>
<para>
-Threads must be able to make progress without being blocked for too
-long by other threads. Sometimes a thread has to wait until a mutex or
-reader-writer lock is unlocked by another thread. This is called
+Threads must be able to make progress without being blocked for too long by
+other threads. Sometimes a thread has to wait until a mutex or reader-writer
+synchronization object is unlocked by another thread. This is called
<emphasis>lock contention</emphasis>.
</para>
@@ -800,22 +801,37 @@
</listitem>
<listitem>
<para>
- Destruction or deallocation of a locked reader-writer lock.
+ Destruction or deallocation of a locked reader-writer synchronization
+ object.
</para>
</listitem>
<listitem>
<para>
- Attempts to unlock a reader-writer lock that was not locked by
- the calling thread.
+ Attempts to unlock a reader-writer synchronization object that was not
+ locked by the calling thread.
</para>
</listitem>
<listitem>
<para>
- Attempts to recursively lock a reader-writer lock exclusively.
+ Attempts to recursively lock a reader-writer synchronization object
+ exclusively.
</para>
</listitem>
<listitem>
<para>
+ Attempts to pass the address of a user-defined reader-writer
+ synchronization object to a POSIX threads function.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Attempts to pass the address of a POSIX reader-writer synchronization
+ object to one of the annotations for user-defined reader-writer
+ synchronization objects.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
Reinitialization of a mutex, condition variable, reader-writer
lock, semaphore or barrier.
</para>
@@ -833,9 +849,8 @@
</listitem>
<listitem>
<para>
- Exiting a thread without first unlocking the spinlocks,
- mutexes or reader-writer locks that were locked by that
- thread.
+ Exiting a thread without first unlocking the spinlocks, mutexes or
+ reader-writer synchronization objects that were locked by that thread.
</para>
</listitem>
</itemizedlist>
@@ -1062,6 +1077,12 @@
</para>
<para>
+For an example of how to use the annotations for user-defined reader-writer
+synchronization objects, see
+also <literal>drd/tests/annotate_rwlock.c</literal>.
+</para>
+
+<para>
Note: if you compiled Valgrind yourself, the header file
<literal><valgrind/drd.h></literal> will have been installed in
the directory <literal>/usr/include</literal> by the command
|
|
From: Nicholas N. <n.n...@gm...> - 2009-07-27 17:31:31
|
Nightly build on ocean32 ( Ubuntu 9.04, x86_64 (32-bit only) )
Started at 2009-07-28 03:00:01 EST
Ended at 2009-07-28 03:31:05 EST
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
== 481 tests, 9 stderr failures, 1 stdout failure, 0 post failures ==
memcheck/tests/origin5-bz2 (stderr)
none/tests/empty-exe (stderr)
none/tests/shell (stdout)
none/tests/shell (stderr)
none/tests/shell_valid1 (stderr)
none/tests/shell_valid2 (stderr)
none/tests/shell_valid3 (stderr)
none/tests/shell_zerolength (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
exp-ptrcheck/tests/supp (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
== 480 tests, 10 stderr failures, 1 stdout failure, 0 post failures ==
memcheck/tests/origin5-bz2 (stderr)
none/tests/empty-exe (stderr)
none/tests/shell (stdout)
none/tests/shell (stderr)
none/tests/shell_valid1 (stderr)
none/tests/shell_valid2 (stderr)
none/tests/shell_valid3 (stderr)
none/tests/shell_zerolength (stderr)
helgrind/tests/hg03_inherit (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
exp-ptrcheck/tests/supp (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Tue Jul 28 03:16:21 2009
--- new.short Tue Jul 28 03:31:05 2009
***************
*** 8,10 ****
! == 480 tests, 10 stderr failures, 1 stdout failure, 0 post failures ==
memcheck/tests/origin5-bz2 (stderr)
--- 8,10 ----
! == 481 tests, 9 stderr failures, 1 stdout failure, 0 post failures ==
memcheck/tests/origin5-bz2 (stderr)
***************
*** 17,19 ****
none/tests/shell_zerolength (stderr)
- helgrind/tests/hg03_inherit (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
--- 17,18 ----
=================================================
./valgrind-new/exp-ptrcheck/tests/supp.stderr.diff
=================================================
--- supp.stderr.exp 2009-07-28 03:17:07.000000000 +1000
+++ supp.stderr.out 2009-07-28 03:31:02.000000000 +1000
@@ -1,7 +1,7 @@
Syscall param write(buf) is non-contiguous
- at 0x........: write (in /...libc...)
- by 0x........: main (supp.c:16)
+ at 0x........: ??? (in /lib32/ld-2.9.so)
+ by 0x........: (below main)
First byte (0x........) is 3 bytes inside a 6-byte block alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (supp.c:12)
=================================================
./valgrind-new/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2009-07-28 03:16:56.000000000 +1000
+++ tc06_two_races_xml.stderr.out 2009-07-28 03:28:21.000000000 +1000
@@ -43,16 +43,6 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>do_clone</fn>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>pthread_create@@GLIBC_2.2.5</fn>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<fn>pthread_create_WRK</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2009-07-28 03:18:00.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-28 03:25:54.000000000 +1000
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,7 +27,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -38,7 +38,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -49,7 +49,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -60,7 +60,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -71,7 +71,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -82,7 +82,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -93,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -104,7 +104,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2009-07-28 03:18:00.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-28 03:25:54.000000000 +1000
@@ -28,7 +28,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -38,7 +39,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -48,7 +50,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -58,7 +61,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -68,7 +72,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -78,7 +83,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2009-07-28 03:18:00.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-28 03:25:54.000000000 +1000
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,85 +9,91 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2854)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2858)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
<truncated beyond 100 lines>
=================================================
./valgrind-new/none/tests/empty-exe.stderr.diff
=================================================
--- empty-exe.stderr.exp 2009-07-28 03:19:30.000000000 +1000
+++ empty-exe.stderr.out 2009-07-28 03:27:14.000000000 +1000
@@ -1,2 +1,2 @@
-
-
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./empty-exe: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell.stderr.diff
=================================================
--- shell.stderr.exp 2009-07-28 03:19:30.000000000 +1000
+++ shell.stderr.out 2009-07-28 03:27:35.000000000 +1000
@@ -1,8 +1,3 @@
-./shell: ./x86/: is a directory
-./shell: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell: ./shell_binaryfile: cannot execute binary file
-./shell: ./shell_nosuchfile: No such file or directory
-./shell: shell_nosuchfile: command not found
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell.stderr.diff-dash
=================================================
--- shell.stderr.exp-dash 2009-07-28 03:19:30.000000000 +1000
+++ shell.stderr.out 2009-07-28 03:27:35.000000000 +1000
@@ -1,8 +1,3 @@
-./shell: 10: ./x86/: Permission denied
-./shell: 13: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell_binaryfile: 4: Syntax error: ")" unexpected
-./shell: 22: ./shell_nosuchfile: not found
-./shell: 25: shell_nosuchfile: not found
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell.stdout.diff
=================================================
--- shell.stdout.exp 2009-07-28 03:19:30.000000000 +1000
+++ shell.stdout.out 2009-07-28 03:27:35.000000000 +1000
@@ -1,10 +0,0 @@
-Execute a directory
-Execute a non-executable file
-Execute a script with a bad interpreter name
-Execute a binary file
-Execute a non-existent file
-Execute a non-existent file (2)
-Execute a valid script with a #! line
-Execute a valid script without a #! line
-Execute a valid script with #! but no interpname
-Execute a zero-length file
=================================================
./valgrind-new/none/tests/shell_valid1.stderr.diff
=================================================
--- shell_valid1.stderr.exp 2009-07-28 03:19:30.000000000 +1000
+++ shell_valid1.stderr.out 2009-07-28 03:27:35.000000000 +1000
@@ -0,0 +1,3 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid1: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_valid2.stderr.diff
=================================================
--- shell_valid2.stderr.exp 2009-07-28 03:19:30.000000000 +1000
+++ shell_valid2.stderr.out 2009-07-28 03:27:35.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid2: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_valid3.stderr.diff
=================================================
--- shell_valid3.stderr.exp 2009-07-28 03:19:30.000000000 +1000
+++ shell_valid3.stderr.out 2009-07-28 03:27:35.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid3: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_zerolength.stderr.diff
=================================================
--- shell_zerolength.stderr.exp 2009-07-28 03:19:30.000000000 +1000
+++ shell_zerolength.stderr.out 2009-07-28 03:27:35.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_zerolength: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_zerolength.stderr.diff-dash
=================================================
--- shell_zerolength.stderr.exp-dash 2009-07-28 03:19:30.000000000 +1000
+++ shell_zerolength.stderr.out 2009-07-28 03:27:35.000000000 +1000
@@ -1 +1,2 @@
-Bus error
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_zerolength: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/exp-ptrcheck/tests/supp.stderr.diff
=================================================
--- supp.stderr.exp 2009-07-28 03:01:06.000000000 +1000
+++ supp.stderr.out 2009-07-28 03:16:19.000000000 +1000
@@ -1,7 +1,7 @@
Syscall param write(buf) is non-contiguous
- at 0x........: write (in /...libc...)
- by 0x........: main (supp.c:16)
+ at 0x........: ??? (in /lib32/ld-2.9.so)
+ by 0x........: (below main)
First byte (0x........) is 3 bytes inside a 6-byte block alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (supp.c:12)
=================================================
./valgrind-old/helgrind/tests/hg03_inherit.stderr.diff
=================================================
--- hg03_inherit.stderr.exp 2009-07-28 03:00:49.000000000 +1000
+++ hg03_inherit.stderr.out 2009-07-28 03:13:28.000000000 +1000
@@ -15,13 +15,4 @@
Location 0x........ is 0 bytes inside shared[1],
declared at hg03_inherit.c:11, in frame #x of thread x
-Possible data race during write of size 4 at 0x........ by thread #x
- at 0x........: t2 (hg03_inherit.c:29)
- by 0x........: mythread_wrapper (hg_intercepts.c:...)
- ...
- This conflicts with a previous read of size 4 by thread #x
- at 0x........: main (hg03_inherit.c:60)
- Location 0x........ is 0 bytes inside shared[1],
- declared at hg03_inherit.c:11, in frame #x of thread x
-
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2009-07-28 03:00:49.000000000 +1000
+++ tc06_two_races_xml.stderr.out 2009-07-28 03:13:39.000000000 +1000
@@ -43,16 +43,6 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>do_clone</fn>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>pthread_create@@GLIBC_2.2.5</fn>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<fn>pthread_create_WRK</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2009-07-28 03:02:04.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-28 03:11:13.000000000 +1000
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,7 +27,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -38,7 +38,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -49,7 +49,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -60,7 +60,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -71,7 +71,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -82,7 +82,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -93,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -104,7 +104,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2009-07-28 03:02:04.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-28 03:11:13.000000000 +1000
@@ -28,7 +28,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -38,7 +39,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -48,7 +50,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -58,7 +61,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -68,7 +72,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -78,7 +83,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2009-07-28 03:02:04.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-28 03:11:13.000000000 +1000
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,85 +9,91 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2854)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2858)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
<truncated beyond 100 lines>
=================================================
./valgrind-old/none/tests/empty-exe.stderr.diff
=================================================
--- empty-exe.stderr.exp 2009-07-28 03:03:48.000000000 +1000
+++ empty-exe.stderr.out 2009-07-28 03:12:32.000000000 +1000
@@ -1,2 +1,2 @@
-
-
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./empty-exe: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell.stderr.diff
=================================================
--- shell.stderr.exp 2009-07-28 03:03:48.000000000 +1000
+++ shell.stderr.out 2009-07-28 03:12:53.000000000 +1000
@@ -1,8 +1,3 @@
-./shell: ./x86/: is a directory
-./shell: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell: ./shell_binaryfile: cannot execute binary file
-./shell: ./shell_nosuchfile: No such file or directory
-./shell: shell_nosuchfile: command not found
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell.stderr.diff-dash
=================================================
--- shell.stderr.exp-dash 2009-07-28 03:03:48.000000000 +1000
+++ shell.stderr.out 2009-07-28 03:12:53.000000000 +1000
@@ -1,8 +1,3 @@
-./shell: 10: ./x86/: Permission denied
-./shell: 13: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell_binaryfile: 4: Syntax error: ")" unexpected
-./shell: 22: ./shell_nosuchfile: not found
-./shell: 25: shell_nosuchfile: not found
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell.stdout.diff
=================================================
--- shell.stdout.exp 2009-07-28 03:03:48.000000000 +1000
+++ shell.stdout.out 2009-07-28 03:12:53.000000000 +1000
@@ -1,10 +0,0 @@
-Execute a directory
-Execute a non-executable file
-Execute a script with a bad interpreter name
-Execute a binary file
-Execute a non-existent file
-Execute a non-existent file (2)
-Execute a valid script with a #! line
-Execute a valid script without a #! line
-Execute a valid script with #! but no interpname
-Execute a zero-length file
=================================================
./valgrind-old/none/tests/shell_valid1.stderr.diff
=================================================
--- shell_valid1.stderr.exp 2009-07-28 03:03:48.000000000 +1000
+++ shell_valid1.stderr.out 2009-07-28 03:12:53.000000000 +1000
@@ -0,0 +1,3 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid1: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell_valid2.stderr.diff
=================================================
--- shell_valid2.stderr.exp 2009-07-28 03:03:48.000000000 +1000
+++ shell_valid2.stderr.out 2009-07-28 03:12:53.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid2: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell_valid3.stderr.diff
=================================================
--- shell_valid3.stderr.exp 2009-07-28 03:03:48.000000000 +1000
+++ shell_valid3.stderr.out 2009-07-28 03:12:53.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid3: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell_zerolength.stderr.diff
=================================================
--- shell_zerolength.stderr.exp 2009-07-28 03:03:48.000000000 +1000
+++ shell_zerolength.stderr.out 2009-07-28 03:12:53.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_zerolength: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell_zerolength.stderr.diff-dash
=================================================
--- shell_zerolength.stderr.exp-dash 2009-07-28 03:03:48.000000000 +1000
+++ shell_zerolength.stderr.out 2009-07-28 03:12:53.000000000 +1000
@@ -1 +1,2 @@
-Bus error
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_zerolength: bad interpreter (/bin/sh): VG_(strerror): unknown error
|
|
From: <sv...@va...> - 2009-07-27 17:03:05
|
Author: bart
Date: 2009-07-27 18:02:52 +0100 (Mon, 27 Jul 2009)
New Revision: 10639
Log:
- Added more rwlock type checking.
- The rwlock_type_checking test should now no longer trigger a sporadic
deadlock.
Modified:
trunk/drd/drd_rwlock.c
trunk/drd/tests/rwlock_type_checking.c
trunk/drd/tests/rwlock_type_checking.stderr.exp
Modified: trunk/drd/drd_rwlock.c
===================================================================
--- trunk/drd/drd_rwlock.c 2009-07-27 16:03:51 UTC (rev 10638)
+++ trunk/drd/drd_rwlock.c 2009-07-27 17:02:52 UTC (rev 10639)
@@ -331,6 +331,9 @@
p = DRD_(rwlock_get)(rwlock);
if (p)
+ drd_rwlock_check_type(p, rwlock_type);
+
+ if (p)
{
const ThreadId vg_tid = VG_(get_running_tid)();
RwlockErrInfo REI = { DRD_(thread_get_running_tid)(), p->a1 };
@@ -364,6 +367,8 @@
return;
}
+ drd_rwlock_check_type(p, rwlock_type);
+
DRD_(clientobj_remove)(rwlock, ClientRwlock);
}
@@ -545,6 +550,9 @@
&GEI);
return;
}
+
+ drd_rwlock_check_type(p, rwlock_type);
+
if (! DRD_(rwlock_is_locked_by)(p, drd_tid))
{
RwlockErrInfo REI = { DRD_(thread_get_running_tid)(), p->a1 };
Modified: trunk/drd/tests/rwlock_type_checking.c
===================================================================
--- trunk/drd/tests/rwlock_type_checking.c 2009-07-27 16:03:51 UTC (rev 10638)
+++ trunk/drd/tests/rwlock_type_checking.c 2009-07-27 17:02:52 UTC (rev 10639)
@@ -10,6 +10,7 @@
#include <pthread.h>
#include <stdio.h>
+#include <string.h>
#include "../../config.h"
#include "../../drd/drd.h"
@@ -17,14 +18,15 @@
int main(int argc, char** argv)
{
pthread_rwlock_t posix_rwlock;
- int user_defined_rwlock;
+ pthread_rwlock_t user_defined_rwlock;
+ memset(&user_defined_rwlock, 0, sizeof(user_defined_rwlock));
ANNOTATE_RWLOCK_CREATE(&user_defined_rwlock);
pthread_rwlock_init(&posix_rwlock, 0);
- pthread_rwlock_rdlock((pthread_rwlock_t*)&user_defined_rwlock);
+ pthread_rwlock_init((pthread_rwlock_t*)&user_defined_rwlock, 0);
- ANNOTATE_READERLOCK_ACQUIRED(&posix_rwlock);
+ ANNOTATE_READERLOCK_RELEASED(&posix_rwlock);
pthread_rwlock_destroy(&posix_rwlock);
ANNOTATE_RWLOCK_DESTROY(&user_defined_rwlock);
Modified: trunk/drd/tests/rwlock_type_checking.stderr.exp
===================================================================
--- trunk/drd/tests/rwlock_type_checking.stderr.exp 2009-07-27 16:03:51 UTC (rev 10638)
+++ trunk/drd/tests/rwlock_type_checking.stderr.exp 2009-07-27 17:02:52 UTC (rev 10639)
@@ -1,6 +1,6 @@
Attempt to use a user-defined rwlock as a POSIX rwlock: rwlock 0x.........
- at 0x........: pthread_rwlock_rdlock* (drd_pthread_intercepts.c:?)
+ at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
by 0x........: main (rwlock_type_checking.c:?)
rwlock 0x........ was first observed at:
at 0x........: vgDrdCl_annotate_rwlock (drd.h:?)
@@ -12,20 +12,6 @@
rwlock 0x........ was first observed at:
at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
by 0x........: main (rwlock_type_checking.c:?)
-
-Destroying locked rwlock: rwlock 0x.........
- at 0x........: pthread_rwlock_destroy* (drd_pthread_intercepts.c:?)
- by 0x........: main (rwlock_type_checking.c:?)
-rwlock 0x........ was first observed at:
- at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
- by 0x........: main (rwlock_type_checking.c:?)
-
-Destroying locked rwlock: rwlock 0x.........
- at 0x........: vgDrdCl_annotate_rwlock (drd.h:?)
- by 0x........: main (rwlock_type_checking.c:?)
-rwlock 0x........ was first observed at:
- at 0x........: vgDrdCl_annotate_rwlock (drd.h:?)
- by 0x........: main (rwlock_type_checking.c:?)
Finished.
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 2 contexts (suppressed: 0 from 0)
|
|
From: Nicholas N. <n.n...@gm...> - 2009-07-27 16:36:43
|
Nightly build on ocean ( Ubuntu 9.04, x86_64 )
Started at 2009-07-28 02:00:02 EST
Ended at 2009-07-28 02:36:23 EST
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
== 524 tests, 1 stderr failure, 0 stdout failures, 0 post failures ==
helgrind/tests/tc06_two_races_xml (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
== 524 tests, 2 stderr failures, 0 stdout failures, 0 post failures ==
helgrind/tests/hg03_inherit (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Tue Jul 28 02:15:56 2009
--- new.short Tue Jul 28 02:36:23 2009
***************
*** 8,11 ****
! == 524 tests, 2 stderr failures, 0 stdout failures, 0 post failures ==
! helgrind/tests/hg03_inherit (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
--- 8,10 ----
! == 524 tests, 1 stderr failure, 0 stdout failures, 0 post failures ==
helgrind/tests/tc06_two_races_xml (stderr)
=================================================
./valgrind-new/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2009-07-28 02:16:32.000000000 +1000
+++ tc06_two_races_xml.stderr.out 2009-07-28 02:33:59.000000000 +1000
@@ -43,11 +43,6 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>do_clone</fn>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<fn>pthread_create@@GLIBC_2.2.5</fn>
</frame>
<frame>
=================================================
./valgrind-old/helgrind/tests/hg03_inherit.stderr.diff
=================================================
--- hg03_inherit.stderr.exp 2009-07-28 02:00:36.000000000 +1000
+++ hg03_inherit.stderr.out 2009-07-28 02:13:18.000000000 +1000
@@ -15,13 +15,4 @@
Location 0x........ is 0 bytes inside shared[1],
declared at hg03_inherit.c:11, in frame #x of thread x
-Possible data race during write of size 4 at 0x........ by thread #x
- at 0x........: t2 (hg03_inherit.c:29)
- by 0x........: mythread_wrapper (hg_intercepts.c:...)
- ...
- This conflicts with a previous read of size 4 by thread #x
- at 0x........: main (hg03_inherit.c:60)
- Location 0x........ is 0 bytes inside shared[1],
- declared at hg03_inherit.c:11, in frame #x of thread x
-
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2009-07-28 02:00:36.000000000 +1000
+++ tc06_two_races_xml.stderr.out 2009-07-28 02:13:28.000000000 +1000
@@ -43,11 +43,6 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>do_clone</fn>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<fn>pthread_create@@GLIBC_2.2.5</fn>
</frame>
<frame>
|
|
From: <sv...@va...> - 2009-07-27 16:04:02
|
Author: bart
Date: 2009-07-27 17:03:51 +0100 (Mon, 27 Jul 2009)
New Revision: 10638
Log:
Implemented type checking for reader-writer synchronization
objects: complain upon attempts to use a POSIX rwlock where a
user-defined rwlock is expected and vice versa.
Added:
trunk/drd/tests/rwlock_type_checking.c
trunk/drd/tests/rwlock_type_checking.stderr.exp
trunk/drd/tests/rwlock_type_checking.vgtest
Modified:
trunk/drd/drd_clientobj.h
trunk/drd/drd_rwlock.c
trunk/drd/tests/
trunk/drd/tests/Makefile.am
Modified: trunk/drd/drd_clientobj.h
===================================================================
--- trunk/drd/drd_clientobj.h 2009-07-27 14:48:06 UTC (rev 10637)
+++ trunk/drd/drd_clientobj.h 2009-07-27 16:03:51 UTC (rev 10638)
@@ -124,6 +124,7 @@
void (*cleanup)(union drd_clientobj*);
void (*delete_thread)(union drd_clientobj*, DrdThreadId);
ExeContext* first_observed_at;
+ RwLockT rwlock_type;
OSet* thread_info;
ULong acquiry_time_ms;
ExeContext* acquired_at;
Modified: trunk/drd/drd_rwlock.c
===================================================================
--- trunk/drd/drd_rwlock.c 2009-07-27 14:48:06 UTC (rev 10637)
+++ trunk/drd/drd_rwlock.c 2009-07-27 16:03:51 UTC (rev 10638)
@@ -194,9 +194,40 @@
DRD_(vc_cleanup)(&old_vc);
}
+/**
+ * Compare the type of the rwlock specified at initialization time with
+ * the type passed as an argument, and complain if these two types do not
+ * match.
+ */
+static Bool drd_rwlock_check_type(struct rwlock_info* const p,
+ const RwLockT rwlock_type)
+{
+ tl_assert(p);
+ /* The code below has to be updated if additional rwlock types are added. */
+ tl_assert(rwlock_type == pthread_rwlock || rwlock_type == user_rwlock);
+ tl_assert(p->rwlock_type == pthread_rwlock || p->rwlock_type == user_rwlock);
+
+ if (p->rwlock_type == rwlock_type)
+ return True;
+
+ {
+ RwlockErrInfo REI = { DRD_(thread_get_running_tid)(), p->a1 };
+ VG_(maybe_record_error)
+ (VG_(get_running_tid)(),
+ RwlockErr,
+ VG_(get_IP)(VG_(get_running_tid)()),
+ rwlock_type == pthread_rwlock
+ ? "Attempt to use a user-defined rwlock as a POSIX rwlock"
+ : "Attempt to use a POSIX rwlock as a user-defined rwlock",
+ &REI);
+ }
+ return False;
+}
+
/** Initialize the rwlock_info data structure *p. */
static
-void DRD_(rwlock_initialize)(struct rwlock_info* const p, const Addr rwlock)
+void DRD_(rwlock_initialize)(struct rwlock_info* const p, const Addr rwlock,
+ const RwLockT rwlock_type)
{
tl_assert(rwlock != 0);
tl_assert(p->a1 == rwlock);
@@ -205,6 +236,7 @@
p->cleanup = (void(*)(DrdClientobj*))rwlock_cleanup;
p->delete_thread
= (void(*)(DrdClientobj*, DrdThreadId))rwlock_delete_thread;
+ p->rwlock_type = rwlock_type;
p->thread_info = VG_(OSetGen_Create)(
0, 0, VG_(malloc), "drd.rwlock.ri.1", VG_(free));
p->acquiry_time_ms = 0;
@@ -248,14 +280,17 @@
static
struct rwlock_info*
-DRD_(rwlock_get_or_allocate)(const Addr rwlock)
+DRD_(rwlock_get_or_allocate)(const Addr rwlock, const RwLockT rwlock_type)
{
struct rwlock_info* p;
tl_assert(offsetof(DrdClientobj, rwlock) == 0);
p = &(DRD_(clientobj_get)(rwlock, ClientRwlock)->rwlock);
if (p)
+ {
+ drd_rwlock_check_type(p, rwlock_type);
return p;
+ }
if (DRD_(clientobj_present)(rwlock, rwlock + 1))
{
@@ -269,7 +304,7 @@
}
p = &(DRD_(clientobj_add)(rwlock, ClientRwlock)->rwlock);
- DRD_(rwlock_initialize)(p, rwlock);
+ DRD_(rwlock_initialize)(p, rwlock, rwlock_type);
return p;
}
@@ -307,7 +342,7 @@
return p;
}
- p = DRD_(rwlock_get_or_allocate)(rwlock);
+ p = DRD_(rwlock_get_or_allocate)(rwlock, rwlock_type);
return p;
}
@@ -350,7 +385,7 @@
rwlock);
}
- p = DRD_(rwlock_get_or_allocate)(rwlock);
+ p = DRD_(rwlock_get_or_allocate)(rwlock, rwlock_type);
tl_assert(p);
if (DRD_(rwlock_is_wrlocked_by)(p, DRD_(thread_get_running_tid)()))
@@ -422,7 +457,7 @@
}
if (p == 0)
- p = DRD_(rwlock_get_or_allocate)(rwlock);
+ p = DRD_(rwlock_get_or_allocate)(rwlock, rwlock_type);
tl_assert(p);
Property changes on: trunk/drd/tests
___________________________________________________________________
Name: svn:ignore
- *.dSYM
*.stderr.diff*
*.stderr.out
*.stdout.diff*
*.stdout.out
.deps
annotate_rwlock
atomic_var
bar_bad
bar_trivial
boost_thread
circular_buffer
custom_alloc
drd_bitmap_test
fp_race
hg01_all_ok
hg02_deadlock
hg03_inherit
hg04_race
hg05_race2
hg06_readshared
hold_lock
linuxthreads_det
Makefile
Makefile.in
matinv
memory_allocation
monitor_example
new_delete
omp_matinv
omp_prime
omp_printf
pth_barrier
pth_barrier_race
pth_barrier_reinit
pth_broadcast
pth_cancel_locked
pth_cleanup_handler
pth_cond_race
pth_create_chain
pth_create_glibc_2_0
pth_detached
pth_detached_sem
pth_inconsistent_cond_wait
pth_mutex_reinit
pth_process_shared_mutex
pth_spinlock
qt4_mutex
qt4_rwlock
qt4_semaphore
recursive_mutex
rwlock_race
rwlock_test
sem_as_mutex
sem_open
sigalrm
tc01_simple_race
tc02_simple_tls
tc03_re_excl
tc04_free_lock
tc05_simple_race
tc06_two_races
tc07_hbl1
tc08_hbl2
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
thread_name
trylock
tsan_unittest
unit_bitmap
unit_vc
vg_regtest.tmp*
+ *.dSYM
*.stderr.diff*
*.stderr.out
*.stdout.diff*
*.stdout.out
.deps
annotate_rwlock
atomic_var
bar_bad
bar_trivial
boost_thread
circular_buffer
custom_alloc
drd_bitmap_test
fp_race
hg01_all_ok
hg02_deadlock
hg03_inherit
hg04_race
hg05_race2
hg06_readshared
hold_lock
linuxthreads_det
Makefile
Makefile.in
matinv
memory_allocation
monitor_example
new_delete
omp_matinv
omp_prime
omp_printf
pth_barrier
pth_barrier_race
pth_barrier_reinit
pth_broadcast
pth_cancel_locked
pth_cleanup_handler
pth_cond_race
pth_create_chain
pth_create_glibc_2_0
pth_detached
pth_detached_sem
pth_inconsistent_cond_wait
pth_mutex_reinit
pth_process_shared_mutex
pth_spinlock
qt4_mutex
qt4_rwlock
qt4_semaphore
recursive_mutex
rwlock_race
rwlock_test
rwlock_type_checking
sem_as_mutex
sem_open
sigalrm
tc01_simple_race
tc02_simple_tls
tc03_re_excl
tc04_free_lock
tc05_simple_race
tc06_two_races
tc07_hbl1
tc08_hbl2
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
thread_name
trylock
tsan_unittest
unit_bitmap
unit_vc
vg_regtest.tmp*
Modified: trunk/drd/tests/Makefile.am
===================================================================
--- trunk/drd/tests/Makefile.am 2009-07-27 14:48:06 UTC (rev 10637)
+++ trunk/drd/tests/Makefile.am 2009-07-27 16:03:51 UTC (rev 10638)
@@ -144,6 +144,8 @@
rwlock_race.vgtest \
rwlock_test.stderr.exp \
rwlock_test.vgtest \
+ rwlock_type_checking.stderr.exp \
+ rwlock_type_checking.vgtest \
sem_as_mutex.stderr.exp \
sem_as_mutex.vgtest \
sem_as_mutex2.stderr.exp \
@@ -254,6 +256,7 @@
recursive_mutex \
rwlock_race \
rwlock_test \
+ rwlock_type_checking \
sem_as_mutex \
sem_open \
sigalrm \
Added: trunk/drd/tests/rwlock_type_checking.c
===================================================================
--- trunk/drd/tests/rwlock_type_checking.c (rev 0)
+++ trunk/drd/tests/rwlock_type_checking.c 2009-07-27 16:03:51 UTC (rev 10638)
@@ -0,0 +1,35 @@
+/**
+ * @file rwlock_type_checking.c
+ *
+ * @brief Test whether DRD reports attempts to use a user-defined rwlock as
+ * a POSIX rwlock and vice versa.
+ */
+
+
+#define _GNU_SOURCE 1
+
+#include <pthread.h>
+#include <stdio.h>
+#include "../../config.h"
+#include "../../drd/drd.h"
+
+
+int main(int argc, char** argv)
+{
+ pthread_rwlock_t posix_rwlock;
+ int user_defined_rwlock;
+
+ ANNOTATE_RWLOCK_CREATE(&user_defined_rwlock);
+ pthread_rwlock_init(&posix_rwlock, 0);
+
+ pthread_rwlock_rdlock((pthread_rwlock_t*)&user_defined_rwlock);
+
+ ANNOTATE_READERLOCK_ACQUIRED(&posix_rwlock);
+
+ pthread_rwlock_destroy(&posix_rwlock);
+ ANNOTATE_RWLOCK_DESTROY(&user_defined_rwlock);
+
+ fprintf(stderr, "Finished.\n");
+
+ return 0;
+}
Added: trunk/drd/tests/rwlock_type_checking.stderr.exp
===================================================================
--- trunk/drd/tests/rwlock_type_checking.stderr.exp (rev 0)
+++ trunk/drd/tests/rwlock_type_checking.stderr.exp 2009-07-27 16:03:51 UTC (rev 10638)
@@ -0,0 +1,31 @@
+
+Attempt to use a user-defined rwlock as a POSIX rwlock: rwlock 0x.........
+ at 0x........: pthread_rwlock_rdlock* (drd_pthread_intercepts.c:?)
+ by 0x........: main (rwlock_type_checking.c:?)
+rwlock 0x........ was first observed at:
+ at 0x........: vgDrdCl_annotate_rwlock (drd.h:?)
+ by 0x........: main (rwlock_type_checking.c:?)
+
+Attempt to use a POSIX rwlock as a user-defined rwlock: rwlock 0x.........
+ at 0x........: vgDrdCl_annotate_rwlock (drd.h:?)
+ by 0x........: main (rwlock_type_checking.c:?)
+rwlock 0x........ was first observed at:
+ at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
+ by 0x........: main (rwlock_type_checking.c:?)
+
+Destroying locked rwlock: rwlock 0x.........
+ at 0x........: pthread_rwlock_destroy* (drd_pthread_intercepts.c:?)
+ by 0x........: main (rwlock_type_checking.c:?)
+rwlock 0x........ was first observed at:
+ at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
+ by 0x........: main (rwlock_type_checking.c:?)
+
+Destroying locked rwlock: rwlock 0x.........
+ at 0x........: vgDrdCl_annotate_rwlock (drd.h:?)
+ by 0x........: main (rwlock_type_checking.c:?)
+rwlock 0x........ was first observed at:
+ at 0x........: vgDrdCl_annotate_rwlock (drd.h:?)
+ by 0x........: main (rwlock_type_checking.c:?)
+Finished.
+
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/rwlock_type_checking.vgtest
===================================================================
--- trunk/drd/tests/rwlock_type_checking.vgtest (rev 0)
+++ trunk/drd/tests/rwlock_type_checking.vgtest 2009-07-27 16:03:51 UTC (rev 10638)
@@ -0,0 +1,4 @@
+prereq: test -e rwlock_type_checking && ./supported_libpthread
+vgopts: --read-var-info=yes --check-stack-var=yes --show-confl-seg=no
+prog: rwlock_type_checking
+stderr_filter: filter_stderr
|
|
From: <sv...@va...> - 2009-07-27 14:48:15
|
Author: bart
Date: 2009-07-27 15:48:06 +0100 (Mon, 27 Jul 2009)
New Revision: 10637
Log:
Added a new suppression pattern for Darwin. This is necessary because of the changes introduced by r10634.
Modified:
trunk/darwin9-drd.supp
Modified: trunk/darwin9-drd.supp
===================================================================
--- trunk/darwin9-drd.supp 2009-07-27 14:37:24 UTC (rev 10636)
+++ trunk/darwin9-drd.supp 2009-07-27 14:48:06 UTC (rev 10637)
@@ -191,6 +191,12 @@
}
{
drd-darwin-pthread-detach
+ drd:ConflictingAccess
+ ...
+ fun:pthread_detach
+}
+{
+ drd-darwin-pthread-detach
drd:CondRaceErr
...
fun:pthread_detach
|
|
From: <sv...@va...> - 2009-07-27 14:37:39
|
Author: bart
Date: 2009-07-27 15:37:24 +0100 (Mon, 27 Jul 2009)
New Revision: 10636
Log:
Removed -q from the Valgrind options for the bar_bad and bar_trivial tests.
Modified:
trunk/drd/tests/bar_bad.stderr.exp
trunk/drd/tests/bar_bad.vgtest
trunk/drd/tests/bar_trivial.stderr.exp
trunk/drd/tests/bar_trivial.vgtest
Modified: trunk/drd/tests/bar_bad.stderr.exp
===================================================================
--- trunk/drd/tests/bar_bad.stderr.exp 2009-07-27 14:22:25 UTC (rev 10635)
+++ trunk/drd/tests/bar_bad.stderr.exp 2009-07-27 14:37:24 UTC (rev 10636)
@@ -1,4 +1,5 @@
+
initialise a barrier with zero count
pthread_barrier_init: 'count' argument is zero: barrier 0x........
at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
@@ -43,3 +44,5 @@
barrier 0x........ was first observed at:
at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
+
+ERROR SUMMARY: 7 errors from 6 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/bar_bad.vgtest
===================================================================
--- trunk/drd/tests/bar_bad.vgtest 2009-07-27 14:22:25 UTC (rev 10635)
+++ trunk/drd/tests/bar_bad.vgtest 2009-07-27 14:37:24 UTC (rev 10636)
@@ -1,3 +1,2 @@
prereq: test -e ../../helgrind/tests/bar_bad && ./supported_libpthread
prog: ../../helgrind/tests/bar_bad
-vgopts: -q
Modified: trunk/drd/tests/bar_trivial.stderr.exp
===================================================================
--- trunk/drd/tests/bar_trivial.stderr.exp 2009-07-27 14:22:25 UTC (rev 10635)
+++ trunk/drd/tests/bar_trivial.stderr.exp 2009-07-27 14:37:24 UTC (rev 10636)
@@ -0,0 +1,3 @@
+
+
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/bar_trivial.vgtest
===================================================================
--- trunk/drd/tests/bar_trivial.vgtest 2009-07-27 14:22:25 UTC (rev 10635)
+++ trunk/drd/tests/bar_trivial.vgtest 2009-07-27 14:37:24 UTC (rev 10636)
@@ -1,3 +1,2 @@
prereq: test -e ../../helgrind/tests/bar_trivial && ./supported_libpthread
prog: ../../helgrind/tests/bar_trivial
-vgopts: -q
|
|
From: <sv...@va...> - 2009-07-27 14:22:33
|
Author: tom
Date: 2009-07-27 15:22:25 +0100 (Mon, 27 Jul 2009)
New Revision: 10635
Log:
Support epoll_create and epoll_create1 in ptrcheck. Fixes #189762.
Modified:
trunk/exp-ptrcheck/h_main.c
Modified: trunk/exp-ptrcheck/h_main.c
===================================================================
--- trunk/exp-ptrcheck/h_main.c 2009-07-27 14:17:33 UTC (rev 10634)
+++ trunk/exp-ptrcheck/h_main.c 2009-07-27 14:22:25 UTC (rev 10635)
@@ -2206,6 +2206,8 @@
ADD(0, __NR_creat);
ADD(0, __NR_dup);
ADD(0, __NR_dup2);
+ ADD(0, __NR_epoll_create);
+ ADD(0, __NR_epoll_create1);
ADD(0, __NR_execve); /* presumably we see this because the call failed? */
ADD(0, __NR_exit); /* hmm, why are we still alive? */
ADD(0, __NR_exit_group);
|
|
From: <sv...@va...> - 2009-07-27 14:17:50
|
Author: bart
Date: 2009-07-27 15:17:33 +0100 (Mon, 27 Jul 2009)
New Revision: 10634
Log:
- Moved printing the thread number to the function that prints the
preamble.
- Matching suppression types with error contexts does now work properly.
- Cleanup: added more comments, renamed some functions, removed an unused
function argument.
Modified:
trunk/drd/drd_error.c
Modified: trunk/drd/drd_error.c
===================================================================
--- trunk/drd/drd_error.c 2009-07-27 14:04:46 UTC (rev 10633)
+++ trunk/drd/drd_error.c 2009-07-27 14:17:33 UTC (rev 10634)
@@ -52,18 +52,17 @@
}
/**
- * Describe a data address range [a,a+len[ as good as possible, for error
- * messages, putting the result in ai.
+ * Describe the client address a as good as possible, putting the result in ai.
*/
static
-void describe_malloced_addr(Addr const a, SizeT const len, AddrInfo* const ai)
+void describe_malloced_addr(Addr const a, AddrInfo* const ai)
{
- Addr data;
+ Addr heap_block_start;
- if (DRD_(heap_addrinfo)(a, &data, &ai->size, &ai->lastchange))
+ if (DRD_(heap_addrinfo)(a, &heap_block_start, &ai->size, &ai->lastchange))
{
ai->akind = eMallocd;
- ai->rwoffset = a - data;
+ ai->rwoffset = a - heap_block_start;
}
else
{
@@ -72,9 +71,9 @@
}
/**
- * Report where an object has been observed for the first time. The printed
- * call stack will either refer to a pthread_*_init() or a pthread_*lock()
- * call.
+ * Report where a client synchronization object has been observed for the first
+ * time. The printed call stack will either refer to a pthread_*_init() or a
+ * pthread_*lock() call.
*/
static void first_observed(const Addr obj)
{
@@ -133,7 +132,7 @@
if (descr1 == NULL)
{
/* No. Do Plan B. */
- describe_malloced_addr(dri->addr, dri->size, &ai);
+ describe_malloced_addr(dri->addr, &ai);
}
VG_(message)(Vg_UserMsg,
"Conflicting %s by thread %d at 0x%08lx size %ld\n",
@@ -188,19 +187,28 @@
VG_(deleteXA)(descr1);
}
-static Bool drd_tool_error_eq(VgRes res, Error* e1, Error* e2)
+/**
+ * Compare two error contexts. The core function VG_(maybe_record_error)()
+ * calls this function to compare error contexts such that errors that occur
+ * repeatedly are only printed once. This function is only called by the core
+ * if the error kind of e1 and e2 matches and if the ExeContext's of e1 and
+ * e2 also match.
+ */
+static Bool drd_compare_error_contexts(VgRes res, Error* e1, Error* e2)
{
+ /*
+ * Since e1 and e2 have the same error kind and the same error contexts,
+ * no further comparisons have to be performed. Just return true.
+ */
return True;
}
+/**
+ * Called by the core just before an error message will be printed. Used by
+ * DRD to print the thread number as a preamble.
+ */
static void drd_tool_error_before_pp(Error* const e)
{
- /* No need to do anything; drd_tool_error_pp does all
- the work. */
-}
-
-static void drd_tool_error_pp(Error* const e)
-{
static DrdThreadId s_last_tid_printed = 1;
DrdThreadId* err_extra;
@@ -211,7 +219,11 @@
VG_(umsg)("%s:\n", DRD_(thread_get_name)(*err_extra));
s_last_tid_printed = *err_extra;
}
+}
+/** Report an error to the user. */
+static void drd_tool_error_pp(Error* const e)
+{
switch (VG_(get_error_kind)(e))
{
case DataRaceErr: {
@@ -390,32 +402,39 @@
}
}
-static Bool drd_tool_error_recog(Char* const name, Supp* const supp)
+/**
+ * Parse suppression name.
+ *
+ * The suppression types recognized by DRD are the same types as the error
+ * types supported by DRD. So try to match the suppression name against the
+ * names of DRD error types.
+ */
+static Bool drd_is_recognized_suppression(Char* const name, Supp* const supp)
{
- SuppKind skind = 0;
+ DrdErrorKind skind = 0;
if (VG_(strcmp)(name, STR_DataRaceErr) == 0)
- ;
+ skind = DataRaceErr;
else if (VG_(strcmp)(name, STR_MutexErr) == 0)
- ;
+ skind = MutexErr;
else if (VG_(strcmp)(name, STR_CondErr) == 0)
- ;
+ skind = CondErr;
else if (VG_(strcmp)(name, STR_CondDestrErr) == 0)
- ;
+ skind = CondDestrErr;
else if (VG_(strcmp)(name, STR_CondRaceErr) == 0)
- ;
+ skind = CondRaceErr;
else if (VG_(strcmp)(name, STR_CondWaitErr) == 0)
- ;
+ skind = CondWaitErr;
else if (VG_(strcmp)(name, STR_SemaphoreErr) == 0)
- ;
+ skind = SemaphoreErr;
else if (VG_(strcmp)(name, STR_BarrierErr) == 0)
- ;
+ skind = BarrierErr;
else if (VG_(strcmp)(name, STR_RwlockErr) == 0)
- ;
+ skind = RwlockErr;
else if (VG_(strcmp)(name, STR_HoldtimeErr) == 0)
- ;
+ skind = HoldtimeErr;
else if (VG_(strcmp)(name, STR_GenericErr) == 0)
- ;
+ skind = GenericErr;
else
return False;
@@ -423,21 +442,30 @@
return True;
}
+/**
+ * Read additional suppression information from the suppression file.
+ *
+ * None of the suppression patterns recognized by DRD has 'extra' lines
+ * of information in the suppression file, so just return True to indicate
+ * that reading the 'extra' lines succeeded.
+ */
static
-Bool drd_tool_error_read_extra(Int fd, Char** bufpp, SizeT* nBufp, Supp* supp)
+Bool drd_read_extra_suppression_info(Int fd, Char** bufpp,
+ SizeT* nBufp, Supp* supp)
{
return True;
}
-static Bool drd_tool_error_matches(Error* const e, Supp* const supp)
+/**
+ * Determine whether or not the types of the given error message and the
+ * given suppression match.
+ */
+static Bool drd_error_matches_suppression(Error* const e, Supp* const supp)
{
- switch (VG_(get_supp_kind)(supp))
- {
- }
- return True;
+ return VG_(get_supp_kind)(supp) == VG_(get_error_kind)(e);
}
-static Char* drd_tool_error_name(Error* e)
+static Char* drd_get_error_name(Error* e)
{
switch (VG_(get_error_kind)(e))
{
@@ -458,20 +486,27 @@
return 0;
}
-static void drd_tool_error_print_extra(Error* e)
+/**
+ * Print extra suppression information.
+ *
+ * Invoked while printing a suppression pattern because the user
+ * specified --gen-suppressions=yes or all on the command line. DRD does not
+ * define any 'extra' suppression information.
+ */
+static void drd_print_extra_suppression_info(Error* e)
{ }
+/** Tell the Valgrind core about DRD's error handlers. */
void DRD_(register_error_handlers)(void)
{
- // Tool error reporting.
- VG_(needs_tool_errors)(drd_tool_error_eq,
+ VG_(needs_tool_errors)(drd_compare_error_contexts,
drd_tool_error_before_pp,
drd_tool_error_pp,
False,
drd_tool_error_update_extra,
- drd_tool_error_recog,
- drd_tool_error_read_extra,
- drd_tool_error_matches,
- drd_tool_error_name,
- drd_tool_error_print_extra);
+ drd_is_recognized_suppression,
+ drd_read_extra_suppression_info,
+ drd_error_matches_suppression,
+ drd_get_error_name,
+ drd_print_extra_suppression_info);
}
|
|
From: <sv...@va...> - 2009-07-27 14:04:59
|
Author: bart
Date: 2009-07-27 15:04:46 +0100 (Mon, 27 Jul 2009)
New Revision: 10633
Log:
Made the error reporting behavior of DRD similar to that of other
Valgrind tools: if the same kind of error has been detected a second
time with an identical call stack, count it as an error but do not print
it a second time. The total number of detected errors remains unchanged
but the number of error contexts is now reported correctly.
Modified:
trunk/drd/drd_error.c
trunk/drd/tests/bar_bad.stderr.exp
trunk/drd/tests/omp_matinv_racy.stderr.exp
trunk/drd/tests/pth_barrier2.stderr.exp
trunk/drd/tests/pth_barrier3.stderr.exp
trunk/drd/tests/tc09_bad_unlock.stderr.exp
trunk/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8
trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin
trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-ppc
trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-x86
trunk/drd/tests/thread_name.stderr.exp
Modified: trunk/drd/drd_error.c
===================================================================
--- trunk/drd/drd_error.c 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/drd_error.c 2009-07-27 14:04:46 UTC (rev 10633)
@@ -190,7 +190,7 @@
static Bool drd_tool_error_eq(VgRes res, Error* e1, Error* e2)
{
- return False;
+ return True;
}
static void drd_tool_error_before_pp(Error* const e)
Modified: trunk/drd/tests/bar_bad.stderr.exp
===================================================================
--- trunk/drd/tests/bar_bad.stderr.exp 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/tests/bar_bad.stderr.exp 2009-07-27 14:04:46 UTC (rev 10633)
@@ -31,13 +31,6 @@
at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
by 0x........: main (bar_bad.c:?)
-Destruction of barrier that is being waited upon: barrier 0x........
- at 0x........: pthread_barrier_destroy (drd_pthread_intercepts.c:?)
- by 0x........: main (bar_bad.c:?)
-barrier 0x........ was first observed at:
- at 0x........: pthread_barrier_init (drd_pthread_intercepts.c:?)
- by 0x........: main (bar_bad.c:?)
-
destroy a barrier that was never initialised
Not a barrier
Modified: trunk/drd/tests/omp_matinv_racy.stderr.exp
===================================================================
--- trunk/drd/tests/omp_matinv_racy.stderr.exp 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/tests/omp_matinv_racy.stderr.exp 2009-07-27 14:04:46 UTC (rev 10633)
@@ -1 +1 @@
-ERROR SUMMARY: 76 errors from 76 contexts
+ERROR SUMMARY: 76 errors from 7 contexts
Modified: trunk/drd/tests/pth_barrier2.stderr.exp
===================================================================
--- trunk/drd/tests/pth_barrier2.stderr.exp 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/tests/pth_barrier2.stderr.exp 2009-07-27 14:04:46 UTC (rev 10633)
@@ -1 +1 @@
-ERROR SUMMARY: 32 errors from 32 contexts
+ERROR SUMMARY: 32 errors from 1 contexts
Modified: trunk/drd/tests/pth_barrier3.stderr.exp
===================================================================
--- trunk/drd/tests/pth_barrier3.stderr.exp 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/tests/pth_barrier3.stderr.exp 2009-07-27 14:04:46 UTC (rev 10633)
@@ -1 +1 @@
-ERROR SUMMARY: 31 errors from 31 contexts
+ERROR SUMMARY: 31 errors from 1 contexts
Modified: trunk/drd/tests/tc09_bad_unlock.stderr.exp
===================================================================
--- trunk/drd/tests/tc09_bad_unlock.stderr.exp 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/tests/tc09_bad_unlock.stderr.exp 2009-07-27 14:04:46 UTC (rev 10633)
@@ -42,17 +42,6 @@
by 0x........: nearly_main (tc09_bad_unlock.c:23)
by 0x........: main (tc09_bad_unlock.c:50)
-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:50)
-
-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)
@@ -66,4 +55,4 @@
by 0x........: nearly_main (tc09_bad_unlock.c:31)
by 0x........: main (tc09_bad_unlock.c:50)
-ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8
===================================================================
--- trunk/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8 2009-07-27 14:04:46 UTC (rev 10633)
@@ -42,17 +42,6 @@
by 0x........: nearly_main (tc09_bad_unlock.c:23)
by 0x........: main (tc09_bad_unlock.c:50)
-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:50)
-
-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)
@@ -66,4 +55,4 @@
by 0x........: nearly_main (tc09_bad_unlock.c:31)
by 0x........: main (tc09_bad_unlock.c:50)
-ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin
===================================================================
--- trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin 2009-07-27 14:04:46 UTC (rev 10633)
@@ -3,10 +3,6 @@
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:69)
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:69)
-
Mutex not locked: mutex 0x........, recursion count 0, owner 0.
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:72)
@@ -34,13 +30,6 @@
at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:57)
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:75)
-rwlock 0x........ was first observed at:
- at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:57)
-
Mutex not locked by calling thread: mutex 0x........, recursion count 1, owner 2.
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:78)
@@ -70,4 +59,4 @@
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:53)
-ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 9 errors from 7 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-ppc
===================================================================
--- trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-ppc 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-ppc 2009-07-27 14:04:46 UTC (rev 10633)
@@ -3,14 +3,10 @@
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:69)
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:69)
-
Process terminating with default action of signal 7 (SIGBUS)
Invalid address alignment at address 0x........
at 0x........: (within libpthread-?.?.so)
by 0x........: pthread_cond_wait@@GLIBC_2.3.2(within libpthread-?.?.so)
by 0x........: main (tc23_bogus_condwait.c:69)
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 2 errors from 1 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-x86
===================================================================
--- trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-x86 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-x86 2009-07-27 14:04:46 UTC (rev 10633)
@@ -3,10 +3,6 @@
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:69)
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:69)
-
Thread 3:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
@@ -44,13 +40,6 @@
at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:57)
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:75)
-rwlock 0x........ was first observed at:
- at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:57)
-
Thread 3:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
@@ -93,4 +82,4 @@
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:53)
-ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 11 errors from 9 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/thread_name.stderr.exp
===================================================================
--- trunk/drd/tests/thread_name.stderr.exp 2009-07-27 12:03:03 UTC (rev 10632)
+++ trunk/drd/tests/thread_name.stderr.exp 2009-07-27 14:04:46 UTC (rev 10633)
@@ -11,82 +11,28 @@
thread_func instance 2
-Thread 3 (thread_func instance 2):
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
- by 0x........: thread_func (thread_name.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
-
thread_func instance 3
-Thread 4 (thread_func instance 3):
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
- by 0x........: thread_func (thread_name.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
-
thread_func instance 4
-Thread 5 (thread_func instance 4):
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
- by 0x........: thread_func (thread_name.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
-
thread_func instance 5
-Thread 6 (thread_func instance 5):
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
- by 0x........: thread_func (thread_name.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
-
thread_func instance 6
-Thread 7 (thread_func instance 6):
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
- by 0x........: thread_func (thread_name.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
-
thread_func instance 7
-Thread 8 (thread_func instance 7):
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
- by 0x........: thread_func (thread_name.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
-
thread_func instance 8
-Thread 9 (thread_func instance 8):
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
- by 0x........: thread_func (thread_name.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
-
thread_func instance 9
-Thread 10 (thread_func instance 9):
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
- by 0x........: thread_func (thread_name.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
-
thread_func instance 10
-Thread 11 (thread_func instance 10):
-The object at address 0x........ is not a mutex.
- at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
- by 0x........: thread_func (thread_name.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
-
-ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 10 errors from 1 contexts (suppressed: 0 from 0)
|
|
From: Julian S. <js...@ac...> - 2009-07-27 13:20:55
|
> Fixed a bug in the code for reading suppression files: the line numbers > reported in error messages were not correct. [...] Great stuff. I'm not surprised the line numbers were wrong; I remember hacking up the line number logic in a hurry. J |
|
From: Julian S. <js...@ac...> - 2009-07-27 13:16:11
|
On Monday 27 July 2009, Bart Van Assche wrote:
> On Sun, Jul 26, 2009 at 10:15 PM, <sv...@va...> wrote:
> > New Revision: 10626
> > [...]
> > Modified: trunk/helgrind/hg_intercepts.c
> > ===================================================================
> > --- trunk/helgrind/hg_intercepts.c 2009-07-26 19:55:18 UTC (rev
> > 10625) +++ trunk/helgrind/hg_intercepts.c 2009-07-26 20:15:37 UTC
> > (rev 10626) @@ -208,6 +208,9 @@
> > // darwin: pthread_create
> > // darwin: pthread_create_suspended_np (trapped)
> > //
> > +/* ensure this has its own frame, so as to make it more distinguishable
> > + in suppressions */
> > +__attribute__((noinline))
> > static int pthread_create_WRK(pthread_t *thread, const pthread_attr_t
> > *attr, void *(*start) (void *), void *arg) {
>
> Hello Julian,
>
> In case you did not yet notice it: the above change breaks the
> regression tests helgrind/tests/tc20_verifywrap and
> helgrind/tests/tc23_bogus_condwait because an additional stack frame
> appeared in the call stacks printed while running these tests.
Hi, yes. I added the __attribute__((noinline)) to consistently
cause it to have its own frame. I think it got inlined on Linux
and not on Darwin (or the other way around), causing problems with
portability of suppressions, since there would be a frame on one
and not on the other.
J
|
|
From: Bart V. A. <bar...@gm...> - 2009-07-27 12:16:09
|
On Sun, Jul 26, 2009 at 10:15 PM, <sv...@va...> wrote:
> New Revision: 10626
> [...]
> Modified: trunk/helgrind/hg_intercepts.c
> ===================================================================
> --- trunk/helgrind/hg_intercepts.c 2009-07-26 19:55:18 UTC (rev 10625)
> +++ trunk/helgrind/hg_intercepts.c 2009-07-26 20:15:37 UTC (rev 10626)
> @@ -208,6 +208,9 @@
> // darwin: pthread_create
> // darwin: pthread_create_suspended_np (trapped)
> //
> +/* ensure this has its own frame, so as to make it more distinguishable
> + in suppressions */
> +__attribute__((noinline))
> static int pthread_create_WRK(pthread_t *thread, const pthread_attr_t *attr,
> void *(*start) (void *), void *arg)
> {
Hello Julian,
In case you did not yet notice it: the above change breaks the
regression tests helgrind/tests/tc20_verifywrap and
helgrind/tests/tc23_bogus_condwait because an additional stack frame
appeared in the call stacks printed while running these tests.
Bart.
|
|
From: <sv...@va...> - 2009-07-27 12:03:22
|
Author: bart
Date: 2009-07-27 13:03:03 +0100 (Mon, 27 Jul 2009)
New Revision: 10632
Log:
Fixed a bug in the code for reading suppression files: the line numbers
reported in error messages were not correct. As an example, the following
output was produced before this patch (not correct):
$ ./vg-in-place --tool=helgrind --num-callers=1 /bin/true
...
FATAL: in suppressions file ".in_place/default.supp" near line 893:
suppression must contain at least one location line which is not "..."
exiting now.
$ ./vg-in-place --tool=drd --num-callers=1 /bin/true
FATAL: in suppressions file ".in_place/default.supp" near line 475:
suppression must contain at least one location line which is not "..."
exiting now.
After having applied this patch the above commands display line numbers
1104 and 619, referring to the first suppression pattern containing
three dots for the topmost stack frame, as expected.
Modified:
trunk/coregrind/m_errormgr.c
trunk/exp-ptrcheck/pc_common.c
trunk/include/pub_tool_errormgr.h
trunk/memcheck/mc_errors.c
Modified: trunk/coregrind/m_errormgr.c
===================================================================
--- trunk/coregrind/m_errormgr.c 2009-07-27 08:30:52 UTC (rev 10631)
+++ trunk/coregrind/m_errormgr.c 2009-07-27 12:03:03 UTC (rev 10632)
@@ -964,7 +964,7 @@
return 1;
}
-Bool VG_(get_line) ( Int fd, Char** bufpp, SizeT* nBufp )
+Bool VG_(get_line) ( Int fd, Char** bufpp, SizeT* nBufp, Int* lineno )
{
Char* buf = *bufpp;
SizeT nBuf = *nBufp;
@@ -975,6 +975,8 @@
while (True) {
n = get_char(fd, &ch);
if (n == 1 && !VG_(isspace)(ch)) break;
+ if (n == 1 && ch == '\n' && lineno)
+ (*lineno)++;
if (n <= 0) return True;
}
@@ -984,6 +986,8 @@
while (True) {
n = get_char(fd, &ch);
if (n <= 0) return False; /* the next call will return True */
+ if (ch == '\n' && lineno)
+ (*lineno)++;
if (ch == '\n') break;
if (i > 0 && i == nBuf-1) {
*nBufp = nBuf = nBuf * 2;
@@ -1103,21 +1107,18 @@
supp->string = supp->extra = NULL;
- eof = VG_(get_line) ( fd, &buf, &nBuf );
- lineno++;
+ eof = VG_(get_line) ( fd, &buf, &nBuf, &lineno );
if (eof) break;
if (!VG_STREQ(buf, "{")) BOMB("expected '{' or end-of-file");
- eof = VG_(get_line) ( fd, &buf, &nBuf );
- lineno++;
+ eof = VG_(get_line) ( fd, &buf, &nBuf, &lineno );
if (eof || VG_STREQ(buf, "}")) BOMB("unexpected '}'");
supp->sname = VG_(arena_strdup)(VG_AR_CORE, "errormgr.losf.2", buf);
- eof = VG_(get_line) ( fd, &buf, &nBuf );
- lineno++;
+ eof = VG_(get_line) ( fd, &buf, &nBuf, &lineno );
if (eof) BOMB("unexpected end-of-file");
@@ -1155,8 +1156,7 @@
else {
// Ignore rest of suppression
while (True) {
- eof = VG_(get_line) ( fd, &buf, &nBuf );
- lineno++;
+ eof = VG_(get_line) ( fd, &buf, &nBuf, &lineno );
if (eof) BOMB("unexpected end-of-file");
if (VG_STREQ(buf, "}"))
break;
@@ -1174,8 +1174,7 @@
/* the main frame-descriptor reading loop */
i = 0;
while (True) {
- eof = VG_(get_line) ( fd, &buf, &nBuf );
- lineno++;
+ eof = VG_(get_line) ( fd, &buf, &nBuf, &lineno );
if (eof)
BOMB("unexpected end-of-file");
if (VG_STREQ(buf, "}")) {
@@ -1201,8 +1200,7 @@
// lines and grab the '}'.
if (!VG_STREQ(buf, "}")) {
do {
- eof = VG_(get_line) ( fd, &buf, &nBuf );
- lineno++;
+ eof = VG_(get_line) ( fd, &buf, &nBuf, &lineno );
} while (!eof && !VG_STREQ(buf, "}"));
}
Modified: trunk/exp-ptrcheck/pc_common.c
===================================================================
--- trunk/exp-ptrcheck/pc_common.c 2009-07-27 08:30:52 UTC (rev 10631)
+++ trunk/exp-ptrcheck/pc_common.c 2009-07-27 12:03:03 UTC (rev 10632)
@@ -741,7 +741,7 @@
{
Bool eof;
if (VG_(get_supp_kind)(su) == XS_SysParam) {
- eof = VG_(get_line) ( fd, bufpp, nBufp );
+ eof = VG_(get_line) ( fd, bufpp, nBufp, NULL );
if (eof) return False;
VG_(set_supp_string)(su, VG_(strdup)("pc.common.presi.1", *bufpp));
}
Modified: trunk/include/pub_tool_errormgr.h
===================================================================
--- trunk/include/pub_tool_errormgr.h 2009-07-27 08:30:52 UTC (rev 10631)
+++ trunk/include/pub_tool_errormgr.h 2009-07-27 12:03:03 UTC (rev 10632)
@@ -92,8 +92,9 @@
pointer to size_t holding its size; if the buffer is too small for the
line, it will be realloc'd until big enough (updating *bufpp and *nBufp in
the process). (It will bomb out if the size gets ridiculous). Skips
- leading spaces on the line. Returns True if EOF was hit instead. */
-extern Bool VG_(get_line) ( Int fd, Char** bufpp, SizeT* nBufp );
+ leading spaces on the line. Increments lineno with the number of lines
+ read if lineno is non-NULL. Returns True if EOF was hit. */
+extern Bool VG_(get_line) ( Int fd, Char** bufpp, SizeT* nBufp, Int* lineno );
/* ------------------------------------------------------------------ */
Modified: trunk/memcheck/mc_errors.c
===================================================================
--- trunk/memcheck/mc_errors.c 2009-07-27 08:30:52 UTC (rev 10631)
+++ trunk/memcheck/mc_errors.c 2009-07-27 12:03:03 UTC (rev 10632)
@@ -1390,7 +1390,7 @@
Bool eof;
if (VG_(get_supp_kind)(su) == ParamSupp) {
- eof = VG_(get_line) ( fd, bufpp, nBufp );
+ eof = VG_(get_line) ( fd, bufpp, nBufp, NULL );
if (eof) return False;
VG_(set_supp_string)(su, VG_(strdup)("mc.resi.1", *bufpp));
}
|
|
From: <sv...@va...> - 2009-07-27 08:31:07
|
Author: bart
Date: 2009-07-27 09:30:52 +0100 (Mon, 27 Jul 2009)
New Revision: 10631
Log:
Updated expected output of tc23_bogus_condwait for Darwin because the test program has been modified (r10623).
Modified:
trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin
Modified: trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin
===================================================================
--- trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin 2009-07-27 08:29:29 UTC (rev 10630)
+++ trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin 2009-07-27 08:30:52 UTC (rev 10631)
@@ -1,73 +1,73 @@
-Thread 2:
-Invalid semaphore: semaphore 0x........
- at 0x........: sem_wait* (drd_pthread_intercepts.c:?)
- by 0x........: grab_the_lock (tc23_bogus_condwait.c:47)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
-semaphore 0x........ was first observed at:
- at 0x........: sem_init* (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:65)
-
-Thread 1:
The object at address 0x........ is not a mutex.
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:75)
+ by 0x........: main (tc23_bogus_condwait.c:69)
The object at address 0x........ is not a mutex.
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:75)
+ by 0x........: main (tc23_bogus_condwait.c:69)
Mutex not locked: mutex 0x........, recursion count 0, owner 0.
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:78)
+ by 0x........: main (tc23_bogus_condwait.c:72)
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:57)
+ by 0x........: main (tc23_bogus_condwait.c:51)
Thread 3:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
- by 0x........: rescue_me (tc23_bogus_condwait.c:26)
+ by 0x........: rescue_me (tc23_bogus_condwait.c:20)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
cond 0x........ was first observed at:
at 0x........: pthread_cond_init* (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:62)
+ by 0x........: main (tc23_bogus_condwait.c:56)
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:57)
+ by 0x........: main (tc23_bogus_condwait.c:51)
Thread 1:
The object at address 0x........ is not a mutex.
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:81)
+ by 0x........: main (tc23_bogus_condwait.c:75)
rwlock 0x........ was first observed at:
at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:63)
+ by 0x........: main (tc23_bogus_condwait.c:57)
The object at address 0x........ is not a mutex.
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:81)
+ by 0x........: main (tc23_bogus_condwait.c:75)
rwlock 0x........ was first observed at:
at 0x........: pthread_rwlock_init* (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:63)
+ by 0x........: main (tc23_bogus_condwait.c:57)
-Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 2.
+Mutex not locked by calling thread: mutex 0x........, recursion count 1, owner 2.
at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:84)
+ by 0x........: main (tc23_bogus_condwait.c:78)
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:59)
+ by 0x........: main (tc23_bogus_condwait.c:53)
Thread 3:
Probably a race condition: condition variable 0x........ has been signaled but the associated mutex 0x........ is not locked by the signalling thread.
at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
- by 0x........: rescue_me (tc23_bogus_condwait.c:30)
+ by 0x........: rescue_me (tc23_bogus_condwait.c:24)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
cond 0x........ was first observed at:
at 0x........: pthread_cond_init* (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:62)
+ by 0x........: main (tc23_bogus_condwait.c:56)
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: main (tc23_bogus_condwait.c:59)
+ by 0x........: main (tc23_bogus_condwait.c:53)
+The impossible happened: mutex 0x........ is locked simultaneously by two threads (recursion count 1, owners 2 and 1) !
+Thread 2:
+Mutex not locked by calling thread: mutex 0x........, recursion count 2, owner 1.
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
+ by 0x........: grab_the_lock (tc23_bogus_condwait.c:42)
+ 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........: main (tc23_bogus_condwait.c:53)
+
ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0)
|
|
From: <sv...@va...> - 2009-07-27 08:29:43
|
Author: bart Date: 2009-07-27 09:29:29 +0100 (Mon, 27 Jul 2009) New Revision: 10630 Log: Re-enabled the regression tests tc17_sembar and tc23_bogus_condwait for DRD on Darwin. Modified: trunk/drd/tests/tc17_sembar.vgtest trunk/drd/tests/tc23_bogus_condwait.vgtest Modified: trunk/drd/tests/tc17_sembar.vgtest =================================================================== --- trunk/drd/tests/tc17_sembar.vgtest 2009-07-27 07:52:56 UTC (rev 10629) +++ trunk/drd/tests/tc17_sembar.vgtest 2009-07-27 08:29:29 UTC (rev 10630) @@ -1,2 +1,2 @@ -prereq: ./supported_libpthread && ./supported_sem_init +prereq: ./supported_libpthread prog: ../../helgrind/tests/tc17_sembar Modified: trunk/drd/tests/tc23_bogus_condwait.vgtest =================================================================== --- trunk/drd/tests/tc23_bogus_condwait.vgtest 2009-07-27 07:52:56 UTC (rev 10629) +++ trunk/drd/tests/tc23_bogus_condwait.vgtest 2009-07-27 08:29:29 UTC (rev 10630) @@ -1,3 +1,3 @@ -prereq: ./supported_libpthread && ./supported_sem_init +prereq: ./supported_libpthread vgopts: --num-callers=3 prog: ../../helgrind/tests/tc23_bogus_condwait |
|
From: <sv...@va...> - 2009-07-27 07:53:20
|
Author: tom
Date: 2009-07-27 08:52:56 +0100 (Mon, 27 Jul 2009)
New Revision: 10629
Log:
Make sure the entire symbol is swapped when canonicaliseSymtab decides
that two overlapping symbols needs to be swapped. Fixes #163253.
Based on patch from John Reiser <jr...@bi...>.
Modified:
trunk/coregrind/m_debuginfo/storage.c
Modified: trunk/coregrind/m_debuginfo/storage.c
===================================================================
--- trunk/coregrind/m_debuginfo/storage.c 2009-07-26 21:59:29 UTC (rev 10628)
+++ trunk/coregrind/m_debuginfo/storage.c 2009-07-27 07:52:56 UTC (rev 10629)
@@ -1212,7 +1212,9 @@
static void canonicaliseSymtab ( struct _DebugInfo* di )
{
Word i, j, n_merged, n_truncated;
- Addr s1, s2, e1, e2;
+ Addr s1, s2, e1, e2, p1, p2;
+ UChar *n1, *n2;
+ Bool t1, t2;
# define SWAP(ty,aa,bb) \
do { ty tt = (aa); (aa) = (bb); (bb) = tt; } while (0)
@@ -1272,15 +1274,22 @@
/* Truncate one or the other. */
s1 = di->symtab[i].addr;
+ e1 = s1 + di->symtab[i].size - 1;
+ p1 = di->symtab[i].tocptr;
+ n1 = di->symtab[i].name;
+ t1 = di->symtab[i].isText;
s2 = di->symtab[i+1].addr;
- e1 = s1 + di->symtab[i].size - 1;
e2 = s2 + di->symtab[i+1].size - 1;
+ p2 = di->symtab[i+1].tocptr;
+ n2 = di->symtab[i+1].name;
+ t2 = di->symtab[i+1].isText;
if (s1 < s2) {
e1 = s2-1;
} else {
vg_assert(s1 == s2);
if (e1 > e2) {
- s1 = e2+1; SWAP(Addr,s1,s2); SWAP(Addr,e1,e2);
+ s1 = e2+1; SWAP(Addr,s1,s2); SWAP(Addr,e1,e2); SWAP(Addr,p1,p2);
+ SWAP(UChar *,n1,n2); SWAP(Bool,t1,t2);
} else
if (e1 < e2) {
s2 = e1+1;
@@ -1290,9 +1299,15 @@
}
}
di->symtab[i].addr = s1;
- di->symtab[i+1].addr = s2;
di->symtab[i].size = e1 - s1 + 1;
- di->symtab[i+1].size = e2 - s2 + 1;
+ di->symtab[i].tocptr = p1;
+ di->symtab[i].name = n1;
+ di->symtab[i].isText = t1;
+ di->symtab[i+1].addr = s2;
+ di->symtab[i+1].size = e2 - s2 + 1;
+ di->symtab[i+1].tocptr = p2;
+ di->symtab[i+1].name = n2;
+ di->symtab[i+1].isText = t2;
vg_assert(s1 <= s2);
vg_assert(di->symtab[i].size > 0);
vg_assert(di->symtab[i+1].size > 0);
|
|
From: Bart V. A. <bar...@gm...> - 2009-07-27 07:43:19
|
Nightly build on georgia-tech-cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2009-07-27 02:00:05 EDT Ended at 2009-07-27 03:43:00 EDT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 435 tests, 44 stderr failures, 9 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell (stdout) none/tests/shell (stderr) none/tests/shell_valid1 (stderr) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) none/tests/shell_zerolength (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/hsg (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 433 tests, 45 stderr failures, 9 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell (stdout) none/tests/shell (stderr) none/tests/shell_valid1 (stderr) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) none/tests/shell_zerolength (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/hsg (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Jul 27 02:51:42 2009 --- new.short Mon Jul 27 03:43:00 2009 *************** *** 8,10 **** ! == 433 tests, 45 stderr failures, 9 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) --- 8,10 ---- ! == 435 tests, 44 stderr failures, 9 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) *************** *** 36,38 **** none/tests/shell_zerolength (stderr) - helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg05_race2 (stderr) --- 36,37 ---- |
|
From: Bart V. A. <bar...@gm...> - 2009-07-27 07:05:41
|
On Sun, Jul 26, 2009 at 9:28 PM, <sv...@va...> wrote: > > Author: sewardj > Date: 2009-07-26 20:28:07 +0100 (Sun, 26 Jul 2009) > New Revision: 10619 > > Log: > Updated expected outputs following r10589 (msm idempotency effects) > > > Modified: > trunk/helgrind/tests/hg03_inherit.stderr.exp > > > Modified: trunk/helgrind/tests/hg03_inherit.stderr.exp > =================================================================== > --- trunk/helgrind/tests/hg03_inherit.stderr.exp 2009-07-26 16:21:00 UTC (rev 10618) > +++ trunk/helgrind/tests/hg03_inherit.stderr.exp 2009-07-26 19:28:07 UTC (rev 10619) > @@ -15,13 +15,4 @@ > Location 0x........ is 0 bytes inside shared[1], > declared at hg03_inherit.c:11, in frame #x of thread x > > -Possible data race during write of size 4 at 0x........ by thread #x > - at 0x........: t2 (hg03_inherit.c:29) > - by 0x........: mythread_wrapper (hg_intercepts.c:...) > - ... > - This conflicts with a previous read of size 4 by thread #x > - at 0x........: main (hg03_inherit.c:60) > - Location 0x........ is 0 bytes inside shared[1], > - declared at hg03_inherit.c:11, in frame #x of thread x > - > -ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) > +ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) There are two statements in the hg03_inherit test program which trigger a data race (*ip += 88 on line 28 and *ip *=3 on line 29). The trunk revision of Helgrind reports the first data race only. This is a change in behavior. I assume that this will be explained further in the Helgrind manual, such that users will know which races will be reported and which ones won't be reported ? Bart. |
|
From: Tom H. <th...@cy...> - 2009-07-27 02:47:43
|
Nightly build on lloyd ( x86_64, Fedora 7 ) Started at 2009-07-27 03:05:03 BST Ended at 2009-07-27 03:47:26 BST 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 == 518 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (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 == 516 tests, 2 stderr failures, 0 stdout failures, 0 post failures == helgrind/tests/hg03_inherit (stderr) helgrind/tests/tc06_two_races_xml (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Jul 27 03:26:13 2009 --- new.short Mon Jul 27 03:47:26 2009 *************** *** 8,11 **** ! == 516 tests, 2 stderr failures, 0 stdout failures, 0 post failures == ! helgrind/tests/hg03_inherit (stderr) helgrind/tests/tc06_two_races_xml (stderr) --- 8,10 ---- ! == 518 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) |