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
(3) |
|
2
(8) |
3
(19) |
4
(24) |
5
(23) |
6
(16) |
7
(33) |
8
(5) |
|
9
(4) |
10
(23) |
11
(22) |
12
(40) |
13
(30) |
14
(31) |
15
(17) |
|
16
(18) |
17
(20) |
18
(41) |
19
(36) |
20
(25) |
21
(8) |
22
(9) |
|
23
(17) |
24
(12) |
25
(15) |
26
(15) |
27
(16) |
28
(22) |
29
(6) |
|
30
(7) |
31
(10) |
|
|
|
|
|
|
From: Nicholas N. <n.n...@gm...> - 2009-08-14 22:49:10
|
On Fri, Aug 14, 2009 at 1:15 AM, Ashley Pittman<as...@pi...> wrote:
>
> Points I've spotted are:
>
> a) Why do we still need --xml=yes, isn't it implied by
> --xml-file=<file>? It would appear the --xml=yes option can be dropped
> completely, if used without a XML output destination it aborts anyway.
>
> b) If I do specify --xml-file=<file> but not --xml=yes I get partial
> output in the xml file.
>
> <errorcounts>
> </errorcounts>
The small amount of output in (b) looks like a bug.
But I agree that the option behaviour is sub-optimal and inconsistent,
esp. that you can specify --xml-file without --xml=yes and it'll
continue.
I'd suggest:
- Allow --xml=yes for backward compatibility. If it's specified, then
--xml-{file,socket,fd} also has to be specified
- If --xml-{file,socket,fd} is given, --xml=yes doesn't have to be,
and you get full XML output.
Nick
|
|
From: <sv...@va...> - 2009-08-14 22:34:42
|
Author: njn
Date: 2009-08-14 23:34:30 +0100 (Fri, 14 Aug 2009)
New Revision: 10818
Log:
Capitalise and punctuate some points.
Modified:
trunk/NEWS
Modified: trunk/NEWS
===================================================================
--- trunk/NEWS 2009-08-14 21:33:34 UTC (rev 10817)
+++ trunk/NEWS 2009-08-14 22:34:30 UTC (rev 10818)
@@ -15,24 +15,24 @@
Here is a short summary of the changes. Details are shown further
down:
-* support for Mac OS X 10.5.x
+* Support for Mac OS X 10.5.x.
-* improvements and simplifications to Memcheck's leak checker
+* Improvements and simplifications to Memcheck's leak checker.
-* clarification and simplifications in various aspects of Valgrind's
- text output
+* Clarification and simplifications in various aspects of Valgrind's
+ text output.
-* XML output for Helgrind and Ptrcheck
+* XML output for Helgrind and Ptrcheck.
-* performance and stability improvements for Helgrind and DRD
+* Performance and stability improvements for Helgrind and DRD.
-* genuinely atomic support for x86/amd64/ppc atomic instructions
+* Genuinely atomic support for x86/amd64/ppc atomic instructions.
-* a new experimental tool, BBV, useful for computer architecture
- research
+* A new experimental tool, BBV, useful for computer architecture
+ research.
-* improved Wine support, including ability to read Windows PDB
- debuginfo
+* Improved Wine support, including ability to read Windows PDB
+ debuginfo.
-------------------------
@@ -157,7 +157,7 @@
from GUI tools. Also, the XML output mechanism has been
overhauled.
- - the XML format has been overhauled and generalised, so it is more
+ - The XML format has been overhauled and generalised, so it is more
suitable for error reporting tools in general. The Memcheck
specific aspects of it have been removed. The new format, which
is an evolution of the old format, is described in
|
|
From: Greg P. <gp...@ap...> - 2009-08-14 22:29:57
|
On Aug 14, 2009, at 3:24 PM, Nicholas Nethercote wrote: > On Fri, Aug 14, 2009 at 10:46 PM, Tom Hughes<to...@co...> wrote: >> >> According to libdwarf 0xf0 is DW_OP_APPLE_uninit so it looks like >> it is some >> Apple extension to DWARF. > > Judging from the name and what little I could find with Google, it > marks a variable as uninitialised. Can we just ignore it? Judging by comments in Apple's gdb, you should ignore it since at least some versions of gcc emit it incorrectly. -- Greg Parker gp...@ap... Runtime Wrangler |
|
From: Nicholas N. <n.n...@gm...> - 2009-08-14 22:28:24
|
> +XXX a number of bugs in Callgrind / KCachegrind have been fixed. (?) Doesn't seem worth mentioning -- it will be covered by the bug fix list... Nick |
|
From: Nicholas N. <n.n...@gm...> - 2009-08-14 22:24:12
|
On Fri, Aug 14, 2009 at 10:46 PM, Tom Hughes<to...@co...> wrote: >> >> --77903-- warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0xf0 > > According to libdwarf 0xf0 is DW_OP_APPLE_uninit so it looks like it is some > Apple extension to DWARF. Judging from the name and what little I could find with Google, it marks a variable as uninitialised. Can we just ignore it? N |
|
From: <sv...@va...> - 2009-08-14 21:33:47
|
Author: sewardj
Date: 2009-08-14 22:33:34 +0100 (Fri, 14 Aug 2009)
New Revision: 10817
Log:
Double the maximum size of the conflict cache.
Modified:
trunk/helgrind/docs/hg-manual.xml
trunk/helgrind/hg_main.c
trunk/helgrind/libhb_core.c
Modified: trunk/helgrind/docs/hg-manual.xml
===================================================================
--- trunk/helgrind/docs/hg-manual.xml 2009-08-14 13:42:41 UTC (rev 10816)
+++ trunk/helgrind/docs/hg-manual.xml 2009-08-14 21:33:34 UTC (rev 10817)
@@ -1005,11 +1005,11 @@
conflicting access information is stored. If you find that
Helgrind is showing race errors with only one stack instead of
the expected two stacks, try increasing this value.</para>
- <para>The minimum value is 10,000 and the maximum is 10,000,000
- (ten times the default value). Increasing the value by 1
+ <para>The minimum value is 10,000 and the maximum is 20,000,000
+ (twenty times the default value). Increasing the value by 1
increases Helgrind's memory requirement by very roughly 100
- bytes, so the maximum value will easily eat up an extra
- gigabyte or so of memory.</para>
+ bytes, so the maximum value will easily eat up two extra
+ gigabytes or so of memory.</para>
</listitem>
</varlistentry>
Modified: trunk/helgrind/hg_main.c
===================================================================
--- trunk/helgrind/hg_main.c 2009-08-14 13:42:41 UTC (rev 10816)
+++ trunk/helgrind/hg_main.c 2009-08-14 21:33:34 UTC (rev 10817)
@@ -4397,10 +4397,10 @@
else if VG_XACT_CLO(arg, "--history-level=full",
HG_(clo_history_level), 2);
- /* If you change the 10k/10mill limits, remember to also change
+ /* If you change the 10k/20mill limits, remember to also change
them in assertions at the top of event_map_maybe_GC. */
else if VG_BINT_CLO(arg, "--conflict-cache-size",
- HG_(clo_conflict_cache_size), 10*1000, 10*1000*1000) {}
+ HG_(clo_conflict_cache_size), 10*1000, 20*1000*1000) {}
/* "stuvwx" --> stuvwx (binary) */
else if VG_STR_CLO(arg, "--hg-sanity-flags", tmp_str) {
Modified: trunk/helgrind/libhb_core.c
===================================================================
--- trunk/helgrind/libhb_core.c 2009-08-14 13:42:41 UTC (rev 10816)
+++ trunk/helgrind/libhb_core.c 2009-08-14 21:33:34 UTC (rev 10817)
@@ -3797,7 +3797,7 @@
/* Check for sane command line params. Limit values must match
those in hg_process_cmd_line_option. */
tl_assert( HG_(clo_conflict_cache_size) >= 10*1000 );
- tl_assert( HG_(clo_conflict_cache_size) <= 10*1000*1000 );
+ tl_assert( HG_(clo_conflict_cache_size) <= 20*1000*1000 );
/* Check our counting is sane (expensive) */
if (CHECK_CEM)
|
|
From: <sv...@va...> - 2009-08-14 13:47:56
|
Author: bart Date: 2009-08-14 14:40:47 +0100 (Fri, 14 Aug 2009) New Revision: 10815 Log: Made Valgrind compile again on 32-bit systems. Modified: trunk/helgrind/tests/Makefile.am Modified: trunk/helgrind/tests/Makefile.am =================================================================== --- trunk/helgrind/tests/Makefile.am 2009-08-14 13:25:38 UTC (rev 10814) +++ trunk/helgrind/tests/Makefile.am 2009-08-14 13:40:47 UTC (rev 10815) @@ -77,7 +77,6 @@ # should be conditionally compiled like tc20_verifywrap is. check_PROGRAMS = \ annotate_hbefore \ - annotate_rwlock \ hg01_all_ok \ hg02_deadlock \ hg03_inherit \ |
|
From: <sv...@va...> - 2009-08-14 13:47:53
|
Author: sewardj
Date: 2009-08-14 14:42:41 +0100 (Fri, 14 Aug 2009)
New Revision: 10816
Log:
Update. Sheesh -- did we really change that much stuff in just seven
months?
Modified:
trunk/NEWS
Modified: trunk/NEWS
===================================================================
--- trunk/NEWS 2009-08-14 13:40:47 UTC (rev 10815)
+++ trunk/NEWS 2009-08-14 13:42:41 UTC (rev 10816)
@@ -1,25 +1,56 @@
-Release 3.5.0 ([Julian] XXX)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Release 3.5.0 (XXX August 2009)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
3.5.0 is a feature release with many significant improvements and the
-usual collection of bug fixes. The main improvement is that Valgrind now
-works on Mac OS X. Also, there is a new experimental tool, exp-BBV, which
-will be of use to computer architecture researchers. Furthermore,
-Valgrind's text output has change in various ways, and Memcheck's leak
-checker has been improved and Valgrind's output has changed somewhat. In
-detail:
+usual collection of bug fixes. The main improvement is that Valgrind
+now works on Mac OS X.
-* Valgrind now runs on Mac OS X. (Note that Mac OS X is sometimes called
- "Darwin" because that is the name of the OS core.)
+This release supports X86/Linux, AMD64/Linux, PPC32/Linux, PPC64/Linux
+and X86/Darwin. Support for recent distros and toolchain components
+(glibc 2.10, gcc 4.5) has been added.
+ -------------------------
+
+Here is a short summary of the changes. Details are shown further
+down:
+
+* support for Mac OS X 10.5.x
+
+* improvements and simplifications to Memcheck's leak checker
+
+* clarification and simplifications in various aspects of Valgrind's
+ text output
+
+* XML output for Helgrind and Ptrcheck
+
+* performance and stability improvements for Helgrind and DRD
+
+* genuinely atomic support for x86/amd64/ppc atomic instructions
+
+* a new experimental tool, BBV, useful for computer architecture
+ research
+
+* improved Wine support, including ability to read Windows PDB
+ debuginfo
+
+ -------------------------
+
+Here are details of the above changes, plus descriptions of many other
+minor changes.
+
+
+* Valgrind now runs on Mac OS X. (Note that Mac OS X is sometimes
+ called "Darwin" because that is the name of the OS core.)
+
Supported machines:
- x86 machines are supported fairly well.
- - AMD64 (a.k.a. x86-64) are supported, but not as well. In particular,
- start-up is slow.
+ - amd64 (a.k.a. x86-64) are supported, but not as well. In
+ particular, start-up is slow.
- - Older PowerPC machines are not supported.
+ - PowerPC machines are not supported.
- It requires Mac OS X 10.5 Leopard or later. Porting to 10.4 is not
planned because it would require work and 10.4 is only becoming less
@@ -33,65 +64,74 @@
- --db-attach=yes.
- - If you have Rogue Amoeba's "Instant Hijack" program installed, Valgrind
- will fail with a SIGTRAP at start-up. This is apparently Instant
- Hijack's fault. See https://bugs.kde.org/show_bug.cgi?id=193917 for
- details and a simple work-around.
+ - If you have Rogue Amoeba's "Instant Hijack" program installed,
+ Valgrind will fail with a SIGTRAP at start-up. See
+ https://bugs.kde.org/show_bug.cgi?id=193917 for details and a
+ simple work-around.
Usage notes:
- - You will likely find --dsymutil=yes a useful option, as error messages may
- be imprecise without it.
+ - You will likely find --dsymutil=yes a useful option, as error
+ messages may be imprecise without it.
- - The Mac OS X support is new and therefore will be less robust than the
+ - Mac OS X support is new and therefore will be less robust than the
Linux support. Please report any bugs you find.
+ - Threaded programs may run more slowly than on Linux.
+
Many thanks to Greg Parker for developing this port over several years.
-* A new experimental tool, BBV, has been added. BBV generates basic block
- vectors for use with the SimPoint analysis tool, which allows a program's
- overall behaviour to be approximated by running only a fraction of it.
- This is useful for computer architecture researchers. You can run BBV by
- specifying --tool=exp-bbv (the "exp-" prefix is short for "experimental").
- BBV was written by Vince Weaver.
+* Memcheck's leak checker has been improved.
+
+ - The results for --leak-check=summary now match the summary results
+ for --leak-check=full. Previously they could differ because
+ --leak-check=summary counted "indirectly lost" blocks and
+ "suppressed" blocks as "definitely lost".
+
+ - Blocks that are only reachable via at least one interior-pointer,
+ but are directly pointed to by a start-pointer, were previously
+ marked as "still reachable". They are now correctly marked as
+ "possibly lost".
+
+ - The default value for the --leak-resolution option has been
+ changed from "low" to "high". In general, this means that more
+ leak reports will be produced, but each leak report will describe
+ fewer leaked blocks.
+
+ - With --leak-check=full, "definitely lost" and "possibly lost"
+ leaks are now considered as proper errors, ie. they are counted
+ for the "ERROR SUMMARY" and affect the behaviour of
+ --error-exitcode. These leaks are not counted as errors if
+ --leak-check=summary is specified, however.
+
+ - Documentation for the leak checker has been improved.
+
+
* Various aspects of Valgrind's text output have changed.
- Valgrind's start-up message has changed. It is shorter but also
includes the command being run, which makes it easier to use
--trace-children=yes. An example:
-==3050== Memcheck, a memory error detector.
-==3050== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
-==3050== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info
-==3050== Command: ls -l
-
- Valgrind's shut-down messages have also changed. This is most
- noticeable with Memcheck, where the leak summary now occurs before the
- error summary. This change was necessary to allow leaks to be counted
- as proper errors (see the description of the leak checker changes below
- for more details). An example:
+ noticeable with Memcheck, where the leak summary now occurs before
+ the error summary. This change was necessary to allow leaks to be
+ counted as proper errors (see the description of the leak checker
+ changes above for more details). This was also necessary to fix a
+ longstanding bug in which uses of suppressions against leaks were
+ not "counted", leading to difficulties in maintaining suppression
+ files (XXXX bug number).
-==16663== HEAP SUMMARY:
-==16663== in use at exit: 15,090 bytes in 17 blocks
-==16663== total heap usage: 17 allocs, 0 frees, 15,090 bytes allocated
-==16663==
-==16663== LEAK SUMMARY:
-==16663== definitely lost: 0 bytes in 0 blocks
-==16663== indirectly lost: 0 bytes in 0 blocks
-==16663== possibly lost: 0 bytes in 0 blocks
-==16663== still reachable: 10,694 bytes in 9 blocks
-==16663== suppressed: 4,396 bytes in 8 blocks
-==16663== Rerun with --leak-check=full to see details of leaked memory
-==16663==
-==16663== For counts of detected and suppressed errors, rerun with: -v
-==16663== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ - Behavior of -v has changed. In previous versions, -v printed out
+ a mixture of marginally-user-useful information, and tool/core
+ statistics. The statistics printing has now been moved to its own
+ flag, --stats=yes. This means -v is less verbose and more likely
+ to convey useful end-user information.
- - [Julian] XXX: XML output has changed... along with how --xml=yes works.
+ - The format of some (non-XML) stack trace entries has changed a
+ little. Previously there were six possible forms:
- - The format of some (non-XML) stack trace entries has changed a little.
- Previously there were six possible forms:
-
0x80483BF: really (a.c:20)
0x80483BF: really (in /foo/a.out)
0x80483BF: really
@@ -99,8 +139,8 @@
0x80483BF: ??? (a.c:20)
0x80483BF: ???
- The third and fourth of these forms have been made more consistent with
- the others. The six possible forms are now:
+ The third and fourth of these forms have been made more consistent
+ with the others. The six possible forms are now:
0x80483BF: really (a.c:20)
0x80483BF: really (in /foo/a.out)
@@ -109,65 +149,119 @@
0x80483BF: ??? (a.c:20)
0x80483BF: ???
- Stack traces produced when --xml=yes is specified are different and
- unchanged.
+ Stack traces produced when --xml=yes is specified are different
+ and unchanged.
-* Memcheck's leak checker has been improved.
- - The results for --leak-check=summary now match the summary results for
- --leak-check=full. Previously they could differ because
- --leak-check=summary counted "indirectly lost" blocks and "suppressed"
- blocks as "definitely lost".
+* Helgrind and Ptrcheck now support XML output, so they can be used
+ from GUI tools. Also, the XML output mechanism has been
+ overhauled.
- - Blocks that are only reachable via at least one interior-pointer, but
- are directly pointed to by a start-pointer, were previously marked as
- "still reachable". They are now correctly marked as "possibly lost".
+ - the XML format has been overhauled and generalised, so it is more
+ suitable for error reporting tools in general. The Memcheck
+ specific aspects of it have been removed. The new format, which
+ is an evolution of the old format, is described in
+ docs/internals/xml-output-protocol4.txt.
- - The default value for the --leak-resolution option has been changed from
- "low" to "high". In general, this means that more leak reports will be
- produced, but each leak report will describe fewer leaked blocks.
+ - Memcheck has been updated to use the new format.
- - With --leak-check=full, "definitely lost" and "possibly lost" leaks are
- now considered as proper errors, ie. they are counted for the "ERROR
- SUMMARY" and affect the behaviour of --error-exitcode. These leaks are
- not counted as errors if --leak-check=summary is specified, however.
+ - Helgrind and Ptrcheck are now able to emit output in this format.
- - The documentation for the leak checker has been improved.
+ - The XML output mechanism has been overhauled. XML is now output
+ to its own file descriptor, which means that:
-* [Julian] XXX: something about improved Wine support?
+ * Valgrind can output text and XML independently.
-* A new Memcheck client request VALGRIND_COUNT_LEAK_BLOCKS has been added.
- It is similar to VALGRIND_COUNT_LEAKS but counts blocks instead of bytes.
+ * The longstanding problem of XML output being corrupted by
+ unexpected un-tagged text messages is solved.
-* The Valgrind client requests VALGRIND_PRINTF and VALGRIND_PRINTF_BACKTRACE
- have been changed slightly. Previously, the string was always printed
- immediately on its own line. Now, the string will be added to a buffer
- but not printed until a newline is encountered, or other Valgrind output
- is printed (note that for VALGRIND_PRINTF_BACKTRACE, the back-trace itself
- is considered "other Valgrind output"). This allows you to use multiple
- VALGRIND_PRINTF calls to build up a single output line, and also to print
- multiple output lines with a single request (by embedding multiple
- newlines in the string).
+ As before, the destination for text output is specified using
+ --log-file=, --log-fd= or --log-socket=.
-* [Julian] XXX: Atomic instructions are now handled properly...
+ As before, XML output for a tool is enabled using --xml=yes.
-* The graphs drawn by Massif's ms_print program have changed slightly:
+ Because there's a new XML output channel, the XML output
+ destination is now specified by --xml-file=, --xml-fd= or
+ --xml-socket=.
- - The half-height chars '.' and ',' are no longer drawn, because they are
- confusing. The --y option can be used if the default y-resolution is
- not high enough.
+ Initial feedback has shown this causes some confusion. To
+ clarify, the two envisaged usage scenarios are:
- - Horizontal lines are now drawn after the top of a snapshot if there is a
- gap until the next snapshot. This makes it clear that the memory
- usage has not dropped to zero between snapshots.
+ (1) Normal text output. In this case, do not specify --xml=yes
+ nor any of --xml-file=, --xml-fd= or --xml-socket=.
+ (2) XML output. In this case, specify --xml=yes, and one of
+ --xml-file=, --xml-fd= or --xml-socket= to select the XML
+ destination, one of --log-file=, --log-fd= or --log-socket=
+ to select the destination for any remaining text messages,
+ and, importantly, -q.
+
+ -q makes Valgrind completely silent on the text channel,
+ except in the case of critical failures, such as Valgrind
+ itself segfaulting, or failing to read debugging information.
+ Hence, in this scenario, it suffices to check whether or not
+ any output appeared on the text channel. If yes, then it is
+ likely to be a critical error which should be brought to the
+ attention of the user. If no (the text channel produced no
+ output) then it can be assumed that the run was successful.
+
+ This allows GUIs to make the critical distinction they need to
+ make (did the run fail or not?) without having to search or
+ filter the text output channel in any way.
+
+ It is also recommended to use --child-silent-after-fork=yes in
+ scenario (2).
+
+
+* Improvements and changes in Helgrind:
+
+ - XML output, as described above
+
+ - Checks for consistent association between pthread condition
+ variables and their associated mutexes are now performed.
+
+ - pthread_spinlock functions are supported.
+
+ - Modest performance improvements.
+
+ - Initial (skeletal) support for describing the behaviour of
+ non-POSIX synchronisation objects through ThreadSanitizer
+ compatible ANNOTATE_* macros.
+
+ - More controllable tradeoffs between performance and the level of
+ detail of "previous" accesses in a race. There are now three
+ settings:
+
+ * --history-level=full. This is the default, and was also the
+ default in 3.4.x. It shows both stacks involved in a race, but
+ requires a lot of memory and can be very slow in programs that
+ do many inter-thread synchronisation events.
+
+ * --history-level=none. This only shows the later stack involved
+ in a race. This can be much faster than --history-level=full,
+ but makes it much more difficult to find the other access
+ involved in the race.
+
+ The new intermediate setting is
+
+ * --history-level=approx
+
+ For the earlier (other) access, two stacks are presented. The
+ earlier access is guaranteed to be somewhere in between the two
+ program points denoted by those stacks. This is not as useful
+ as showing the exact stack for the previous access (as per
+ --history-level=full), but it is better than nothing, and it's
+ almost as fast as --history-level=none.
+
+
* New features and improvements in DRD:
- - The error messages printed by DRD are now easier to interpret. Instead of
- using two different numbers to identify each thread (Valgrind thread ID and
- DRD thread ID), DRD does now identify threads via a single number (the DRD
- thread ID). Furthermore "first observed at" information is now printed for
- all error messages related to synchronization objects.
+ - The error messages printed by DRD are now easier to interpret.
+ Instead of using two different numbers to identify each thread
+ (Valgrind thread ID and DRD thread ID), DRD does now identify
+ threads via a single number (the DRD thread ID). Furthermore
+ "first observed at" information is now printed for all error
+ messages related to synchronization objects.
- Added support for named semaphores (sem_open() and sem_close()).
@@ -175,63 +269,144 @@
pthread_barrier_destroy() calls are now reported.
- Added support for custom allocators through the macros
- VALGRIND_MALLOCLIKE_BLOCK() VALGRIND_FREELIKE_BLOCK() (defined in
- in <valgrind/valgrind.h>). An alternative for these two macros is the
- new client request VG_USERREQ__DRD_CLEAN_MEMORY (defined in
+ VALGRIND_MALLOCLIKE_BLOCK() VALGRIND_FREELIKE_BLOCK() (defined in
+ in <valgrind/valgrind.h>). An alternative for these two macros is
+ the new client request VG_USERREQ__DRD_CLEAN_MEMORY (defined in
<valgrind/drd.h>).
- - Added support for annotating non-POSIX synchronization objects through
- several new ANNOTATE_*() macros.
+ - Added support for annotating non-POSIX synchronization objects
+ through several new ANNOTATE_*() macros.
- - OpenMP: added support for the OpenMP runtime (libgomp) included with gcc
- versions 4.3.0 and 4.4.0.
+ - OpenMP: added support for the OpenMP runtime (libgomp) included
+ with gcc versions 4.3.0 and 4.4.0.
- Faster operation.
- Added two new command-line options (--first-race-only and
--segment-merging-interval).
-* Something that happened in 3.4.0, but wasn't clearly announced: the
- option --read-var-info can be used by some tools (Memcheck, Helgrind and
- DRD). When enabled, it makes those tools run more slowly and increases
- memory consumption, but descriptions of data addresses in error messages
- become more detailed.
-* exp-Omega, an experimental instantaneous leak-detecting tool, was disabled
- in 3.4.0 due to a lack of interest and maintenance, although the source
- code was still in the distribution. The source code has now been removed
- from the distribution. For anyone interested, the removal occurred in SVN
- revision r10247.
+* Genuinely atomic support for x86/amd64/ppc atomic instructions
+ Valgrind will now preserve (memory-access) atomicity of LOCK-
+ prefixed x86/amd64 instructions, and any others implying a global
+ bus lock. Ditto for PowerPC l{w,d}arx/st{w,d}cx. instructions.
+
+ This means that Valgrinded processes will "play nicely" in
+ situations where communication with other processes, or the kernel,
+ is done through shared memory and coordinated with such atomic
+ instructions. Prior to this change, such arrangements usually
+ resulted in hangs, races or other synchronisation failures, because
+ Valgrind did not honour atomicity of such instructions.
+
+
+* A new experimental tool, BBV, has been added. BBV generates basic
+ block vectors for use with the SimPoint analysis tool, which allows
+ a program's overall behaviour to be approximated by running only a
+ fraction of it. This is useful for computer architecture
+ researchers. You can run BBV by specifying --tool=exp-bbv (the
+ "exp-" prefix is short for "experimental"). BBV was written by
+ Vince Weaver.
+
+
+* Modestly improved support for running Windows applications under
+ Wine. In particular, initial support for reading Windows .PDB debug
+ information has been added.
+
+
+* A new Memcheck client request VALGRIND_COUNT_LEAK_BLOCKS has been
+ added. It is similar to VALGRIND_COUNT_LEAKS but counts blocks
+ instead of bytes.
+
+
+* The Valgrind client requests VALGRIND_PRINTF and
+ VALGRIND_PRINTF_BACKTRACE have been changed slightly. Previously,
+ the string was always printed immediately on its own line. Now, the
+ string will be added to a buffer but not printed until a newline is
+ encountered, or other Valgrind output is printed (note that for
+ VALGRIND_PRINTF_BACKTRACE, the back-trace itself is considered
+ "other Valgrind output"). This allows you to use multiple
+ VALGRIND_PRINTF calls to build up a single output line, and also to
+ print multiple output lines with a single request (by embedding
+ multiple newlines in the string).
+
+
+* The graphs drawn by Massif's ms_print program have changed slightly:
+
+ - The half-height chars '.' and ',' are no longer drawn, because
+ they are confusing. The --y option can be used if the default
+ y-resolution is not high enough.
+
+ - Horizontal lines are now drawn after the top of a snapshot if
+ there is a gap until the next snapshot. This makes it clear that
+ the memory usage has not dropped to zero between snapshots.
+
+
+* Something that happened in 3.4.0, but wasn't clearly announced: the
+ option --read-var-info=yes can be used by some tools (Memcheck,
+ Helgrind and DRD). When enabled, it causes Valgrind to read DWARF3
+ variable type and location information. This makes those tools
+ start up more slowly and increases memory consumption, but
+ descriptions of data addresses in error messages become more
+ detailed.
+
+
+* exp-Omega, an experimental instantaneous leak-detecting tool, was
+ disabled in 3.4.0 due to a lack of interest and maintenance,
+ although the source code was still in the distribution. The source
+ code has now been removed from the distribution. For anyone
+ interested, the removal occurred in SVN revision r10247.
+
+
* Some changes have been made to the build system.
- - VEX/ is now integrated properly into the build system. This means that
- dependency tracking within VEX/ now works properly, "make install" will
- work without requiring "make" before it, and parallel builds
- (ie. 'make -j') now work (previously a .NOTPARALLEL directive was used
- to serialize builds, ie. 'make -j' was effectively ignored).
+ - VEX/ is now integrated properly into the build system. This means
+ that dependency tracking within VEX/ now works properly, "make
+ install" will work without requiring "make" before it, and
+ parallel builds (ie. 'make -j') now work (previously a
+ .NOTPARALLEL directive was used to serialize builds, ie. 'make -j'
+ was effectively ignored).
- - The --with-vex configure option has been removed. It was of little use
- and removing it simplified the build system.
+ - The --with-vex configure option has been removed. It was of
+ little use and removing it simplified the build system.
- - The location of some install files has changed. This should not affect
- most users. Those who might be affected:
+ - The location of some install files has changed. This should not
+ affect most users. Those who might be affected:
* For people who use Valgrind with MPI programs, the installed
- libmpiwrap.so library has moved from $(INSTALL)/<platform>/libmpiwrap.so
- to $(INSTALL)/libmpiwrap-<platform>.so.
+ libmpiwrap.so library has moved from
+ $(INSTALL)/<platform>/libmpiwrap.so to
+ $(INSTALL)/libmpiwrap-<platform>.so.
- * For people who distribute standalone Valgrind tools, the installed
- libraries such as $(INSTALL)/<platform>/libcoregrind.a have moved to
- $(INSTALL)/libcoregrind-<platform>.a.
+ * For people who distribute standalone Valgrind tools, the
+ installed libraries such as $(INSTALL)/<platform>/libcoregrind.a
+ have moved to $(INSTALL)/libcoregrind-<platform>.a.
- These changes simplified the build system.
+ These changes simplify the build system.
- - Previously, all the distributed suppression (*.supp) files were installed.
- Now, only default.supp is installed. This should not affect users as the
- other installed suppression files were not read; the fact that they
- were installed was a mistake.
+ - Previously, all the distributed suppression (*.supp) files were
+ installed. Now, only default.supp is installed. This should not
+ affect users as the other installed suppression files were not
+ read; the fact that they were installed was a mistake.
+
+* KNOWN LIMITATIONS:
+
+ - Memcheck is unusable with the Intel compiler suite version 11.1,
+ when it generates code for SSE2-and-above capable targets. This
+ is because of icc's use of highly optimised inlined strlen
+ implementations. It causes Memcheck to report huge numbers of
+ false errors even in simple programs. Helgrind and DRD may also
+ have problems.
+
+ Versions 11.0 and earlier may be OK, but this has not been
+ properly tested.
+
+
+
+XXX a number of bugs in Callgrind / KCachegrind have been fixed. (?)
+
+
187048 DRD - the mutex attribute PTHREAD_PROCESS_SHARED is now
interpreted correctly.
188046 Removed a bashism from the configure script.
@@ -251,8 +426,11 @@
XXX: more bugs listed...
XXX: dates and versions of RCs and final release
+(3.5.0.RC1: XX Aug 2009, vex rXXXX, valgrind rXXXX).
+(3.5.0: XX Aug 2009, vex rXXXX, valgrind rXXXX).
+
Release 3.4.1 (28 February 2009)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.4.1 is a bug-fix release that fixes some regressions and assertion
|
|
From: <sv...@va...> - 2009-08-14 13:25:48
|
Author: bart
Date: 2009-08-14 14:25:38 +0100 (Fri, 14 Aug 2009)
New Revision: 10814
Log:
Made ANNOTATE_HAPPENS_BEFORE()/_AFTER() binary compatible with Helgrind.
Added:
trunk/drd/tests/annotate_hbefore.stderr.exp
trunk/drd/tests/annotate_hbefore.vgtest
Modified:
trunk/drd/drd.h
trunk/drd/tests/Makefile.am
Modified: trunk/drd/drd.h
===================================================================
--- trunk/drd/drd.h 2009-08-14 13:23:00 UTC (rev 10813)
+++ trunk/drd/drd.h 2009-08-14 13:25:38 UTC (rev 10814)
@@ -321,10 +321,12 @@
/* args: null-terminated character string. */
/* Tell DRD to insert a happens before annotation. */
- VG_USERREQ__DRD_ANNOTATE_HAPPENS_BEFORE,
+ VG_USERREQ__DRD_ANNOTATE_HAPPENS_BEFORE
+ = VG_USERREQ_TOOL_BASE('H','G') + 256 + 33,
/* args: Addr. */
/* Tell DRD to insert a happens after annotation. */
- VG_USERREQ__DRD_ANNOTATE_HAPPENS_AFTER,
+ VG_USERREQ__DRD_ANNOTATE_HAPPENS_AFTER
+ = VG_USERREQ_TOOL_BASE('H','G') + 256 + 34,
/* args: Addr. */
/* Tell DRD about an operation performed on a user-defined reader-writer
Modified: trunk/drd/tests/Makefile.am
===================================================================
--- trunk/drd/tests/Makefile.am 2009-08-14 13:23:00 UTC (rev 10813)
+++ trunk/drd/tests/Makefile.am 2009-08-14 13:25:38 UTC (rev 10814)
@@ -13,6 +13,8 @@
tsan_thread_wrappers_pthread.h
EXTRA_DIST = \
+ annotate_hbefore.stderr.exp \
+ annotate_hbefore.vgtest \
annotate_order_1.stderr.exp \
annotate_order_1.vgtest \
annotate_order_2.stderr.exp \
Added: trunk/drd/tests/annotate_hbefore.stderr.exp
===================================================================
--- trunk/drd/tests/annotate_hbefore.stderr.exp (rev 0)
+++ trunk/drd/tests/annotate_hbefore.stderr.exp 2009-08-14 13:25:38 UTC (rev 10814)
@@ -0,0 +1,3 @@
+
+
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/annotate_hbefore.vgtest
===================================================================
--- trunk/drd/tests/annotate_hbefore.vgtest (rev 0)
+++ trunk/drd/tests/annotate_hbefore.vgtest 2009-08-14 13:25:38 UTC (rev 10814)
@@ -0,0 +1,4 @@
+prereq: test -e ../../helgrind/tests/annotate_hbefore && ./supported_libpthread
+vgopts: --read-var-info=yes --check-stack-var=yes --show-confl-seg=no
+prog: ../../helgrind/tests/annotate_hbefore
+stderr_filter: filter_stderr
|
|
From: <sv...@va...> - 2009-08-14 13:23:11
|
Author: bart Date: 2009-08-14 14:23:00 +0100 (Fri, 14 Aug 2009) New Revision: 10813 Log: Updated Subversion ignore list. Modified: trunk/helgrind/tests/ Property changes on: trunk/helgrind/tests ___________________________________________________________________ Name: svn:ignore - *.dSYM *.stderr.diff* *.stderr.out *.stdout.diff* *.stdout.out .deps Makefile Makefile.in bar_bad bar_trivial hg01_all_ok hg02_deadlock hg03_inherit hg04_race hg05_race2 hg06_readshared pth_barrier rwlock_race rwlock_test 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 tc14_laog_dinphils 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 + *.dSYM *.stderr.diff* *.stderr.out *.stdout.diff* *.stdout.out .deps Makefile Makefile.in annotate_rwlock annotate_hbefore bar_bad bar_trivial hg01_all_ok hg02_deadlock hg03_inherit hg04_race hg05_race2 hg06_readshared pth_barrier rwlock_race rwlock_test 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 tc14_laog_dinphils 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 |
|
From: <sv...@va...> - 2009-08-14 13:23:00
|
Author: bart
Date: 2009-08-14 14:22:48 +0100 (Fri, 14 Aug 2009)
New Revision: 10812
Log:
Added suppression pattern for nanosleep().
Modified:
trunk/glibc-2.X-drd.supp
Modified: trunk/glibc-2.X-drd.supp
===================================================================
--- trunk/glibc-2.X-drd.supp 2009-08-14 11:11:12 UTC (rev 10811)
+++ trunk/glibc-2.X-drd.supp 2009-08-14 13:22:48 UTC (rev 10812)
@@ -87,6 +87,11 @@
...
fun:_Unwind_Resume
}
+{
+ drd-libpthread-nanosleep
+ drd:ConflictingAccess
+ fun:nanosleep
+}
#
# Suppression patterns for libgomp.
|
|
From: Tom H. <to...@co...> - 2009-08-14 12:46:53
|
On 14/08/09 12:26, Alexander Potapenko wrote: > Here you are: > > mcgrind:valgrind-new glider$ Inst/bin/valgrind --tool=helgrind > --read-var-info=yes helgrind/tests/hg03_inherit > ==77903== Helgrind, a thread error detector > ==77903== Copyright (C) 2007-2009, and GNU GPL'd, by OpenWorks LLP et al. > ==77903== Using Valgrind-3.5.0.SVN and LibVEX; rerun with -h for copyright info > ==77903== Command: helgrind/tests/hg03_inherit > ==77903== > --77903-- warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0xf0 According to libdwarf 0xf0 is DW_OP_APPLE_uninit so it looks like it is some Apple extension to DWARF. Tom -- Tom Hughes (to...@co...) http://www.compton.nu/ |
|
From: Konstantin S. <kon...@gm...> - 2009-08-14 11:42:35
|
Cool!!!
[comments below]
On Fri, Aug 14, 2009 at 3:08 PM, <sv...@va...> wrote:
> Author: sewardj
> Date: 2009-08-14 12:08:24 +0100 (Fri, 14 Aug 2009)
> New Revision: 10810
>
> Log:
> Skeletal support for TSan-compatible annotations.
>
>
> Modified:
> trunk/helgrind/helgrind.h
> trunk/helgrind/hg_main.c
>
>
> Modified: trunk/helgrind/helgrind.h
> ===================================================================
> --- trunk/helgrind/helgrind.h 2009-08-14 10:19:26 UTC (rev 10809)
> +++ trunk/helgrind/helgrind.h 2009-08-14 11:08:24 UTC (rev 10810)
> @@ -60,6 +60,10 @@
>
> #include "valgrind.h"
>
> +/* !! ABIWARNING !! ABIWARNING !! ABIWARNING !! ABIWARNING !!
> + This enum comprises an ABI exported by Valgrind to programs
> + which use client requests. DO NOT CHANGE THE ORDER OF THESE
> + ENTRIES, NOR DELETE ANY -- add new ones at the end. */
> typedef
> enum {
> VG_USERREQ__HG_CLEAN_MEMORY = VG_USERREQ_TOOL_BASE('H','G'),
> @@ -100,20 +104,389 @@
> _VG_USERREQ__HG_PTHREAD_SPIN_INIT_OR_UNLOCK_POST, /* pth_slk_t* */
> _VG_USERREQ__HG_PTHREAD_SPIN_LOCK_PRE, /* pth_slk_t* */
> _VG_USERREQ__HG_PTHREAD_SPIN_LOCK_POST, /* pth_slk_t* */
> - _VG_USERREQ__HG_PTHREAD_SPIN_DESTROY_PRE /* pth_slk_t* */
> + _VG_USERREQ__HG_PTHREAD_SPIN_DESTROY_PRE, /* pth_slk_t* */
> + _VG_USERREQ__HG_CLIENTREQ_UNIMP, /* char* */
> + _VG_USERREQ__HG_USERSO_SEND_PRE, /* arbitrary UWord SO-tag */
> + _VG_USERREQ__HG_USERSO_RECV_POST, /* arbitrary UWord SO-tag */
> + _VG_USERREQ__HG_RESERVED1, /* Do not use */
> + _VG_USERREQ__HG_RESERVED2 /* Do not use */
>
> } Vg_TCheckClientRequest;
>
> +
> +/*----------------------------------------------------------------*/
> +/*--- An implementation-only request -- not for end user use ---*/
> +/*----------------------------------------------------------------*/
> +
> +#define _HG_CLIENTREQ_UNIMP(_qzz_str) \
> + do { \
> + unsigned long _qzz_res; \
> + VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
> + _VG_USERREQ__HG_CLIENTREQ_UNIMP, \
> + _qzz_str, 0, 0, 0, 0); \
> + (void)0; \
> + } while(0)
> +
> +
> +/*----------------------------------------------------------------*/
> +/*--- Misc requests ---*/
> +/*----------------------------------------------------------------*/
> +
> /* Clean memory state. This makes Helgrind forget everything it knew
> - about the specified memory range, and resets it to New. This is
> - particularly useful for memory allocators that wish to recycle
> - memory. */
> -#define VALGRIND_HG_CLEAN_MEMORY(_qzz_start, _qzz_len) \
> - do { \
> - unsigned long _qzz_res; \
> - VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, VG_USERREQ__HG_CLEAN_MEMORY, \
> - _qzz_start, _qzz_len, 0, 0, 0); \
> - (void)0; \
> + about the specified memory range. Effectively this announces that
> + the specified memory range now "belongs" to the calling thread, so
> + that: (1) the calling thread can access it safely without
> + synchronisation, and (2) all other threads must sync with this one
> + to access it safely. This is particularly useful for memory
> + allocators that wish to recycle memory. */
> +#define VALGRIND_HG_CLEAN_MEMORY(_qzz_start, _qzz_len) \
> + do { \
> + unsigned long _qzz_res; \
> + VALGRIND_DO_CLIENT_REQUEST( \
> + (_qzz_res), 0, VG_USERREQ__HG_CLEAN_MEMORY, \
> + (_qzz_start), (_qzz_len), 0, 0, 0 \
> + ); \
> + (void)0; \
> } while(0)
>
> +
> +/*----------------------------------------------------------------*/
> +/*--- ThreadSanitizer-compatible requests ---*/
> +/*----------------------------------------------------------------*/
> +
> +/* A quite-broad set of annotations, as used in the ThreadSanitizer
> + project. This implementation aims to be a (source-level)
> + compatible implementation of the macros defined in:
> +
> + http://code.google.com/p/google-perftools/source \
> + /browse/trunk/src/base/dynamic_annotations.h
> +
> + (some of the comments below are taken from the above file)
> +
> + The implementation here is very incomplete, and intended as a
> + starting point. Many of the macros are unimplemented. Rather than
> + allowing unimplemented macros to silently do nothing, they cause an
> + assertion. Intention is to implement them on demand.
> +
> + The major use of these macros is to make visible to race detectors,
> + the behaviour (effects) of user-implemented synchronisation
> + primitives, that the detectors could not otherwise deduce from the
> + normal observation of pthread etc calls.
> +
> + Some of the macros are no-ops in Helgrind. That's because Helgrind
> + is a pure happens-before detector, whereas ThreadSanitizer uses a
> + hybrid lockset and happens-before scheme, which requires more
> + accurate annotations for correct operation.
Correct.
> +
> + The macros are listed in the same order as in dynamic_annotations.h
> + (URL just above).
> +
> + I should point out that I am less than clear about the intended
> + semantics of quite a number of them. Comments and clarifications
> + welcomed!
> +*/
> +
> +/* ----------------------------------------------------------------
> + These four allow description of user-level condition variables,
> + apparently in the style of POSIX's pthread_cond_t. Currently
> + unimplemented and will assert.
> + ----------------------------------------------------------------
> +*/
> +/* Report that wait on the condition variable at address CV has
> + succeeded and the lock at address LOCK is now held. CV and LOCK
> + are completely arbitrary memory addresses which presumably mean
> + something to the application, but are meaningless to Helgrind. */
> +#define ANNOTATE_CONDVAR_LOCK_WAIT(cv, lock) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_CONDVAR_LOCK_WAIT")
> +
> +/* Report that wait on the condition variable at CV has succeeded.
> + Variant w/o lock. */
> +#define ANNOTATE_CONDVAR_WAIT(cv) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_CONDVAR_WAIT")
> +
> +/* Report that we are about to signal on the condition variable at
> + address CV. */
> +#define ANNOTATE_CONDVAR_SIGNAL(cv) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_CONDVAR_SIGNAL")
> +
> +/* Report that we are about to signal_all on the condition variable at
> + CV. */
> +#define ANNOTATE_CONDVAR_SIGNAL_ALL(cv) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_CONDVAR_SIGNAL_ALL")
> +
> +
> +/* ----------------------------------------------------------------
> + Create completely arbitrary happens-before edges between threads.
> + If thread T1 does ANNOTATE_HAPPENS_BEFORE(obj) and later (w.r.t.
> + some notional global clock for the computation) thread T2 does
> + ANNOTATE_HAPPENS_AFTER(obj), then Helgrind will regard all memory
> + accesses done by T1 before the ..BEFORE.. call as happening-before
> + all memory accesses done by T2 after the ..AFTER.. call. Hence
> + Helgrind won't complain about races if T2's accesses afterwards are
> + to the same locations as T1's accesses before.
> +
> + OBJ is a machine word (unsigned long, or void*), is completely
> + arbitrary, and denotes the identity of some synchronisation object
> + you're modelling.
> +
> + You must do the _BEFORE call just before the real sync event on the
> + signaller's side, and _AFTER just after the real sync event on the
> + waiter's side.
> +
> + If none of the rest of these macros make sense to you, at least
> + take the time to understand these two. They form the very essence
> + of describing arbitrary inter-thread synchronisation events to
> + Helgrind. You can get a long way just with them alone.
Brilliant comment! These are indeed the two key annotations.
> + ----------------------------------------------------------------
> +*/
> +#define ANNOTATE_HAPPENS_BEFORE(obj) \
> + do { \
> + unsigned long _qzz_res; \
> + VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
> + _VG_USERREQ__HG_USERSO_SEND_PRE, \
> + obj, 0, 0, 0, 0); \
> + (void)0; \
> + } while (0)
> +
> +#define ANNOTATE_HAPPENS_AFTER(obj) \
> + do { \
> + unsigned long _qzz_res; \
> + VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
> + _VG_USERREQ__HG_USERSO_RECV_POST, \
> + obj, 0, 0, 0, 0); \
> + (void)0; \
> + } while (0)
> +
> +
> +/* ----------------------------------------------------------------
> + Memory publishing. The TSan sources say:
> +
> + Report that the bytes in the range [pointer, pointer+size) are about
> + to be published safely. The race checker will create a happens-before
> + arc from the call ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) to
> + subsequent accesses to this memory.
> +
> + I'm not sure I understand what this means exactly, nor whether it
> + is relevant for a pure h-b detector. Leaving unimplemented for
> + now.
So far we used this macro only to address the most frequent false
positive of a hybrid detector.
So, you can say that this annotation is irrelevant to a pure h-b detector.
On the other hand, this annotation may be used to annotate a lockfree
object publishing code, in which case it will become relevant to pure
h-b as well.
> + ----------------------------------------------------------------
> +*/
> +#define ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_PUBLISH_MEMORY_RANGE")
> +
> +
> +/* ----------------------------------------------------------------
> + TSan sources say:
> +
> + Instruct the tool to create a happens-before arc between
> + MU->Unlock() and MU->Lock(). This annotation may slow down the
> + race detector; normally it is used only when it would be
> + difficult to annotate each of the mutex's critical sections
> + individually using the annotations above.
> +
> + If MU is a posix pthread_mutex_t then Helgrind will do this anyway.
> + In any case, leave as unimp for now. I'm unsure about the intended
> + behaviour.
This annotation makes the hybrid tool behave as a pure h-b for this
particular mutex.
For a pure h-b detector this is a no-op. (the name of the annotation
sucks, I know).
> + ----------------------------------------------------------------
> +*/
> +#define ANNOTATE_MUTEX_IS_USED_AS_CONDVAR(mu) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_MUTEX_IS_USED_AS_CONDVAR")
> +
> +
> +/* ----------------------------------------------------------------
> + TSan sources say:
> +
> + Annotations useful when defining memory allocators, or when
> + memory that was protected in one way starts to be protected in
> + another.
> +
> + Report that a new memory at "address" of size "size" has been
> + allocated. This might be used when the memory has been retrieved
> + from a free list and is about to be reused, or when a the locking
> + discipline for a variable changes.
> +
> + AFAICS this is the same as VALGRIND_HG_CLEAN_MEMORY.
Correct (more or less)
> + ----------------------------------------------------------------
> +*/
> +#define ANNOTATE_NEW_MEMORY(address, size) \
> + VALGRIND_HG_CLEAN_MEMORY((address), (size))
> +
> +
> +/* ----------------------------------------------------------------
> + TSan sources say:
> +
> + Annotations useful when defining FIFO queues that transfer data
> + between threads.
> +
> + All unimplemented. Am not claiming to understand this (yet).
Consider you have a FIFO queue that passes messages between threads.
If it is based on locks, you have a trouble with a hybrid detector.
If it is lockfree, pure h-b is in trouble as well.
You need to create h-b arcs between queue.put() and queue.get().
You can do it with ANNOTATE_HAPPENS_{BEFORE,AFTER}.
You can do it using ANNOTATE_PCQ_*.
The second could be implemented in the detector faster and will loose
less real races (because it will not create any unnecessary h-b arcs).
> + ----------------------------------------------------------------
> +*/
> +
> +/* Report that the producer-consumer queue object at address PCQ has
> + been created. The ANNOTATE_PCQ_* annotations should be used only
> + for FIFO queues. For non-FIFO queues use ANNOTATE_HAPPENS_BEFORE
> + (for put) and ANNOTATE_HAPPENS_AFTER (for get). */
> +#define ANNOTATE_PCQ_CREATE(pcq) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_PCQ_CREATE")
> +
> +/* Report that the queue at address PCQ is about to be destroyed. */
> +#define ANNOTATE_PCQ_DESTROY(pcq) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_PCQ_DESTROY")
> +
> +/* Report that we are about to put an element into a FIFO queue at
> + address PCQ. */
> +#define ANNOTATE_PCQ_PUT(pcq) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_PCQ_PUT")
> +
> +/* Report that we've just got an element from a FIFO queue at address
> + PCQ. */
> +#define ANNOTATE_PCQ_GET(pcq) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_PCQ_GET")
> +
> +
> +/* ----------------------------------------------------------------
> + Annotations that suppress errors. It is usually better to express
> + the program's synchronization using the other annotations, but
> + these can be used when all else fails.
> +
> + Currently these are all unimplemented. I can't think of a simple
> + way to implement them without at least some performance overhead.
ANNOTATE_BENIGN_RACE does not affect performance of the detector since
it is checked only when the detector prints the report.
ANNOTATE_IGNORE_* does slowdown the fast path slightly. Very slightly.
> + ----------------------------------------------------------------
> +*/
> +
> +/* Report that we may have a benign race on ADDRESS. Insert at the
> + point where ADDRESS has been allocated, preferably close to the
> + point where the race happens. See also ANNOTATE_BENIGN_RACE_STATIC.
> +
> + XXX: what's this actually supposed to do?
The detector will not print the error message. That's all.
> And what's the type of
> + DESCRIPTION?
const char *
> When does the annotation stop having an effect?
When the memory location is freed.
> +*/
> +#define ANNOTATE_BENIGN_RACE(address, description) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_BENIGN_RACE")
> +
> +
> +/* Request the analysis tool to ignore all reads in the current thread
> + until ANNOTATE_IGNORE_READS_END is called. Useful to ignore
> + intentional racey reads, while still checking other reads and all
> + writes. */
> +#define ANNOTATE_IGNORE_READS_BEGIN() \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_IGNORE_READS_BEGIN")
> +
> +/* Stop ignoring reads. */
> +#define ANNOTATE_IGNORE_READS_END() \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_IGNORE_READS_END")
> +
> +/* Similar to ANNOTATE_IGNORE_READS_BEGIN, but ignore writes. */
> +#define ANNOTATE_IGNORE_WRITES_BEGIN() \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_IGNORE_WRITES_BEGIN")
> +
> +/* Stop ignoring writes. */
> +#define ANNOTATE_IGNORE_WRITES_END() \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_IGNORE_WRITES_END")
> +
> +/* Start ignoring all memory accesses (reads and writes). */
> +#define ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN() \
> + do { \
> + ANNOTATE_IGNORE_READS_BEGIN(); \
> + ANNOTATE_IGNORE_WRITES_BEGIN(); \
> + } while (0)
> +
> +/* Stop ignoring all memory accesses. */
> +#define ANNOTATE_IGNORE_READS_AND_WRITES_END() \
> + do { \
> + ANNOTATE_IGNORE_WRITES_END(); \
> + ANNOTATE_IGNORE_READS_END(); \
> + } while (0)
> +
> +
> +/* ----------------------------------------------------------------
> + Annotations useful for debugging.
> +
> + Again, so for unimplemented, partly for performance reasons.
> + ----------------------------------------------------------------
> +*/
> +
> +/* Request to trace every access to ADDRESS. */
> +#define ANNOTATE_TRACE_MEMORY(address) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_TRACE_MEMORY")
> +
> +/* Report the current thread name to a race detector. */
This is *very* useful for debugging if the program actually calls it.
--kcc
> +#define ANNOTATE_THREAD_NAME(name) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_THREAD_NAME")
> +
> +
> +/* ----------------------------------------------------------------
> + Annotations for describing behaviour of user-implemented lock
> + primitives. In all cases, the LOCK argument is a completely
> + arbitrary machine word (unsigned long, or void*) and can be any
> + value which gives a unique identity to the lock objects being
> + modelled.
> +
> + We just pretend they're ordinary posix rwlocks. That'll probably
> + give some rather confusing wording in error messages, claiming that
> + the arbitrary LOCK values are pthread_rwlock_t*'s, when in fact
> + they are not. Ah well.
> + ----------------------------------------------------------------
> +*/
> +/* Report that a lock has just been created at address LOCK. */
> +#define ANNOTATE_RWLOCK_CREATE(lock) \
> + do { \
> + unsigned long _qzz_res; \
> + VALGRIND_DO_CLIENT_REQUEST( \
> + _qzz_res, 0, _VG_USERREQ__HG_PTHREAD_RWLOCK_INIT_POST, \
> + lock, 0, 0, 0, 0 \
> + ); \
> + (void)0; \
> + } while(0)
> +
> +/* Report that the lock at address LOCK is about to be destroyed. */
> +#define ANNOTATE_RWLOCK_DESTROY(lock) \
> + do { \
> + unsigned long _qzz_res; \
> + VALGRIND_DO_CLIENT_REQUEST( \
> + _qzz_res, 0, _VG_USERREQ__HG_PTHREAD_RWLOCK_DESTROY_PRE, \
> + lock, 0, 0, 0, 0 \
> + ); \
> + (void)0; \
> + } while(0)
> +
> +/* Report that the lock at address LOCK has just been acquired.
> + is_w=1 for writer lock, is_w=0 for reader lock. */
> +#define ANNOTATE_RWLOCK_ACQUIRED(lock, is_w) \
> + do { \
> + unsigned long _qzz_res; \
> + VALGRIND_DO_CLIENT_REQUEST( \
> + _qzz_res, 0, _VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_POST, \
> + lock, is_w ? 1 : 0, 0, 0, 0 \
> + ); \
> + (void)0; \
> + } while(0)
> +
> +/* Report that the lock at address LOCK is about to be released. */
> + #define ANNOTATE_RWLOCK_RELEASED(lock, is_w) \
> + do { \
> + unsigned long _qzz_res; \
> + VALGRIND_DO_CLIENT_REQUEST( \
> + _qzz_res, 0, _VG_USERREQ__HG_PTHREAD_RWLOCK_UNLOCK_PRE, \
> + lock, 0, 0, 0, 0 \
> + ); \
> + (void)0; \
> + } while(0)
> +
> +
> +/* ----------------------------------------------------------------
> + Annotations useful for testing race detectors.
> + ----------------------------------------------------------------
> +*/
> +
> +/* Report that we expect a race on the variable at ADDRESS. Use only
> + in unit tests for a race detector. */
> +#define ANNOTATE_EXPECT_RACE(address, description) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_EXPECT_RACE")
> +
> +/* A no-op. Insert where you like to test the interceptors. */
> +#define ANNOTATE_NO_OP(arg) \
> + _HG_CLIENTREQ_UNIMP("ANNOTATE_NO_OP")
> +
> +
> #endif /* __HELGRIND_H */
>
> Modified: trunk/helgrind/hg_main.c
> ===================================================================
> --- trunk/helgrind/hg_main.c 2009-08-14 10:19:26 UTC (rev 10809)
> +++ trunk/helgrind/hg_main.c 2009-08-14 11:08:24 UTC (rev 10810)
> @@ -2966,6 +2966,107 @@
> }
>
>
> +/* ----------------------------------------------------- */
> +/* ----- events to do with user-specified HB edges ----- */
> +/* ----------------------------------------------------- */
> +
> +/* A mapping from arbitrary UWord tag to the SO associated with it.
> + The UWord tags are meaningless to us, interpreted only by the
> + user. */
> +
> +
> +
> +/* UWord -> SO* */
> +static WordFM* map_usertag_to_SO = NULL;
> +
> +static void map_usertag_to_SO_INIT ( void ) {
> + if (UNLIKELY(map_usertag_to_SO == NULL)) {
> + map_usertag_to_SO = VG_(newFM)( HG_(zalloc),
> + "hg.mutS.1", HG_(free), NULL );
> + tl_assert(map_usertag_to_SO != NULL);
> + }
> +}
> +
> +static SO* map_usertag_to_SO_lookup_or_alloc ( UWord usertag ) {
> + UWord key, val;
> + map_usertag_to_SO_INIT();
> + if (VG_(lookupFM)( map_usertag_to_SO, &key, &val, usertag )) {
> + tl_assert(key == (UWord)usertag);
> + return (SO*)val;
> + } else {
> + SO* so = libhb_so_alloc();
> + VG_(addToFM)( map_usertag_to_SO, usertag, (UWord)so );
> + return so;
> + }
> +}
> +
> +// If it's ever needed (XXX check before use)
> +//static void map_usertag_to_SO_delete ( UWord usertag ) {
> +// UWord keyW, valW;
> +// map_usertag_to_SO_INIT();
> +// if (VG_(delFromFM)( map_usertag_to_SO, &keyW, &valW, usertag )) {
> +// SO* so = (SO*)valW;
> +// tl_assert(keyW == usertag);
> +// tl_assert(so);
> +// libhb_so_dealloc(so);
> +// }
> +//}
> +
> +
> +static
> +void evh__HG_USERSO_SEND_PRE ( ThreadId tid, UWord usertag )
> +{
> + /* TID is just about to notionally sent a message on a notional
> + abstract synchronisation object whose identity is given by
> + USERTAG. Bind USERTAG to a real SO if it is not already so
> + bound, and do a 'strong send' on the SO. This is later used by
> + other thread(s) which successfully 'receive' from the SO,
> + thereby acquiring a dependency on this signalling event. */
> + Thread* thr;
> + SO* so;
> +
> + if (SHOW_EVENTS >= 1)
> + VG_(printf)("evh__HG_USERSO_SEND_PRE(ctid=%d, usertag=%#lx)\n",
> + (Int)tid, usertag );
> +
> + thr = map_threads_maybe_lookup( tid );
> + tl_assert(thr); /* cannot fail - Thread* must already exist */
> +
> + so = map_usertag_to_SO_lookup_or_alloc( usertag );
> + tl_assert(so);
> +
> + libhb_so_send( thr->hbthr, so, True/*strong_send*/ );
> +}
> +
> +static
> +void evh__HG_USERSO_RECV_POST ( ThreadId tid, UWord usertag )
> +{
> + /* TID has just notionally received a message from a notional
> + abstract synchronisation object whose identity is given by
> + USERTAG. Bind USERTAG to a real SO if it is not already so
> + bound. If the SO has at some point in the past been 'sent' on,
> + to a 'strong receive' on it, thereby acquiring a dependency on
> + the sender. */
> + Thread* thr;
> + SO* so;
> +
> + if (SHOW_EVENTS >= 1)
> + VG_(printf)("evh__HG_USERSO_RECV_POST(ctid=%d, usertag=%#lx)\n",
> + (Int)tid, usertag );
> +
> + thr = map_threads_maybe_lookup( tid );
> + tl_assert(thr); /* cannot fail - Thread* must already exist */
> +
> + so = map_usertag_to_SO_lookup_or_alloc( usertag );
> + tl_assert(so);
> +
> + /* Acquire a dependency on it. If the SO has never so far been
> + sent on, then libhb_so_recv will do nothing. So we're safe
> + regardless of SO's history. */
> + libhb_so_recv( thr->hbthr, so, True/*strong_recv*/ );
> +}
> +
> +
> /*--------------------------------------------------------------*/
> /*--- Lock acquisition order monitoring ---*/
> /*--------------------------------------------------------------*/
> @@ -4242,6 +4343,30 @@
> evh__HG_PTHREAD_SPIN_DESTROY_PRE( tid, (void*)args[1] );
> break;
>
> + case _VG_USERREQ__HG_CLIENTREQ_UNIMP: {
> + /* char* who */
> + HChar* who = (HChar*)args[1];
> + HChar buf[50 + 50];
> + Thread* thr = map_threads_maybe_lookup( tid );
> + tl_assert( thr ); /* I must be mapped */
> + tl_assert( who );
> + tl_assert( VG_(strlen)(who) <= 50 );
> + VG_(sprintf)(buf, "Unimplemented client request macro \"%s\"", who );
> + /* record_error_Misc strdup's buf, so this is safe: */
> + HG_(record_error_Misc)( thr, buf );
> + break;
> + }
> +
> + case _VG_USERREQ__HG_USERSO_SEND_PRE:
> + /* UWord arbitrary-SO-tag */
> + evh__HG_USERSO_SEND_PRE( tid, args[1] );
> + break;
> +
> + case _VG_USERREQ__HG_USERSO_RECV_POST:
> + /* UWord arbitrary-SO-tag */
> + evh__HG_USERSO_RECV_POST( tid, args[1] );
> + break;
> +
> default:
> /* Unhandled Helgrind client request! */
> tl_assert2(0, "unhandled Helgrind client request 0x%lx",
>
>
> ------------------------------------------------------------------------------
> 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: Alexander P. <gl...@go...> - 2009-08-14 11:26:21
|
Here you are: mcgrind:valgrind-new glider$ Inst/bin/valgrind --tool=helgrind --read-var-info=yes helgrind/tests/hg03_inherit ==77903== Helgrind, a thread error detector ==77903== Copyright (C) 2007-2009, and GNU GPL'd, by OpenWorks LLP et al. ==77903== Using Valgrind-3.5.0.SVN and LibVEX; rerun with -h for copyright info ==77903== Command: helgrind/tests/hg03_inherit ==77903== --77903-- warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0xf0 --77903-- warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0xf0 --77903-- warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0xf0 ==77903== Thread #3 was created ==77903== at 0x227FDE: __bsdthread_create (in /usr/lib/libSystem.B.dylib) ==77903== by 0x19F87: pthread_create_WRK (hg_intercepts.c:229) ==77903== by 0x1A014: pthread_create (hg_intercepts.c:262) ==77903== by 0x1FAD: main (hg03_inherit.c:46) ==77903== ==77903== Thread #1 is the program's root thread ==77903== ==77903== Possible data race during write of size 4 at 0x2034 by thread #3 ==77903== at 0x1EFE: t2 (hg03_inherit.c:28) ==77903== by 0x1A07D: mythread_wrapper (hg_intercepts.c:201) ==77903== by 0x228154: _pthread_start (in /usr/lib/libSystem.B.dylib) ==77903== by 0x228011: thread_start (in /usr/lib/libSystem.B.dylib) ==77903== This conflicts with a previous read of size 4 by thread #1 ==77903== at 0x1FD8: main (hg03_inherit.c:60) ==77903== Location 0x2034 is 0 bytes inside shared[1], ==77903== declared at hg03_inherit.c:11, in frame #0 of thread 3 ==77903== ==77903== ==77903== For counts of detected and suppressed errors, rerun with: -v ==77903== Use --history-level=approx or =none to gain increased speed, at ==77903== the cost of reduced accuracy of conflicting-access information ==77903== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 77 from 61) On Fri, Aug 14, 2009 at 3:09 PM, Nicholas Nethercote<n.n...@gm...> wrote: > On Fri, Aug 14, 2009 at 9:04 PM, Alexander Potapenko<gl...@go...> wrote: >> Nightly build on mcgrind ( Darwin 9.7.0 i386 ) >> Started at 2009-08-14 14:44:07 MSD >> Ended at 2009-08-14 15:02:10 MSD >> Results differ from 24 hours ago >> ================================================= >> ./valgrind-new/helgrind/tests/hg03_inherit.stderr.diff >> ================================================= >> --- hg03_inherit.stderr.exp 2009-08-14 14:52:53.000000000 +0400 >> +++ hg03_inherit.stderr.out 2009-08-14 15:00:05.000000000 +0400 >> @@ -1,4 +1,7 @@ >> >> +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ >> +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ >> +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ >> Thread #x was created >> ... >> by 0x........: pthread_create@* (hg_intercepts.c:...) > > This warning is causing lots of test failures on that machine, but > it's hard to understand because details are being filtered out. > > Can you rerun the test by hand (ie. "valgrind --tool=helgrind > --read-var-info=yes helgrind/tests/hg03_inherit") and post the > non-filtered results? Thanks. > > Nick > -- Alexander Potapenko Software Engineer Google Moscow |
|
From: <sv...@va...> - 2009-08-14 11:11:25
|
Author: sewardj
Date: 2009-08-14 12:11:12 +0100 (Fri, 14 Aug 2009)
New Revision: 10811
Log:
Initial tests for "Skeletal support for TSan-compatible annotations"
(r10810). The rwlock test is kludged and needs de-kludging.
Added:
trunk/helgrind/tests/annotate_hbefore.c
trunk/helgrind/tests/annotate_hbefore.stderr.exp
trunk/helgrind/tests/annotate_hbefore.stdout.exp
trunk/helgrind/tests/annotate_hbefore.vgtest
trunk/helgrind/tests/annotate_rwlock.c
trunk/helgrind/tests/annotate_rwlock.stderr.exp
trunk/helgrind/tests/annotate_rwlock.stdout.exp
trunk/helgrind/tests/annotate_rwlock.vgtest
Modified:
trunk/helgrind/tests/Makefile.am
Modified: trunk/helgrind/tests/Makefile.am
===================================================================
--- trunk/helgrind/tests/Makefile.am 2009-08-14 11:08:24 UTC (rev 10810)
+++ trunk/helgrind/tests/Makefile.am 2009-08-14 11:11:12 UTC (rev 10811)
@@ -4,6 +4,10 @@
dist_noinst_SCRIPTS = filter_stderr
EXTRA_DIST = \
+ annotate_hbefore.vgtest annotate_hbefore.stdout.exp \
+ annotate_hbefore.stderr.exp \
+ annotate_rwlock.vgtest annotate_rwlock.stdout.exp \
+ annotate_rwlock.stderr.exp \
bar_bad.vgtest bar_bad.stdout.exp bar_bad.stderr.exp \
bar_trivial.vgtest bar_trivial.stdout.exp bar_trivial.stderr.exp \
hg01_all_ok.vgtest hg01_all_ok.stdout.exp hg01_all_ok.stderr.exp \
@@ -12,7 +16,7 @@
hg04_race.vgtest hg04_race.stdout.exp hg04_race.stderr.exp \
hg05_race2.vgtest hg05_race2.stdout.exp hg05_race2.stderr.exp \
hg06_readshared.vgtest hg06_readshared.stdout.exp \
- hg06_readshared.stderr.exp \
+ hg06_readshared.stderr.exp \
pth_barrier1.vgtest pth_barrier1.stdout.exp pth_barrier1.stderr.exp \
pth_barrier2.vgtest pth_barrier2.stdout.exp pth_barrier2.stderr.exp \
pth_barrier3.vgtest pth_barrier3.stdout.exp pth_barrier3.stderr.exp \
@@ -72,6 +76,8 @@
# XXX: tc18_semabuse uses operations that are unsupported on Darwin. It
# should be conditionally compiled like tc20_verifywrap is.
check_PROGRAMS = \
+ annotate_hbefore \
+ annotate_rwlock \
hg01_all_ok \
hg02_deadlock \
hg03_inherit \
@@ -132,6 +138,10 @@
check_PROGRAMS += tc20_verifywrap
endif
+if HAVE_BUILTIN_ATOMIC
+check_PROGRAMS += annotate_rwlock
+endif
+
AM_CFLAGS += $(AM_FLAG_M3264_PRI)
AM_CXXFLAGS += $(AM_FLAG_M3264_PRI)
Added: trunk/helgrind/tests/annotate_hbefore.c
===================================================================
--- trunk/helgrind/tests/annotate_hbefore.c (rev 0)
+++ trunk/helgrind/tests/annotate_hbefore.c 2009-08-14 11:11:12 UTC (rev 10811)
@@ -0,0 +1,245 @@
+
+/* Program which uses a happens-before edge to coordinate an access to
+ variable 'shared_var' between two threads. The h-b edge is created
+ by a custom (kludgesome!) mechanism and hence we need to use
+ ANNOTATES_HAPPEN_{BEFORE,AFTER} to explain to Helgrind what's going
+ on (else it reports a race). */
+
+#include <pthread.h>
+#include <stdio.h>
+#include <assert.h>
+
+#include "../../helgrind/helgrind.h"
+
+/* Todo: move all this do_acasW guff into a support library. It's
+ useful for multiple tests, not just this one.
+
+ XXX: all the do_acasW routines assume the supplied address
+ is UWord (naturally) aligned. */
+
+
+typedef unsigned long int UWord;
+
+#if defined(VGA_ppc64)
+
+// ppc64
+/* return 1 if success, 0 if failure */
+UWord do_acasW ( UWord* addr, UWord expected, UWord nyu )
+{
+ UWord old, success;
+
+ /* Fetch the old value, and set the reservation */
+ __asm__ __volatile__ (
+ "ldarx %0, 0,%1" "\n" // rD,rA,rB
+ : /*out*/ "=b"(old)
+ : /*in*/ "b"(addr)
+ : /*trash*/ "memory","cc"
+ );
+
+ /* If the old value isn't as expected, we've had it */
+ if (old != expected) return 0;
+
+ /* otherwise try to stuff the new value in */
+ __asm__ __volatile__(
+ "stdcx. %2, 0,%1" "\n" // rS,rA,rB
+ "mfcr %0" "\n\t"
+ "srdi %0,%0,29" "\n\t"
+ "andi. %0,%0,1" "\n"
+ : /*out*/ "=b"(success)
+ : /*in*/ "b"(addr), "b"(nyu)
+ );
+
+ assert(success == 0 || success == 1);
+ return success;
+}
+
+#elif defined(VGA_ppc32)
+
+// ppc32
+/* return 1 if success, 0 if failure */
+UWord do_acasW ( UWord* addr, UWord expected, UWord nyu )
+{
+ UWord old, success;
+
+ /* Fetch the old value, and set the reservation */
+ __asm__ __volatile__ (
+ "lwarx %0, 0,%1" "\n" // rD,rA,rB
+ : /*out*/ "=b"(old)
+ : /*in*/ "b"(addr)
+ : /*trash*/ "memory","cc"
+ );
+
+ /* If the old value isn't as expected, we've had it */
+ if (old != expected) return 0;
+
+ /* otherwise try to stuff the new value in */
+ __asm__ __volatile__(
+ "stwcx. %2, 0,%1" "\n" // rS,rA,rB
+ "mfcr %0" "\n\t"
+ "srwi %0,%0,29" "\n\t"
+ "andi. %0,%0,1" "\n"
+ : /*out*/ "=b"(success)
+ : /*in*/ "b"(addr), "b"(nyu)
+ );
+
+ assert(success == 0 || success == 1);
+ return success;
+}
+
+#elif defined(VGA_amd64)
+
+// amd64
+/* return 1 if success, 0 if failure */
+UWord do_acasW ( UWord* addr, UWord expected, UWord nyu )
+{
+ UWord block[4] = { (UWord)addr, expected, nyu, 2 };
+ __asm__ __volatile__(
+ "movq 0(%%rsi), %%rdi" "\n\t" // addr
+ "movq 8(%%rsi), %%rax" "\n\t" // expected
+ "movq 16(%%rsi), %%rbx" "\n\t" // nyu
+ "xorq %%rcx,%%rcx" "\n\t"
+ "lock; cmpxchgq %%rbx,(%%rdi)" "\n\t"
+ "setz %%cl" "\n\t"
+ "movq %%rcx, 24(%%rsi)" "\n"
+ : /*out*/
+ : /*in*/ "S"(&block[0])
+ : /*trash*/"memory","cc","rdi","rax","rbx","rcx"
+ );
+ assert(block[3] == 0 || block[3] == 1);
+ return block[3] & 1;
+}
+
+#elif defined(VGA_x86)
+
+// x86
+/* return 1 if success, 0 if failure */
+UWord do_acasW ( UWord* addr, UWord expected, UWord nyu )
+{
+ UWord block[4] = { (UWord)addr, expected, nyu, 2 };
+ __asm__ __volatile__(
+ "movl 0(%%esi), %%edi" "\n\t" // addr
+ "movl 4(%%esi), %%eax" "\n\t" // expected
+ "movl 8(%%esi), %%ebx" "\n\t" // nyu
+ "xorl %%ecx,%%ecx" "\n\t"
+ "lock; cmpxchgl %%ebx,(%%edi)" "\n\t"
+ "setz %%cl" "\n\t"
+ "movl %%ecx, 12(%%esi)" "\n"
+ : /*out*/
+ : /*in*/ "S"(&block[0])
+ : /*trash*/"memory","cc","edi","eax","ebx","ecx"
+ );
+ assert(block[3] == 0 || block[3] == 1);
+ return block[3] & 1;
+}
+
+#endif
+
+void atomic_incW ( UWord* w )
+{
+ while (1) {
+ UWord old = *w;
+ UWord nyu = old + 1;
+ UWord ok = do_acasW( w, old, nyu );
+ if (ok) break;
+ };
+}
+
+#if 0
+
+#define NNN 1000000
+
+void* thread_fn ( void* arg )
+{
+ UWord* w = (UWord*)arg;
+ int i;
+ for (i = 0; i < NNN; i++)
+ atomic_incW( w );
+ return NULL;
+}
+
+
+int main ( void )
+{
+ int r;
+ //ANNOTATE_HAPPENS_BEFORE(0);
+ //return 0;
+ UWord w = 0;
+ pthread_t t1, t2;
+
+ r= pthread_create( &t1, NULL, &thread_fn, (void*)&w ); assert(!r);
+ r= pthread_create( &t2, NULL, &thread_fn, (void*)&w ); assert(!r);
+
+ r= pthread_join( t1, NULL ); assert(!r);
+ r= pthread_join( t2, NULL ); assert(!r);
+
+ printf("result = %lu\n", w );
+ return 0;
+}
+
+#endif
+
+int shared_var = 0; // is not raced upon
+
+
+void delay100ms ( void )
+{
+ struct timespec ts = { 0, 100 * 1000 * 1000 };
+ nanosleep(&ts, NULL);
+}
+
+void do_wait ( UWord* w )
+{
+ UWord w0 = *w;
+ UWord volatile * wV = w;
+ while (*wV == w0)
+ ;
+ ANNOTATE_HAPPENS_AFTER(w);
+}
+
+void do_signal ( UWord* w )
+{
+ ANNOTATE_HAPPENS_BEFORE(w);
+ atomic_incW(w);
+}
+
+
+
+void* thread_fn1 ( void* arg )
+{
+ UWord* w = (UWord*)arg;
+ delay100ms(); // ensure t2 gets to its wait first
+ shared_var = 1; // first access
+ do_signal(w); // cause h-b edge to second thread
+
+ delay100ms();
+ return NULL;
+}
+
+void* thread_fn2 ( void* arg )
+{
+ UWord* w = (UWord*)arg;
+ do_wait(w); // wait for h-b edge from first thread
+ shared_var = 2; // second access
+
+ delay100ms();
+ return NULL;
+}
+
+
+
+
+
+
+int main ( void )
+{
+ int r;
+ UWord w = 0;
+ pthread_t t1, t2;
+
+ r= pthread_create( &t1, NULL, &thread_fn1, (void*)&w ); assert(!r);
+ r= pthread_create( &t2, NULL, &thread_fn2, (void*)&w ); assert(!r);
+
+ r= pthread_join( t1, NULL ); assert(!r);
+ r= pthread_join( t2, NULL ); assert(!r);
+ return 0;
+}
Added: trunk/helgrind/tests/annotate_hbefore.stderr.exp
===================================================================
Added: trunk/helgrind/tests/annotate_hbefore.stdout.exp
===================================================================
Added: trunk/helgrind/tests/annotate_hbefore.vgtest
===================================================================
--- trunk/helgrind/tests/annotate_hbefore.vgtest (rev 0)
+++ trunk/helgrind/tests/annotate_hbefore.vgtest 2009-08-14 11:11:12 UTC (rev 10811)
@@ -0,0 +1,2 @@
+vgopts: -q
+prog: annotate_hbefore
Added: trunk/helgrind/tests/annotate_rwlock.c
===================================================================
--- trunk/helgrind/tests/annotate_rwlock.c (rev 0)
+++ trunk/helgrind/tests/annotate_rwlock.c 2009-08-14 11:11:12 UTC (rev 10811)
@@ -0,0 +1,176 @@
+
+/* This program is a marginally modified copy of
+ drd/tests/annotate_rwlock.c,
+
+ which was originally written by Bart van Assche.
+
+ Unfortunately due to the need to #include helgrind.h instead of
+ drd.h, it can't be an exact copy.
+*/
+
+/**
+ * @file annotate_rwlock.c
+ *
+ * @brief Multithreaded test program that triggers various access patterns
+ * without triggering any race conditions using a reader-writer lock
+ * implemented via busy-waiting. Annotations are used to tell DRD
+ * which higher-level rwlock operations are being performed.
+ */
+
+
+#define _GNU_SOURCE 1
+
+#include <assert.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <unistd.h> /* usleep() */
+#include "../../config.h"
+#include "../../helgrind/helgrind.h"
+
+
+#ifndef HAVE_BUILTIN_ATOMIC
+#error Sorry, but this test program can only be compiled by a compiler that\
+has built-in functions for atomic memory access.
+#endif
+
+
+typedef struct {
+ volatile int locked;
+ int writer_count;
+ int reader_count;
+} rwlock_t;
+
+
+static rwlock_t s_rwlock;
+static int s_counter;
+
+
+static void rwlock_init(rwlock_t* p)
+{
+ // DRD_IGNORE_VAR(*p);
+ p->locked = 0;
+ p->writer_count = 0;
+ p->reader_count = 0;
+ ANNOTATE_RWLOCK_CREATE(p);
+}
+
+static void rwlock_destroy(rwlock_t* p)
+{
+ ANNOTATE_RWLOCK_DESTROY(p);
+ assert(p->locked == 0);
+ assert(p->writer_count == 0);
+ assert(p->reader_count == 0);
+}
+
+static void rwlock_rdlock(rwlock_t* p)
+{
+ while (1)
+ {
+ while (__sync_val_compare_and_swap(&p->locked, 0, 1) == 1)
+ ;
+ if (p->writer_count == 0)
+ break;
+#ifdef __APPLE__
+ /* Darwin doesn't have an implementation of pthread_yield(). */
+ usleep(100 * 1000);
+#else
+ pthread_yield();
+#endif
+ (void) __sync_fetch_and_sub(&p->locked, 1);
+ }
+ p->reader_count++;
+ assert(p->reader_count >= 0);
+ assert(p->writer_count >= 0);
+ assert(p->reader_count == 0 || p->writer_count == 0);
+ (void) __sync_fetch_and_sub(&p->locked, 1);
+ //ANNOTATE_READERLOCK_ACQUIRED(p);
+ ANNOTATE_RWLOCK_ACQUIRED(p, 0);
+}
+
+static void rwlock_wrlock(rwlock_t* p)
+{
+ while (1)
+ {
+ while (__sync_val_compare_and_swap(&p->locked, 0, 1) == 1)
+ ;
+ if (p->reader_count == 0)
+ break;
+#ifdef __APPLE__
+ /* Darwin doesn't have an implementation of pthread_yield(). */
+ usleep(100 * 1000);
+#else
+ pthread_yield();
+#endif
+ (void) __sync_fetch_and_sub(&p->locked, 1);
+ }
+ p->writer_count++;
+ assert(p->reader_count >= 0);
+ assert(p->writer_count >= 0);
+ assert(p->reader_count == 0 || p->writer_count == 0);
+ (void) __sync_fetch_and_sub(&p->locked, 1);
+ // ANNOTATE_WRITERLOCK_ACQUIRED(p);
+ ANNOTATE_RWLOCK_ACQUIRED(p, 1);
+}
+
+static void rwlock_unlock(rwlock_t* p)
+{
+ while (__sync_val_compare_and_swap(&p->locked, 0, 1) == 1)
+ ;
+ if (p->reader_count > 0)
+ {
+ p->reader_count--;
+ //ANNOTATE_READERLOCK_RELEASED(p);
+ ANNOTATE_RWLOCK_RELEASED(p, 0);
+ }
+ else
+ {
+ p->writer_count--;
+ //ANNOTATE_WRITERLOCK_RELEASED(p);
+ ANNOTATE_RWLOCK_RELEASED(p, 1);
+ }
+ assert(p->reader_count >= 0);
+ assert(p->writer_count >= 0);
+ assert(p->reader_count == 0 || p->writer_count == 0);
+ (void) __sync_fetch_and_sub(&p->locked, 1);
+}
+
+static void* thread_func(void* arg)
+{
+ int i;
+ int sum = 0;
+
+ for (i = 0; i < 1000; i++)
+ {
+ rwlock_rdlock(&s_rwlock);
+ sum += s_counter;
+ rwlock_unlock(&s_rwlock);
+ rwlock_wrlock(&s_rwlock);
+ s_counter++;
+ rwlock_unlock(&s_rwlock);
+ }
+
+ return 0;
+}
+
+int main(int argc, char** argv)
+{
+ const int thread_count = 10;
+ pthread_t tid[thread_count];
+ int i;
+
+ rwlock_init(&s_rwlock);
+ for (i = 0; i < thread_count; i++)
+ {
+ pthread_create(&tid[i], 0, thread_func, 0);
+ }
+
+ for (i = 0; i < thread_count; i++)
+ {
+ pthread_join(tid[i], 0);
+ }
+ rwlock_destroy(&s_rwlock);
+
+ fprintf(stderr, "Finished.\n");
+
+ return 0;
+}
Added: trunk/helgrind/tests/annotate_rwlock.stderr.exp
===================================================================
--- trunk/helgrind/tests/annotate_rwlock.stderr.exp (rev 0)
+++ trunk/helgrind/tests/annotate_rwlock.stderr.exp 2009-08-14 11:11:12 UTC (rev 10811)
@@ -0,0 +1,77 @@
+Thread #x was created
+ ...
+ by 0x........: pthread_create@* (hg_intercepts.c:...)
+ by 0x........: main (annotate_rwlock.c:164)
+
+Thread #x was created
+ ...
+ by 0x........: pthread_create@* (hg_intercepts.c:...)
+ by 0x........: main (annotate_rwlock.c:164)
+
+Possible data race during read of size 4 at 0x........ by thread #x
+ at 0x........: rwlock_rdlock (annotate_rwlock.c:71)
+ by 0x........: thread_func (annotate_rwlock.c:144)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+ This conflicts with a previous write of size 4 by thread #x
+ at 0x........: rwlock_wrlock (annotate_rwlock.c:106)
+ by 0x........: thread_func (annotate_rwlock.c:147)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+
+Possible data race during read of size 4 at 0x........ by thread #x
+ at 0x........: rwlock_rdlock (annotate_rwlock.c:81)
+ by 0x........: thread_func (annotate_rwlock.c:144)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+ This conflicts with a previous write of size 4 by thread #x
+ at 0x........: rwlock_rdlock (annotate_rwlock.c:81)
+ by 0x........: thread_func (annotate_rwlock.c:144)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+
+Possible data race during write of size 4 at 0x........ by thread #x
+ at 0x........: rwlock_rdlock (annotate_rwlock.c:81)
+ by 0x........: thread_func (annotate_rwlock.c:144)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+ This conflicts with a previous read of size 4 by thread #x
+ at 0x........: rwlock_unlock (annotate_rwlock.c:131)
+ by 0x........: thread_func (annotate_rwlock.c:149)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+
+Possible data race during write of size 4 at 0x........ by thread #x
+ at 0x........: rwlock_unlock (annotate_rwlock.c:121)
+ by 0x........: thread_func (annotate_rwlock.c:146)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+ This conflicts with a previous read of size 4 by thread #x
+ at 0x........: rwlock_unlock (annotate_rwlock.c:131)
+ by 0x........: thread_func (annotate_rwlock.c:149)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+
+Possible data race during write of size 4 at 0x........ by thread #x
+ at 0x........: rwlock_wrlock (annotate_rwlock.c:106)
+ by 0x........: thread_func (annotate_rwlock.c:147)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+ This conflicts with a previous read of size 4 by thread #x
+ at 0x........: rwlock_unlock (annotate_rwlock.c:132)
+ by 0x........: thread_func (annotate_rwlock.c:149)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+
+Possible data race during write of size 4 at 0x........ by thread #x
+ at 0x........: rwlock_unlock (annotate_rwlock.c:127)
+ by 0x........: thread_func (annotate_rwlock.c:149)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+ This conflicts with a previous read of size 4 by thread #x
+ at 0x........: rwlock_unlock (annotate_rwlock.c:132)
+ by 0x........: thread_func (annotate_rwlock.c:149)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+
+Finished.
Added: trunk/helgrind/tests/annotate_rwlock.stdout.exp
===================================================================
Added: trunk/helgrind/tests/annotate_rwlock.vgtest
===================================================================
--- trunk/helgrind/tests/annotate_rwlock.vgtest (rev 0)
+++ trunk/helgrind/tests/annotate_rwlock.vgtest 2009-08-14 11:11:12 UTC (rev 10811)
@@ -0,0 +1,3 @@
+prereq: test -e annotate_rwlock
+vgopts: -q
+prog: annotate_rwlock
|
|
From: Nicholas N. <n.n...@gm...> - 2009-08-14 11:10:09
|
On Fri, Aug 14, 2009 at 9:04 PM, Alexander Potapenko<gl...@go...> wrote: > Nightly build on mcgrind ( Darwin 9.7.0 i386 ) > Started at 2009-08-14 14:44:07 MSD > Ended at 2009-08-14 15:02:10 MSD > Results differ from 24 hours ago > ================================================= > ./valgrind-new/helgrind/tests/hg03_inherit.stderr.diff > ================================================= > --- hg03_inherit.stderr.exp 2009-08-14 14:52:53.000000000 +0400 > +++ hg03_inherit.stderr.out 2009-08-14 15:00:05.000000000 +0400 > @@ -1,4 +1,7 @@ > > +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ > +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ > +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ > Thread #x was created > ... > by 0x........: pthread_create@* (hg_intercepts.c:...) This warning is causing lots of test failures on that machine, but it's hard to understand because details are being filtered out. Can you rerun the test by hand (ie. "valgrind --tool=helgrind --read-var-info=yes helgrind/tests/hg03_inherit") and post the non-filtered results? Thanks. Nick |
|
From: <sv...@va...> - 2009-08-14 11:08:37
|
Author: sewardj
Date: 2009-08-14 12:08:24 +0100 (Fri, 14 Aug 2009)
New Revision: 10810
Log:
Skeletal support for TSan-compatible annotations.
Modified:
trunk/helgrind/helgrind.h
trunk/helgrind/hg_main.c
Modified: trunk/helgrind/helgrind.h
===================================================================
--- trunk/helgrind/helgrind.h 2009-08-14 10:19:26 UTC (rev 10809)
+++ trunk/helgrind/helgrind.h 2009-08-14 11:08:24 UTC (rev 10810)
@@ -60,6 +60,10 @@
#include "valgrind.h"
+/* !! ABIWARNING !! ABIWARNING !! ABIWARNING !! ABIWARNING !!
+ This enum comprises an ABI exported by Valgrind to programs
+ which use client requests. DO NOT CHANGE THE ORDER OF THESE
+ ENTRIES, NOR DELETE ANY -- add new ones at the end. */
typedef
enum {
VG_USERREQ__HG_CLEAN_MEMORY = VG_USERREQ_TOOL_BASE('H','G'),
@@ -100,20 +104,389 @@
_VG_USERREQ__HG_PTHREAD_SPIN_INIT_OR_UNLOCK_POST, /* pth_slk_t* */
_VG_USERREQ__HG_PTHREAD_SPIN_LOCK_PRE, /* pth_slk_t* */
_VG_USERREQ__HG_PTHREAD_SPIN_LOCK_POST, /* pth_slk_t* */
- _VG_USERREQ__HG_PTHREAD_SPIN_DESTROY_PRE /* pth_slk_t* */
+ _VG_USERREQ__HG_PTHREAD_SPIN_DESTROY_PRE, /* pth_slk_t* */
+ _VG_USERREQ__HG_CLIENTREQ_UNIMP, /* char* */
+ _VG_USERREQ__HG_USERSO_SEND_PRE, /* arbitrary UWord SO-tag */
+ _VG_USERREQ__HG_USERSO_RECV_POST, /* arbitrary UWord SO-tag */
+ _VG_USERREQ__HG_RESERVED1, /* Do not use */
+ _VG_USERREQ__HG_RESERVED2 /* Do not use */
} Vg_TCheckClientRequest;
+
+/*----------------------------------------------------------------*/
+/*--- An implementation-only request -- not for end user use ---*/
+/*----------------------------------------------------------------*/
+
+#define _HG_CLIENTREQ_UNIMP(_qzz_str) \
+ do { \
+ unsigned long _qzz_res; \
+ VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
+ _VG_USERREQ__HG_CLIENTREQ_UNIMP, \
+ _qzz_str, 0, 0, 0, 0); \
+ (void)0; \
+ } while(0)
+
+
+/*----------------------------------------------------------------*/
+/*--- Misc requests ---*/
+/*----------------------------------------------------------------*/
+
/* Clean memory state. This makes Helgrind forget everything it knew
- about the specified memory range, and resets it to New. This is
- particularly useful for memory allocators that wish to recycle
- memory. */
-#define VALGRIND_HG_CLEAN_MEMORY(_qzz_start, _qzz_len) \
- do { \
- unsigned long _qzz_res; \
- VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, VG_USERREQ__HG_CLEAN_MEMORY, \
- _qzz_start, _qzz_len, 0, 0, 0); \
- (void)0; \
+ about the specified memory range. Effectively this announces that
+ the specified memory range now "belongs" to the calling thread, so
+ that: (1) the calling thread can access it safely without
+ synchronisation, and (2) all other threads must sync with this one
+ to access it safely. This is particularly useful for memory
+ allocators that wish to recycle memory. */
+#define VALGRIND_HG_CLEAN_MEMORY(_qzz_start, _qzz_len) \
+ do { \
+ unsigned long _qzz_res; \
+ VALGRIND_DO_CLIENT_REQUEST( \
+ (_qzz_res), 0, VG_USERREQ__HG_CLEAN_MEMORY, \
+ (_qzz_start), (_qzz_len), 0, 0, 0 \
+ ); \
+ (void)0; \
} while(0)
+
+/*----------------------------------------------------------------*/
+/*--- ThreadSanitizer-compatible requests ---*/
+/*----------------------------------------------------------------*/
+
+/* A quite-broad set of annotations, as used in the ThreadSanitizer
+ project. This implementation aims to be a (source-level)
+ compatible implementation of the macros defined in:
+
+ http://code.google.com/p/google-perftools/source \
+ /browse/trunk/src/base/dynamic_annotations.h
+
+ (some of the comments below are taken from the above file)
+
+ The implementation here is very incomplete, and intended as a
+ starting point. Many of the macros are unimplemented. Rather than
+ allowing unimplemented macros to silently do nothing, they cause an
+ assertion. Intention is to implement them on demand.
+
+ The major use of these macros is to make visible to race detectors,
+ the behaviour (effects) of user-implemented synchronisation
+ primitives, that the detectors could not otherwise deduce from the
+ normal observation of pthread etc calls.
+
+ Some of the macros are no-ops in Helgrind. That's because Helgrind
+ is a pure happens-before detector, whereas ThreadSanitizer uses a
+ hybrid lockset and happens-before scheme, which requires more
+ accurate annotations for correct operation.
+
+ The macros are listed in the same order as in dynamic_annotations.h
+ (URL just above).
+
+ I should point out that I am less than clear about the intended
+ semantics of quite a number of them. Comments and clarifications
+ welcomed!
+*/
+
+/* ----------------------------------------------------------------
+ These four allow description of user-level condition variables,
+ apparently in the style of POSIX's pthread_cond_t. Currently
+ unimplemented and will assert.
+ ----------------------------------------------------------------
+*/
+/* Report that wait on the condition variable at address CV has
+ succeeded and the lock at address LOCK is now held. CV and LOCK
+ are completely arbitrary memory addresses which presumably mean
+ something to the application, but are meaningless to Helgrind. */
+#define ANNOTATE_CONDVAR_LOCK_WAIT(cv, lock) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_CONDVAR_LOCK_WAIT")
+
+/* Report that wait on the condition variable at CV has succeeded.
+ Variant w/o lock. */
+#define ANNOTATE_CONDVAR_WAIT(cv) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_CONDVAR_WAIT")
+
+/* Report that we are about to signal on the condition variable at
+ address CV. */
+#define ANNOTATE_CONDVAR_SIGNAL(cv) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_CONDVAR_SIGNAL")
+
+/* Report that we are about to signal_all on the condition variable at
+ CV. */
+#define ANNOTATE_CONDVAR_SIGNAL_ALL(cv) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_CONDVAR_SIGNAL_ALL")
+
+
+/* ----------------------------------------------------------------
+ Create completely arbitrary happens-before edges between threads.
+ If thread T1 does ANNOTATE_HAPPENS_BEFORE(obj) and later (w.r.t.
+ some notional global clock for the computation) thread T2 does
+ ANNOTATE_HAPPENS_AFTER(obj), then Helgrind will regard all memory
+ accesses done by T1 before the ..BEFORE.. call as happening-before
+ all memory accesses done by T2 after the ..AFTER.. call. Hence
+ Helgrind won't complain about races if T2's accesses afterwards are
+ to the same locations as T1's accesses before.
+
+ OBJ is a machine word (unsigned long, or void*), is completely
+ arbitrary, and denotes the identity of some synchronisation object
+ you're modelling.
+
+ You must do the _BEFORE call just before the real sync event on the
+ signaller's side, and _AFTER just after the real sync event on the
+ waiter's side.
+
+ If none of the rest of these macros make sense to you, at least
+ take the time to understand these two. They form the very essence
+ of describing arbitrary inter-thread synchronisation events to
+ Helgrind. You can get a long way just with them alone.
+ ----------------------------------------------------------------
+*/
+#define ANNOTATE_HAPPENS_BEFORE(obj) \
+ do { \
+ unsigned long _qzz_res; \
+ VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
+ _VG_USERREQ__HG_USERSO_SEND_PRE, \
+ obj, 0, 0, 0, 0); \
+ (void)0; \
+ } while (0)
+
+#define ANNOTATE_HAPPENS_AFTER(obj) \
+ do { \
+ unsigned long _qzz_res; \
+ VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
+ _VG_USERREQ__HG_USERSO_RECV_POST, \
+ obj, 0, 0, 0, 0); \
+ (void)0; \
+ } while (0)
+
+
+/* ----------------------------------------------------------------
+ Memory publishing. The TSan sources say:
+
+ Report that the bytes in the range [pointer, pointer+size) are about
+ to be published safely. The race checker will create a happens-before
+ arc from the call ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) to
+ subsequent accesses to this memory.
+
+ I'm not sure I understand what this means exactly, nor whether it
+ is relevant for a pure h-b detector. Leaving unimplemented for
+ now.
+ ----------------------------------------------------------------
+*/
+#define ANNOTATE_PUBLISH_MEMORY_RANGE(pointer, size) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_PUBLISH_MEMORY_RANGE")
+
+
+/* ----------------------------------------------------------------
+ TSan sources say:
+
+ Instruct the tool to create a happens-before arc between
+ MU->Unlock() and MU->Lock(). This annotation may slow down the
+ race detector; normally it is used only when it would be
+ difficult to annotate each of the mutex's critical sections
+ individually using the annotations above.
+
+ If MU is a posix pthread_mutex_t then Helgrind will do this anyway.
+ In any case, leave as unimp for now. I'm unsure about the intended
+ behaviour.
+ ----------------------------------------------------------------
+*/
+#define ANNOTATE_MUTEX_IS_USED_AS_CONDVAR(mu) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_MUTEX_IS_USED_AS_CONDVAR")
+
+
+/* ----------------------------------------------------------------
+ TSan sources say:
+
+ Annotations useful when defining memory allocators, or when
+ memory that was protected in one way starts to be protected in
+ another.
+
+ Report that a new memory at "address" of size "size" has been
+ allocated. This might be used when the memory has been retrieved
+ from a free list and is about to be reused, or when a the locking
+ discipline for a variable changes.
+
+ AFAICS this is the same as VALGRIND_HG_CLEAN_MEMORY.
+ ----------------------------------------------------------------
+*/
+#define ANNOTATE_NEW_MEMORY(address, size) \
+ VALGRIND_HG_CLEAN_MEMORY((address), (size))
+
+
+/* ----------------------------------------------------------------
+ TSan sources say:
+
+ Annotations useful when defining FIFO queues that transfer data
+ between threads.
+
+ All unimplemented. Am not claiming to understand this (yet).
+ ----------------------------------------------------------------
+*/
+
+/* Report that the producer-consumer queue object at address PCQ has
+ been created. The ANNOTATE_PCQ_* annotations should be used only
+ for FIFO queues. For non-FIFO queues use ANNOTATE_HAPPENS_BEFORE
+ (for put) and ANNOTATE_HAPPENS_AFTER (for get). */
+#define ANNOTATE_PCQ_CREATE(pcq) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_PCQ_CREATE")
+
+/* Report that the queue at address PCQ is about to be destroyed. */
+#define ANNOTATE_PCQ_DESTROY(pcq) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_PCQ_DESTROY")
+
+/* Report that we are about to put an element into a FIFO queue at
+ address PCQ. */
+#define ANNOTATE_PCQ_PUT(pcq) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_PCQ_PUT")
+
+/* Report that we've just got an element from a FIFO queue at address
+ PCQ. */
+#define ANNOTATE_PCQ_GET(pcq) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_PCQ_GET")
+
+
+/* ----------------------------------------------------------------
+ Annotations that suppress errors. It is usually better to express
+ the program's synchronization using the other annotations, but
+ these can be used when all else fails.
+
+ Currently these are all unimplemented. I can't think of a simple
+ way to implement them without at least some performance overhead.
+ ----------------------------------------------------------------
+*/
+
+/* Report that we may have a benign race on ADDRESS. Insert at the
+ point where ADDRESS has been allocated, preferably close to the
+ point where the race happens. See also ANNOTATE_BENIGN_RACE_STATIC.
+
+ XXX: what's this actually supposed to do? And what's the type of
+ DESCRIPTION? When does the annotation stop having an effect?
+*/
+#define ANNOTATE_BENIGN_RACE(address, description) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_BENIGN_RACE")
+
+
+/* Request the analysis tool to ignore all reads in the current thread
+ until ANNOTATE_IGNORE_READS_END is called. Useful to ignore
+ intentional racey reads, while still checking other reads and all
+ writes. */
+#define ANNOTATE_IGNORE_READS_BEGIN() \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_IGNORE_READS_BEGIN")
+
+/* Stop ignoring reads. */
+#define ANNOTATE_IGNORE_READS_END() \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_IGNORE_READS_END")
+
+/* Similar to ANNOTATE_IGNORE_READS_BEGIN, but ignore writes. */
+#define ANNOTATE_IGNORE_WRITES_BEGIN() \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_IGNORE_WRITES_BEGIN")
+
+/* Stop ignoring writes. */
+#define ANNOTATE_IGNORE_WRITES_END() \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_IGNORE_WRITES_END")
+
+/* Start ignoring all memory accesses (reads and writes). */
+#define ANNOTATE_IGNORE_READS_AND_WRITES_BEGIN() \
+ do { \
+ ANNOTATE_IGNORE_READS_BEGIN(); \
+ ANNOTATE_IGNORE_WRITES_BEGIN(); \
+ } while (0)
+
+/* Stop ignoring all memory accesses. */
+#define ANNOTATE_IGNORE_READS_AND_WRITES_END() \
+ do { \
+ ANNOTATE_IGNORE_WRITES_END(); \
+ ANNOTATE_IGNORE_READS_END(); \
+ } while (0)
+
+
+/* ----------------------------------------------------------------
+ Annotations useful for debugging.
+
+ Again, so for unimplemented, partly for performance reasons.
+ ----------------------------------------------------------------
+*/
+
+/* Request to trace every access to ADDRESS. */
+#define ANNOTATE_TRACE_MEMORY(address) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_TRACE_MEMORY")
+
+/* Report the current thread name to a race detector. */
+#define ANNOTATE_THREAD_NAME(name) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_THREAD_NAME")
+
+
+/* ----------------------------------------------------------------
+ Annotations for describing behaviour of user-implemented lock
+ primitives. In all cases, the LOCK argument is a completely
+ arbitrary machine word (unsigned long, or void*) and can be any
+ value which gives a unique identity to the lock objects being
+ modelled.
+
+ We just pretend they're ordinary posix rwlocks. That'll probably
+ give some rather confusing wording in error messages, claiming that
+ the arbitrary LOCK values are pthread_rwlock_t*'s, when in fact
+ they are not. Ah well.
+ ----------------------------------------------------------------
+*/
+/* Report that a lock has just been created at address LOCK. */
+#define ANNOTATE_RWLOCK_CREATE(lock) \
+ do { \
+ unsigned long _qzz_res; \
+ VALGRIND_DO_CLIENT_REQUEST( \
+ _qzz_res, 0, _VG_USERREQ__HG_PTHREAD_RWLOCK_INIT_POST, \
+ lock, 0, 0, 0, 0 \
+ ); \
+ (void)0; \
+ } while(0)
+
+/* Report that the lock at address LOCK is about to be destroyed. */
+#define ANNOTATE_RWLOCK_DESTROY(lock) \
+ do { \
+ unsigned long _qzz_res; \
+ VALGRIND_DO_CLIENT_REQUEST( \
+ _qzz_res, 0, _VG_USERREQ__HG_PTHREAD_RWLOCK_DESTROY_PRE, \
+ lock, 0, 0, 0, 0 \
+ ); \
+ (void)0; \
+ } while(0)
+
+/* Report that the lock at address LOCK has just been acquired.
+ is_w=1 for writer lock, is_w=0 for reader lock. */
+#define ANNOTATE_RWLOCK_ACQUIRED(lock, is_w) \
+ do { \
+ unsigned long _qzz_res; \
+ VALGRIND_DO_CLIENT_REQUEST( \
+ _qzz_res, 0, _VG_USERREQ__HG_PTHREAD_RWLOCK_LOCK_POST, \
+ lock, is_w ? 1 : 0, 0, 0, 0 \
+ ); \
+ (void)0; \
+ } while(0)
+
+/* Report that the lock at address LOCK is about to be released. */
+ #define ANNOTATE_RWLOCK_RELEASED(lock, is_w) \
+ do { \
+ unsigned long _qzz_res; \
+ VALGRIND_DO_CLIENT_REQUEST( \
+ _qzz_res, 0, _VG_USERREQ__HG_PTHREAD_RWLOCK_UNLOCK_PRE, \
+ lock, 0, 0, 0, 0 \
+ ); \
+ (void)0; \
+ } while(0)
+
+
+/* ----------------------------------------------------------------
+ Annotations useful for testing race detectors.
+ ----------------------------------------------------------------
+*/
+
+/* Report that we expect a race on the variable at ADDRESS. Use only
+ in unit tests for a race detector. */
+#define ANNOTATE_EXPECT_RACE(address, description) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_EXPECT_RACE")
+
+/* A no-op. Insert where you like to test the interceptors. */
+#define ANNOTATE_NO_OP(arg) \
+ _HG_CLIENTREQ_UNIMP("ANNOTATE_NO_OP")
+
+
#endif /* __HELGRIND_H */
Modified: trunk/helgrind/hg_main.c
===================================================================
--- trunk/helgrind/hg_main.c 2009-08-14 10:19:26 UTC (rev 10809)
+++ trunk/helgrind/hg_main.c 2009-08-14 11:08:24 UTC (rev 10810)
@@ -2966,6 +2966,107 @@
}
+/* ----------------------------------------------------- */
+/* ----- events to do with user-specified HB edges ----- */
+/* ----------------------------------------------------- */
+
+/* A mapping from arbitrary UWord tag to the SO associated with it.
+ The UWord tags are meaningless to us, interpreted only by the
+ user. */
+
+
+
+/* UWord -> SO* */
+static WordFM* map_usertag_to_SO = NULL;
+
+static void map_usertag_to_SO_INIT ( void ) {
+ if (UNLIKELY(map_usertag_to_SO == NULL)) {
+ map_usertag_to_SO = VG_(newFM)( HG_(zalloc),
+ "hg.mutS.1", HG_(free), NULL );
+ tl_assert(map_usertag_to_SO != NULL);
+ }
+}
+
+static SO* map_usertag_to_SO_lookup_or_alloc ( UWord usertag ) {
+ UWord key, val;
+ map_usertag_to_SO_INIT();
+ if (VG_(lookupFM)( map_usertag_to_SO, &key, &val, usertag )) {
+ tl_assert(key == (UWord)usertag);
+ return (SO*)val;
+ } else {
+ SO* so = libhb_so_alloc();
+ VG_(addToFM)( map_usertag_to_SO, usertag, (UWord)so );
+ return so;
+ }
+}
+
+// If it's ever needed (XXX check before use)
+//static void map_usertag_to_SO_delete ( UWord usertag ) {
+// UWord keyW, valW;
+// map_usertag_to_SO_INIT();
+// if (VG_(delFromFM)( map_usertag_to_SO, &keyW, &valW, usertag )) {
+// SO* so = (SO*)valW;
+// tl_assert(keyW == usertag);
+// tl_assert(so);
+// libhb_so_dealloc(so);
+// }
+//}
+
+
+static
+void evh__HG_USERSO_SEND_PRE ( ThreadId tid, UWord usertag )
+{
+ /* TID is just about to notionally sent a message on a notional
+ abstract synchronisation object whose identity is given by
+ USERTAG. Bind USERTAG to a real SO if it is not already so
+ bound, and do a 'strong send' on the SO. This is later used by
+ other thread(s) which successfully 'receive' from the SO,
+ thereby acquiring a dependency on this signalling event. */
+ Thread* thr;
+ SO* so;
+
+ if (SHOW_EVENTS >= 1)
+ VG_(printf)("evh__HG_USERSO_SEND_PRE(ctid=%d, usertag=%#lx)\n",
+ (Int)tid, usertag );
+
+ thr = map_threads_maybe_lookup( tid );
+ tl_assert(thr); /* cannot fail - Thread* must already exist */
+
+ so = map_usertag_to_SO_lookup_or_alloc( usertag );
+ tl_assert(so);
+
+ libhb_so_send( thr->hbthr, so, True/*strong_send*/ );
+}
+
+static
+void evh__HG_USERSO_RECV_POST ( ThreadId tid, UWord usertag )
+{
+ /* TID has just notionally received a message from a notional
+ abstract synchronisation object whose identity is given by
+ USERTAG. Bind USERTAG to a real SO if it is not already so
+ bound. If the SO has at some point in the past been 'sent' on,
+ to a 'strong receive' on it, thereby acquiring a dependency on
+ the sender. */
+ Thread* thr;
+ SO* so;
+
+ if (SHOW_EVENTS >= 1)
+ VG_(printf)("evh__HG_USERSO_RECV_POST(ctid=%d, usertag=%#lx)\n",
+ (Int)tid, usertag );
+
+ thr = map_threads_maybe_lookup( tid );
+ tl_assert(thr); /* cannot fail - Thread* must already exist */
+
+ so = map_usertag_to_SO_lookup_or_alloc( usertag );
+ tl_assert(so);
+
+ /* Acquire a dependency on it. If the SO has never so far been
+ sent on, then libhb_so_recv will do nothing. So we're safe
+ regardless of SO's history. */
+ libhb_so_recv( thr->hbthr, so, True/*strong_recv*/ );
+}
+
+
/*--------------------------------------------------------------*/
/*--- Lock acquisition order monitoring ---*/
/*--------------------------------------------------------------*/
@@ -4242,6 +4343,30 @@
evh__HG_PTHREAD_SPIN_DESTROY_PRE( tid, (void*)args[1] );
break;
+ case _VG_USERREQ__HG_CLIENTREQ_UNIMP: {
+ /* char* who */
+ HChar* who = (HChar*)args[1];
+ HChar buf[50 + 50];
+ Thread* thr = map_threads_maybe_lookup( tid );
+ tl_assert( thr ); /* I must be mapped */
+ tl_assert( who );
+ tl_assert( VG_(strlen)(who) <= 50 );
+ VG_(sprintf)(buf, "Unimplemented client request macro \"%s\"", who );
+ /* record_error_Misc strdup's buf, so this is safe: */
+ HG_(record_error_Misc)( thr, buf );
+ break;
+ }
+
+ case _VG_USERREQ__HG_USERSO_SEND_PRE:
+ /* UWord arbitrary-SO-tag */
+ evh__HG_USERSO_SEND_PRE( tid, args[1] );
+ break;
+
+ case _VG_USERREQ__HG_USERSO_RECV_POST:
+ /* UWord arbitrary-SO-tag */
+ evh__HG_USERSO_RECV_POST( tid, args[1] );
+ break;
+
default:
/* Unhandled Helgrind client request! */
tl_assert2(0, "unhandled Helgrind client request 0x%lx",
|
|
From: Alexander P. <gl...@go...> - 2009-08-14 11:04:28
|
Nightly build on mcgrind ( Darwin 9.7.0 i386 )
Started at 2009-08-14 14:44:07 MSD
Ended at 2009-08-14 15:02:10 MSD
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
== 426 tests, 22 stderr failures, 0 stdout failures, 0 post failures ==
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)
none/tests/async-sigs (stderr)
none/tests/faultstatus (stderr)
none/tests/pth_blockedsig (stderr)
helgrind/tests/hg03_inherit (stderr)
helgrind/tests/hg04_race (stderr)
helgrind/tests/hg05_race2 (stderr)
helgrind/tests/rwlock_race (stderr)
helgrind/tests/tc01_simple_race (stderr)
helgrind/tests/tc05_simple_race (stderr)
helgrind/tests/tc06_two_races (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
helgrind/tests/tc16_byterace (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc21_pthonce (stderr)
helgrind/tests/tc23_bogus_condwait (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
== 395 tests, 10 stderr failures, 0 stdout failures, 0 post failures ==
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)
none/tests/async-sigs (stderr)
none/tests/faultstatus (stderr)
none/tests/pth_blockedsig (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short 2009-08-14 14:52:50.000000000 +0400
--- new.short 2009-08-14 15:02:10.000000000 +0400
***************
*** 8,10 ****
! == 395 tests, 10 stderr failures, 0 stdout failures, 0 post failures ==
memcheck/tests/origin5-bz2 (stderr)
--- 8,10 ----
! == 426 tests, 22 stderr failures, 0 stdout failures, 0 post failures ==
memcheck/tests/origin5-bz2 (stderr)
***************
*** 19,20 ****
--- 19,32 ----
none/tests/pth_blockedsig (stderr)
+ helgrind/tests/hg03_inherit (stderr)
+ helgrind/tests/hg04_race (stderr)
+ helgrind/tests/hg05_race2 (stderr)
+ helgrind/tests/rwlock_race (stderr)
+ helgrind/tests/tc01_simple_race (stderr)
+ helgrind/tests/tc05_simple_race (stderr)
+ helgrind/tests/tc06_two_races (stderr)
+ helgrind/tests/tc06_two_races_xml (stderr)
+ helgrind/tests/tc16_byterace (stderr)
+ helgrind/tests/tc18_semabuse (stderr)
+ helgrind/tests/tc21_pthonce (stderr)
+ helgrind/tests/tc23_bogus_condwait (stderr)
=================================================
./valgrind-new/helgrind/tests/hg03_inherit.stderr.diff
=================================================
--- hg03_inherit.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ hg03_inherit.stderr.out 2009-08-14 15:00:05.000000000 +0400
@@ -1,4 +1,7 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
=================================================
./valgrind-new/helgrind/tests/hg04_race.stderr.diff
=================================================
--- hg04_race.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ hg04_race.stderr.out 2009-08-14 15:00:06.000000000 +0400
@@ -1,4 +1,6 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
@@ -31,5 +33,6 @@
Location 0x........ is 0 bytes inside local var "shared"
declared at hg04_race.c:6, in frame #x of thread x
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/hg05_race2.stderr.diff
=================================================
--- hg05_race2.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ hg05_race2.stderr.out 2009-08-14 15:00:08.000000000 +0400
@@ -1,4 +1,8 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
@@ -20,6 +24,8 @@
Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
declared at hg05_race2.c:24, in frame #x of thread x
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Possible data race during write of size 4 at 0x........ by thread #x
at 0x........: th (hg05_race2.c:17)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
@@ -31,5 +37,6 @@
Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
declared at hg05_race2.c:24, in frame #x of thread x
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/rwlock_race.stderr.diff
=================================================
--- rwlock_race.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ rwlock_race.stderr.out 2009-08-14 15:00:09.000000000 +0400
@@ -1,25 +1,7 @@
-Thread #x was created
- ...
- by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (rwlock_race.c:48)
-
-Thread #x was created
- ...
- by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (rwlock_race.c:47)
-
-Possible data race during write of size 4 at 0x........ by thread #x
- at 0x........: thread_func (rwlock_race.c:29)
- by 0x........: mythread_wrapper (hg_intercepts.c:...)
- ...
- This conflicts with a previous write of size 4 by thread #x
- at 0x........: thread_func (rwlock_race.c:29)
- by 0x........: mythread_wrapper (hg_intercepts.c:...)
- ...
- Location 0x........ is 0 bytes inside local var "s_racy"
- declared at rwlock_race.c:18, in frame #x of thread x
-
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Result: 2
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc01_simple_race.stderr.diff
=================================================
--- tc01_simple_race.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ tc01_simple_race.stderr.out 2009-08-14 15:00:16.000000000 +0400
@@ -1,4 +1,6 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Thread #x is the program's root thread
Thread #x was created
=================================================
./valgrind-new/helgrind/tests/tc05_simple_race.stderr.diff
=================================================
--- tc05_simple_race.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ tc05_simple_race.stderr.out 2009-08-14 15:00:18.000000000 +0400
@@ -1,4 +1,6 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Thread #x is the program's root thread
Thread #x was created
=================================================
./valgrind-new/helgrind/tests/tc06_two_races.stderr.diff
=================================================
--- tc06_two_races.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ tc06_two_races.stderr.out 2009-08-14 15:00:18.000000000 +0400
@@ -1,4 +1,6 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Thread #x is the program's root thread
Thread #x was created
=================================================
./valgrind-new/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ tc06_two_races_xml.stderr.out 2009-08-14 15:00:19.000000000 +0400
@@ -39,17 +39,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>clone</fn>
- </frame>
- <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>
+ <fn>__bsdthread_create</fn>
</frame>
<frame>
<ip>0x........</ip>
@@ -62,7 +52,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>pthread_create@*</fn>
+ <fn>pthread_create</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
@@ -120,12 +110,12 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>clone</fn>
+ <fn>thread_start</fn>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -174,12 +164,12 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>clone</fn>
+ <fn>thread_start</fn>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -228,12 +218,12 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>clone</fn>
+ <fn>thread_start</fn>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
@@ -282,18 +272,19 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>clone</fn>
+ <fn>thread_start</fn>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
<xauxwhat><text>declared at tc06_two_races.c:9</text>
<file>tc06_two_races.c</file> <line>...</line> </xauxwhat>
</error>
+
<status>
<state>FINISHED</state>
<time>...</time>
=================================================
./valgrind-new/helgrind/tests/tc16_byterace.stderr.diff
=================================================
--- tc16_byterace.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ tc16_byterace.stderr.out 2009-08-14 15:00:26.000000000 +0400
@@ -1,4 +1,6 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Thread #x is the program's root thread
Thread #x was created
=================================================
./valgrind-new/helgrind/tests/tc18_semabuse.stderr.diff-glibc25-amd64
=================================================
--- tc18_semabuse.stderr.exp-glibc25-amd64 2009-08-14
14:52:53.000000000 +0400
+++ tc18_semabuse.stderr.out 2009-08-14 15:00:27.000000000 +0400
@@ -2,14 +2,30 @@
Thread #x is the program's root thread
Thread #x's call to sem_init failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_init@* (hg_intercepts.c:...)
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_init (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:23)
-Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without
prior sem_post
+Thread #x's call to sem_init failed
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_init (hg_intercepts.c:...)
+ by 0x........: main (tc18_semabuse.c:26)
+
+Thread #x's call to sem_wait failed
+ with error code 9 (EBADF: Bad file number)
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
- by 0x........: sem_wait (hg_intercepts.c:...)
+ by 0x........: sem_wait$* (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:34)
+Thread #x's call to sem_post failed
+ with error code 9 (EBADF: Bad file number)
+ at 0x........: sem_post (hg_intercepts.c:...)
+ by 0x........: main (tc18_semabuse.c:37)
+
+Thread #x's call to sem_destroy failed
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_destroy (hg_intercepts.c:...)
+ by 0x........: main (tc18_semabuse.c:39)
+
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc18_semabuse.stderr.diff-glibc28-amd64
=================================================
--- tc18_semabuse.stderr.exp-glibc28-amd64 2009-08-14
14:52:53.000000000 +0400
+++ tc18_semabuse.stderr.out 2009-08-14 15:00:27.000000000 +0400
@@ -2,20 +2,30 @@
Thread #x is the program's root thread
Thread #x's call to sem_init failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_init@* (hg_intercepts.c:...)
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_init (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:23)
-Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without
prior sem_post
+Thread #x's call to sem_init failed
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_init (hg_intercepts.c:...)
+ by 0x........: main (tc18_semabuse.c:26)
+
+Thread #x's call to sem_wait failed
+ with error code 9 (EBADF: Bad file number)
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
- by 0x........: sem_wait (hg_intercepts.c:...)
+ by 0x........: sem_wait$* (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:34)
Thread #x's call to sem_post failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_post_WRK (hg_intercepts.c:...)
- by 0x........: sem_post (hg_intercepts.c:...)
+ with error code 9 (EBADF: Bad file number)
+ at 0x........: sem_post (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:37)
+Thread #x's call to sem_destroy failed
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_destroy (hg_intercepts.c:...)
+ by 0x........: main (tc18_semabuse.c:39)
+
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc21_pthonce.stderr.diff
=================================================
--- tc21_pthonce.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ tc21_pthonce.stderr.out 2009-08-14 15:00:44.000000000 +0400
@@ -1,4 +1,6 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Thread #x was created
...
by 0x........: pthread_create@* (hg_intercepts.c:...)
=================================================
./valgrind-new/helgrind/tests/tc23_bogus_condwait.stderr.diff
=================================================
--- tc23_bogus_condwait.stderr.exp 2009-08-14 14:52:53.000000000 +0400
+++ tc23_bogus_condwait.stderr.out 2009-08-14 15:00:49.000000000 +0400
@@ -2,32 +2,52 @@
Thread #x is the program's root thread
Thread #x: pthread_cond_{timed}wait called with invalid mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
+ by 0x........: main (tc23_bogus_condwait.c:69)
+
+Thread #x's call to pthread_cond_wait failed
+ with error code 22 (EINVAL: Invalid argument)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:69)
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:72)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:72)
Thread #x: pthread_cond_{timed}wait called with mutex of type pthread_rwlock_t*
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:75)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
+ by 0x........: main (tc23_bogus_condwait.c:75)
+
+Thread #x's call to pthread_cond_wait failed
+ with error code 22 (EINVAL: Invalid argument)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:75)
Thread #x: pthread_cond_{timed}wait called with mutex held by a
different thread
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:78)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:78)
+Thread #x: Bug in libpthread: write lock granted on mutex/rwlock
which is currently wr-held by a different thread
+ at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
+ by 0x........: _pthread_cond_wait (in /...libc...)
+ by 0x........: pthread_cond_wait$UNIX2003 (in /...libc...)
+ by 0x........: pthread_cond_wait* (hg_intercepts.c:...)
+ by 0x........: main (tc23_bogus_condwait.c:78)
+
+Thread #x: Exiting thread still holds 1 lock
+ ...
+
-ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2009-08-14
14:52:57.000000000 +0400
+++ origin5-bz2.stderr.out 2009-08-14 14:57:11.000000000 +0400
@@ -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,18 @@
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)
+ 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:6479)
+
+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 +115,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
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2009-08-14 14:52:59.000000000 +0400
+++ origin5-bz2.stderr.out 2009-08-14 14:57:11.000000000 +0400
@@ -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,19 @@
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)
+ 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:6479)
+
+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)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -111,6 +128,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2009-08-14
14:52:57.000000000 +0400
+++ origin5-bz2.stderr.out 2009-08-14 14:57:11.000000000 +0400
@@ -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,102 @@
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/memcheck/tests/varinfo1.stderr.diff
=================================================
--- varinfo1.stderr.exp 2009-08-14 14:52:59.000000000 +0400
+++ varinfo1.stderr.out 2009-08-14 14:57:41.000000000 +0400
@@ -29,6 +29,8 @@
Location 0x........ is 0 bytes inside global_i2[7],
a global variable declared at varinfo1.c:41
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo1.c:28)
by 0x........: main (varinfo1.c:56)
=================================================
./valgrind-new/memcheck/tests/varinfo2.stderr.diff
=================================================
--- varinfo2.stderr.exp 2009-08-14 14:52:58.000000000 +0400
+++ varinfo2.stderr.out 2009-08-14 14:57:42.000000000 +0400
@@ -1,3 +1,5 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo2.c:28)
by 0x........: foo (varinfo2.c:41)
@@ -5,6 +7,8 @@
Location 0x........ is 0 bytes inside var[7],
declared at varinfo2.c:39, in frame #1 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo2.c:28)
by 0x........: foo (varinfo2.c:43)
@@ -12,6 +16,8 @@
Location 0x........ is 2 bytes inside var.bar,
declared at varinfo2.c:42, in frame #1 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo2.c:28)
by 0x........: foo (varinfo2.c:46)
=================================================
./valgrind-new/memcheck/tests/varinfo3.stderr.diff
=================================================
--- varinfo3.stderr.exp 2009-08-14 14:52:57.000000000 +0400
+++ varinfo3.stderr.out 2009-08-14 14:57:42.000000000 +0400
@@ -1,3 +1,4 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo3.c:28)
by 0x........: foo (varinfo3.c:54)
@@ -12,6 +13,7 @@
Location 0x........ is 0 bytes inside nonstatic_global_def[2],
a global variable declared at varinfo3.c:36
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo3.c:28)
by 0x........: foo (varinfo3.c:56)
@@ -26,13 +28,16 @@
Location 0x........ is 0 bytes inside nonstatic_global_undef[4],
a global variable declared at varinfo3.c:38
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo3.c:28)
by 0x........: bar (varinfo3.c:42)
by 0x........: foo (varinfo3.c:58)
by 0x........: main (varinfo3.c:66)
- Address 0x........ is 5 bytes inside data symbol "static_local_def.XXXX"
+ Address 0x........ is in the Data segment of ./varinfo3
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo3.c:28)
by 0x........: bar (varinfo3.c:43)
@@ -41,13 +46,16 @@
Location 0x........ is 0 bytes inside nonstatic_local_def[6],
declared at varinfo3.c:51, in frame #2 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo3.c:28)
by 0x........: bar (varinfo3.c:44)
by 0x........: foo (varinfo3.c:58)
by 0x........: main (varinfo3.c:66)
- Address 0x........ is 7 bytes inside data symbol "static_local_undef.XXXX"
+ Address 0x........ is in the Data segment of ./varinfo3
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo3.c:28)
by 0x........: bar (varinfo3.c:45)
=================================================
./valgrind-new/memcheck/tests/varinfo4.stderr.diff
=================================================
--- varinfo4.stderr.exp 2009-08-14 14:52:57.000000000 +0400
+++ varinfo4.stderr.out 2009-08-14 14:57:42.000000000 +0400
@@ -1,3 +1,5 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo4.c:28)
by 0x........: blah (varinfo4.c:47)
@@ -5,6 +7,8 @@
Location 0x........ is 1 byte inside a[3].xyzzy[21].c1,
declared at varinfo4.c:45, in frame #1 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo4.c:28)
by 0x........: blah (varinfo4.c:48)
@@ -12,6 +16,8 @@
Location 0x........ is 0 bytes inside a[5].bong,
declared at varinfo4.c:45, in frame #1 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo4.c:28)
by 0x........: blah (varinfo4.c:49)
=================================================
./valgrind-new/memcheck/tests/varinfo5.stderr.diff
=================================================
--- varinfo5.stderr.exp 2009-08-14 14:52:58.000000000 +0400
+++ varinfo5.stderr.out 2009-08-14 14:57:43.000000000 +0400
@@ -41,6 +41,8 @@
Location 0x........ is 0 bytes inside global_i2[7],
a global variable declared at varinfo5so.c:44
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
by 0x........: varinfo1_main (varinfo5so.c:59)
@@ -49,6 +51,8 @@
Location 0x........ is 0 bytes inside local var "local"
declared at varinfo5so.c:49, in frame #1 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
by 0x........: foo2 (varinfo5so.c:71)
@@ -58,6 +62,8 @@
Location 0x........ is 0 bytes inside var[7],
declared at varinfo5so.c:69, in frame #1 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
by 0x........: foo2 (varinfo5so.c:73)
@@ -67,6 +73,8 @@
Location 0x........ is 2 bytes inside var.bar,
declared at varinfo5so.c:72, in frame #1 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
by 0x........: foo2 (varinfo5so.c:76)
@@ -76,6 +84,7 @@
Location 0x........ is 1 byte inside local var "var"
declared at varinfo5so.c:67, in frame #1 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
by 0x........: foo3 (varinfo5so.c:106)
@@ -94,6 +103,7 @@
Location 0x........ is 0 bytes inside nonstatic_global_def[2],
a global variable declared at varinfo5so.c:88
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
by 0x........: foo3 (varinfo5so.c:108)
@@ -112,6 +122,7 @@
Location 0x........ is 0 bytes inside nonstatic_global_undef[4],
a global variable declared at varinfo5so.c:90
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
by 0x........: bar3 (varinfo5so.c:94)
@@ -119,8 +130,10 @@
by 0x........: varinfo3_main (varinfo5so.c:118)
by 0x........: varinfo5_main (varinfo5so.c:156)
by 0x........: main (varinfo5.c:5)
- Address 0x........ is 5 bytes inside data symbol "static_local_def.XXXX"
+ Address 0x........ is in the Data segment of
/Users/glider/src/VG-NIGHTLY/valgrind-new/memcheck/tests/varinfo5so.so
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
by 0x........: bar3 (varinfo5so.c:95)
@@ -131,6 +144,7 @@
Location 0x........ is 0 bytes inside nonstatic_local_def[6],
declared at varinfo5so.c:103, in frame #2 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
by 0x........: bar3 (varinfo5so.c:96)
@@ -138,8 +152,10 @@
by 0x........: varinfo3_main (varinfo5so.c:118)
by 0x........: varinfo5_main (varinfo5so.c:156)
by 0x........: main (varinfo5.c:5)
- Address 0x........ is 7 bytes inside data symbol "static_local_undef.XXXX"
+ Address 0x........ is in the Data segment of
/Users/glider/src/VG-NIGHTLY/valgrind-new/memcheck/tests/varinfo5so.so
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
by 0x........: bar3 (varinfo5so.c:97)
@@ -150,6 +166,8 @@
Location 0x........ is 0 bytes inside nonstatic_local_undef[8],
declared at varinfo5so.c:105, in frame #2 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/varinfo6.stderr.diff
=================================================
--- varinfo6.stderr.exp 2009-08-14 14:52:57.000000000 +0400
+++ varinfo6.stderr.out 2009-08-14 14:57:44.000000000 +0400
@@ -1,3 +1,20 @@
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo6.c:34)
by 0x........: mainSort (varinfo6.c:2999)
@@ -10,6 +27,8 @@
Location 0x........ is 2 bytes inside local var "budget"
declared at varinfo6.c:3115, in frame #2 of thread 1
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
+warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo6.c:34)
by 0x........: BZ2_decompress (varinfo6.c:1699)
=================================================
./valgrind-new/none/tests/async-sigs.stderr.diff
=================================================
--- async-sigs.stderr.exp 2009-08-14 14:53:04.000000000 +0400
+++ async-sigs.stderr.out 2009-08-14 14:58:39.000000000 +0400
@@ -1,8 +1,30 @@
-testing: blocking=0 caught=11 fatal=7... PASSED
+testing: blocking=0 caught=11 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: test (async-sigs.c:94)
+ by 0x........: main (async-sigs.c:129)
+PASSED
testing: blocking=0 caught=11 fatal=1... PASSED
-testing: blocking=0 caught=10 fatal=7... PASSED
-testing: blocking=0 caught=10 fatal=1... PASSED
-testing: blocking=1 caught=11 fatal=7... PASSED
+testing: blocking=0 caught=30 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: test (async-sigs.c:94)
+ by 0x........: main (async-sigs.c:131)
+PASSED
+testing: blocking=0 caught=30 fatal=1... PASSED
+testing: blocking=1 caught=11 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: __sigsuspend (in /...libc...)
+ by 0x........: test (async-sigs.c:95)
+ by 0x........: main (async-sigs.c:133)
+PASSED
testing: blocking=1 caught=11 fatal=1... PASSED
-testing: blocking=1 caught=10 fatal=7... PASSED
-testing: blocking=1 caught=10 fatal=1... PASSED
+testing: blocking=1 caught=30 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: __sigsuspend (in /...libc...)
+ by 0x........: test (async-sigs.c:95)
+ by 0x........: main (async-sigs.c:135)
+PASSED
+testing: blocking=1 caught=30 fatal=1... PASSED
=================================================
./valgrind-new/none/tests/faultstatus.stderr.diff
=================================================
--- faultstatus.stderr.exp 2009-08-14 14:53:05.000000000 +0400
+++ faultstatus.stderr.out 2009-08-14 14:58:42.000000000 +0400
@@ -1,6 +1,6 @@
-Test 1: PASS
-Test 2: PASS
-Test 3: PASS
-Test 4: PASS
+Test 1: FAIL: expected signal 11, not 10
+Test 2: FAIL: expected signal 11, not 10
+Test 3: FAIL: no fault, or handler returned
+Test 4: FAIL: expected si_code==7, not 0
=================================================
./valgrind-new/none/tests/pth_blockedsig.stderr.diff
=================================================
--- pth_blockedsig.stderr.exp 2009-08-14 14:53:04.000000000 +0400
+++ pth_blockedsig.stderr.out 2009-08-14 14:59:21.000000000 +0400
@@ -1,2 +1,4 @@
+UNKNOWN __pthread_sigmask is unsupported. This warning will not be repeated.
+SHOULD NOT BE HERE (SIGUSR1)!!!!
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2009-08-14
14:44:22.000000000 +0400
+++ origin5-bz2.stderr.out 2009-08-14 14:48:34.000000000 +0400
@@ -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,18 @@
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)
+ 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:6479)
+
+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 +115,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
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2009-08-14 14:44:24.000000000 +0400
+++ origin5-bz2.stderr.out 2009-08-14 14:48:34.000000000 +0400
@@ -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,19 @@
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)
+ 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:6479)
+
+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)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -111,6 +128,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2009-08-14
14:44:22.000000000 +0400
+++ origin5-bz2.stderr.out 2009-08-14 14:48:34.000000000 +0400
@@ -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,102 @@
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-...
[truncated message content] |
|
From: <sv...@va...> - 2009-08-14 10:19:38
|
Author: bart
Date: 2009-08-14 11:19:26 +0100 (Fri, 14 Aug 2009)
New Revision: 10809
Log:
Should compile again on Darwin.
Modified:
trunk/drd/tests/tsan_thread_wrappers_pthread.h
Modified: trunk/drd/tests/tsan_thread_wrappers_pthread.h
===================================================================
--- trunk/drd/tests/tsan_thread_wrappers_pthread.h 2009-08-14 06:53:06 UTC (rev 10808)
+++ trunk/drd/tests/tsan_thread_wrappers_pthread.h 2009-08-14 10:19:26 UTC (rev 10809)
@@ -65,7 +65,7 @@
#include "../../drd/drd.h"
#define ANNOTATE_NO_OP(arg) do { } while(0)
-#define ANNOTATE_EXPECT_RACE(addr, descr) DRD_IGNORE_VAR(*(void**)addr)
+#define ANNOTATE_EXPECT_RACE(addr, descr) DRDCL_(ignore_range)(addr, 4)
static inline bool RunningOnValgrind() { return RUNNING_ON_VALGRIND; }
#include <assert.h>
|
|
From: Alexander P. <gl...@go...> - 2009-08-14 09:59:32
|
Nightly build on mcgrind ( Darwin 9.7.0 i386 ) Started at 2009-08-14 13:22:20 MSD Ended at 2009-08-14 13:34:01 MSD Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -Winline -Wall -Wshadow -g -arch i386 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT atomic_var.o -MD -MP -MF .deps/atomic_var.Tpo -c -o atomic_var.o atomic_var.c mv -f .deps/atomic_var.Tpo .deps/atomic_var.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o atomic_var atomic_var.o -lpthread gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -Winline -Wall -Wshadow -g -arch i386 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT circular_buffer.o -MD -MP -MF .deps/circular_buffer.Tpo -c -o circular_buffer.o circular_buffer.c mv -f .deps/circular_buffer.Tpo .deps/circular_buffer.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o circular_buffer circular_buffer.o -lpthread g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -Winline -Wall -Wshadow -g -arch i386 -Wextra -Wno-inline -Wno-unused-parameter -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' -g -O2 -MT tsan_unittest-tsan_unittest.o -MD -MP -MF .deps/tsan_unittest-tsan_unittest.Tpo -c -o tsan_unittest-tsan_unittest.o `test -f 'tsan_unittest.cpp' || echo './'`tsan_unittest.cpp tsan_unittest.cpp: In function ‘void test102::Run()’: tsan_unittest.cpp:4965: error: pointer of type ‘void *’ used in arithmetic tsan_unittest.cpp:4965: warning: argument to '&' not really an lvalue; this will be a hard error in the future tsan_unittest.cpp:4965: error: pointer of type ‘void *’ used in arithmetic tsan_unittest.cpp:4966: error: pointer of type ‘void *’ used in arithmetic tsan_unittest.cpp:4966: error: lvalue required as unary ‘&’ operand tsan_unittest.cpp:4966: error: pointer of type ‘void *’ used in arithmetic make[5]: *** [tsan_unittest-tsan_unittest.o] Error 1 make[4]: *** [check-am] Error 2 make[3]: *** [check-recursive] Error 1 make[2]: *** [check] Error 2 make[1]: *** [check-recursive] Error 1 make: *** [check] Error 2 ================================================= == 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 == 393 tests, 10 stderr failures, 0 stdout failures, 0 post failures == 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) none/tests/async-sigs (stderr) none/tests/faultstatus (stderr) none/tests/pth_blockedsig (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2009-08-14 13:30:54.000000000 +0400 --- new.short 2009-08-14 13:34:01.000000000 +0400 *************** *** 3,20 **** Configuring valgrind ... done ! Building valgrind ... done ! Running regression tests ... failed ! ! Regression test results follow ! ! == 393 tests, 10 stderr failures, 0 stdout failures, 0 post failures == ! 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) ! none/tests/async-sigs (stderr) ! none/tests/faultstatus (stderr) ! none/tests/pth_blockedsig (stderr) --- 3,26 ---- Configuring valgrind ... done ! Building valgrind ... failed + Last 20 lines of verbose log follow echo + gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -Winline -Wall -Wshadow -g -arch i386 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT atomic_var.o -MD -MP -MF .deps/atomic_var.Tpo -c -o atomic_var.o atomic_var.c + mv -f .deps/atomic_var.Tpo .deps/atomic_var.Po + gcc -Winline -Wall -Wshadow -g -arch i386 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o atomic_var atomic_var.o -lpthread + gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -Winline -Wall -Wshadow -g -arch i386 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -MT circular_buffer.o -MD -MP -MF .deps/circular_buffer.Tpo -c -o circular_buffer.o circular_buffer.c + mv -f .deps/circular_buffer.Tpo .deps/circular_buffer.Po + gcc -Winline -Wall -Wshadow -g -arch i386 -Wextra -Wno-inline -Wno-unused-parameter -Wno-long-long -Wno-pointer-sign -Wdeclaration-after-statement -fno-stack-protector -o circular_buffer circular_buffer.o -lpthread + g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -Winline -Wall -Wshadow -g -arch i386 -Wextra -Wno-inline -Wno-unused-parameter -DTHREAD_WRAPPERS='"tsan_thread_wrappers_pthread.h"' -g -O2 -MT tsan_unittest-tsan_unittest.o -MD -MP -MF .deps/tsan_unittest-tsan_unittest.Tpo -c -o tsan_unittest-tsan_unittest.o `test -f 'tsan_unittest.cpp' || echo './'`tsan_unittest.cpp + tsan_unittest.cpp: In function ‘void test102::Run()’: + tsan_unittest.cpp:4965: error: pointer of type ‘void *’ used in arithmetic + tsan_unittest.cpp:4965: warning: argument to '&' not really an lvalue; this will be a hard error in the future + tsan_unittest.cpp:4965: error: pointer of type ‘void *’ used in arithmetic + tsan_unittest.cpp:4966: error: pointer of type ‘void *’ used in arithmetic + tsan_unittest.cpp:4966: error: lvalue required as unary ‘&’ operand + tsan_unittest.cpp:4966: error: pointer of type ‘void *’ used in arithmetic + make[5]: *** [tsan_unittest-tsan_unittest.o] Error 1 + make[4]: *** [check-am] Error 2 + make[3]: *** [check-recursive] Error 1 + make[2]: *** [check] Error 2 + make[1]: *** [check-recursive] Error 1 + make: *** [check] Error 2 ================================================= ./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64 ================================================= --- origin5-bz2.stderr.exp-glibc25-amd64 2009-08-14 13:22:35.000000000 +0400 +++ origin5-bz2.stderr.out 2009-08-14 13:26:44.000000000 +0400 @@ -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,18 @@ 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) + 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:6479) + +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 +115,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 <truncated beyond 100 lines> ================================================= ./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86 ================================================= --- origin5-bz2.stderr.exp-glibc25-x86 2009-08-14 13:22:37.000000000 +0400 +++ origin5-bz2.stderr.out 2009-08-14 13:26:44.000000000 +0400 @@ -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,19 @@ 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) + 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:6479) + +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) by 0x........: handle_compress (origin5-bz2.c:4753) by 0x........: BZ2_bzCompress (origin5-bz2.c:4822) @@ -111,6 +128,12 @@ Conditional jump or move depends on uninitialised value(s) at 0x........: main (origin5-bz2.c:6512) - Uninitialised value was created by a client request - at 0x........: main (origin5-bz2.c:6479) + Uninitialised value was created by a heap allocation + at 0x........: malloc (vg_replace_malloc.c:...) + by 0x........: g_serviceFn (origin5-bz2.c:6429) + by 0x........: default_bzalloc (origin5-bz2.c:4470) + by 0x........: BZ2_decompress (origin5-bz2.c:1578) + by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192) + by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678) + by 0x........: main (origin5-bz2.c:6498) ================================================= ./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64 ================================================= --- origin5-bz2.stderr.exp-glibc27-ppc64 2009-08-14 13:22:35.000000000 +0400 +++ origin5-bz2.stderr.out 2009-08-14 13:26:44.000000000 +0400 @@ -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,102 @@ 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/memcheck/tests/varinfo1.stderr.diff ================================================= --- varinfo1.stderr.exp 2009-08-14 13:22:37.000000000 +0400 +++ varinfo1.stderr.out 2009-08-14 13:27:14.000000000 +0400 @@ -29,6 +29,8 @@ Location 0x........ is 0 bytes inside global_i2[7], a global variable declared at varinfo1.c:41 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo1.c:28) by 0x........: main (varinfo1.c:56) ================================================= ./valgrind-old/memcheck/tests/varinfo2.stderr.diff ================================================= --- varinfo2.stderr.exp 2009-08-14 13:22:36.000000000 +0400 +++ varinfo2.stderr.out 2009-08-14 13:27:14.000000000 +0400 @@ -1,3 +1,5 @@ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo2.c:28) by 0x........: foo (varinfo2.c:41) @@ -5,6 +7,8 @@ Location 0x........ is 0 bytes inside var[7], declared at varinfo2.c:39, in frame #1 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo2.c:28) by 0x........: foo (varinfo2.c:43) @@ -12,6 +16,8 @@ Location 0x........ is 2 bytes inside var.bar, declared at varinfo2.c:42, in frame #1 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo2.c:28) by 0x........: foo (varinfo2.c:46) ================================================= ./valgrind-old/memcheck/tests/varinfo3.stderr.diff ================================================= --- varinfo3.stderr.exp 2009-08-14 13:22:36.000000000 +0400 +++ varinfo3.stderr.out 2009-08-14 13:27:15.000000000 +0400 @@ -1,3 +1,4 @@ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo3.c:28) by 0x........: foo (varinfo3.c:54) @@ -12,6 +13,7 @@ Location 0x........ is 0 bytes inside nonstatic_global_def[2], a global variable declared at varinfo3.c:36 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo3.c:28) by 0x........: foo (varinfo3.c:56) @@ -26,13 +28,16 @@ Location 0x........ is 0 bytes inside nonstatic_global_undef[4], a global variable declared at varinfo3.c:38 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo3.c:28) by 0x........: bar (varinfo3.c:42) by 0x........: foo (varinfo3.c:58) by 0x........: main (varinfo3.c:66) - Address 0x........ is 5 bytes inside data symbol "static_local_def.XXXX" + Address 0x........ is in the Data segment of ./varinfo3 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo3.c:28) by 0x........: bar (varinfo3.c:43) @@ -41,13 +46,16 @@ Location 0x........ is 0 bytes inside nonstatic_local_def[6], declared at varinfo3.c:51, in frame #2 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo3.c:28) by 0x........: bar (varinfo3.c:44) by 0x........: foo (varinfo3.c:58) by 0x........: main (varinfo3.c:66) - Address 0x........ is 7 bytes inside data symbol "static_local_undef.XXXX" + Address 0x........ is in the Data segment of ./varinfo3 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo3.c:28) by 0x........: bar (varinfo3.c:45) ================================================= ./valgrind-old/memcheck/tests/varinfo4.stderr.diff ================================================= --- varinfo4.stderr.exp 2009-08-14 13:22:35.000000000 +0400 +++ varinfo4.stderr.out 2009-08-14 13:27:15.000000000 +0400 @@ -1,3 +1,5 @@ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo4.c:28) by 0x........: blah (varinfo4.c:47) @@ -5,6 +7,8 @@ Location 0x........ is 1 byte inside a[3].xyzzy[21].c1, declared at varinfo4.c:45, in frame #1 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo4.c:28) by 0x........: blah (varinfo4.c:48) @@ -12,6 +16,8 @@ Location 0x........ is 0 bytes inside a[5].bong, declared at varinfo4.c:45, in frame #1 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo4.c:28) by 0x........: blah (varinfo4.c:49) ================================================= ./valgrind-old/memcheck/tests/varinfo5.stderr.diff ================================================= --- varinfo5.stderr.exp 2009-08-14 13:22:37.000000000 +0400 +++ varinfo5.stderr.out 2009-08-14 13:27:16.000000000 +0400 @@ -41,6 +41,8 @@ Location 0x........ is 0 bytes inside global_i2[7], a global variable declared at varinfo5so.c:44 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo5so.c:29) by 0x........: varinfo1_main (varinfo5so.c:59) @@ -49,6 +51,8 @@ Location 0x........ is 0 bytes inside local var "local" declared at varinfo5so.c:49, in frame #1 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo5so.c:29) by 0x........: foo2 (varinfo5so.c:71) @@ -58,6 +62,8 @@ Location 0x........ is 0 bytes inside var[7], declared at varinfo5so.c:69, in frame #1 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo5so.c:29) by 0x........: foo2 (varinfo5so.c:73) @@ -67,6 +73,8 @@ Location 0x........ is 2 bytes inside var.bar, declared at varinfo5so.c:72, in frame #1 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo5so.c:29) by 0x........: foo2 (varinfo5so.c:76) @@ -76,6 +84,7 @@ Location 0x........ is 1 byte inside local var "var" declared at varinfo5so.c:67, in frame #1 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo5so.c:29) by 0x........: foo3 (varinfo5so.c:106) @@ -94,6 +103,7 @@ Location 0x........ is 0 bytes inside nonstatic_global_def[2], a global variable declared at varinfo5so.c:88 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo5so.c:29) by 0x........: foo3 (varinfo5so.c:108) @@ -112,6 +122,7 @@ Location 0x........ is 0 bytes inside nonstatic_global_undef[4], a global variable declared at varinfo5so.c:90 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo5so.c:29) by 0x........: bar3 (varinfo5so.c:94) @@ -119,8 +130,10 @@ by 0x........: varinfo3_main (varinfo5so.c:118) by 0x........: varinfo5_main (varinfo5so.c:156) by 0x........: main (varinfo5.c:5) - Address 0x........ is 5 bytes inside data symbol "static_local_def.XXXX" + Address 0x........ is in the Data segment of /Users/glider/src/VG-NIGHTLY/valgrind-old/memcheck/tests/varinfo5so.so +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo5so.c:29) by 0x........: bar3 (varinfo5so.c:95) @@ -131,6 +144,7 @@ Location 0x........ is 0 bytes inside nonstatic_local_def[6], declared at varinfo5so.c:103, in frame #2 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo5so.c:29) by 0x........: bar3 (varinfo5so.c:96) @@ -138,8 +152,10 @@ by 0x........: varinfo3_main (varinfo5so.c:118) by 0x........: varinfo5_main (varinfo5so.c:156) by 0x........: main (varinfo5.c:5) - Address 0x........ is 7 bytes inside data symbol "static_local_undef.XXXX" + Address 0x........ is in the Data segment of /Users/glider/src/VG-NIGHTLY/valgrind-old/memcheck/tests/varinfo5so.so +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo5so.c:29) by 0x........: bar3 (varinfo5so.c:97) @@ -150,6 +166,8 @@ Location 0x........ is 0 bytes inside nonstatic_local_undef[8], declared at varinfo5so.c:105, in frame #2 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ <truncated beyond 100 lines> ================================================= ./valgrind-old/memcheck/tests/varinfo6.stderr.diff ================================================= --- varinfo6.stderr.exp 2009-08-14 13:22:36.000000000 +0400 +++ varinfo6.stderr.out 2009-08-14 13:27:17.000000000 +0400 @@ -1,3 +1,20 @@ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo6.c:34) by 0x........: mainSort (varinfo6.c:2999) @@ -10,6 +27,8 @@ Location 0x........ is 2 bytes inside local var "budget" declared at varinfo6.c:3115, in frame #2 of thread 1 +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ +warning: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x........ Uninitialised byte(s) found during client check request at 0x........: croak (varinfo6.c:34) by 0x........: BZ2_decompress (varinfo6.c:1699) ================================================= ./valgrind-old/none/tests/async-sigs.stderr.diff ================================================= --- async-sigs.stderr.exp 2009-08-14 13:22:41.000000000 +0400 +++ async-sigs.stderr.out 2009-08-14 13:28:11.000000000 +0400 @@ -1,8 +1,30 @@ -testing: blocking=0 caught=11 fatal=7... PASSED +testing: blocking=0 caught=11 fatal=10... +Process terminating with default action of signal 10 (SIGBUS) + Non-existent physical address at address 0x........ + at 0x........: test (async-sigs.c:94) + by 0x........: main (async-sigs.c:129) +PASSED testing: blocking=0 caught=11 fatal=1... PASSED -testing: blocking=0 caught=10 fatal=7... PASSED -testing: blocking=0 caught=10 fatal=1... PASSED -testing: blocking=1 caught=11 fatal=7... PASSED +testing: blocking=0 caught=30 fatal=10... +Process terminating with default action of signal 10 (SIGBUS) + Non-existent physical address at address 0x........ + at 0x........: test (async-sigs.c:94) + by 0x........: main (async-sigs.c:131) +PASSED +testing: blocking=0 caught=30 fatal=1... PASSED +testing: blocking=1 caught=11 fatal=10... +Process terminating with default action of signal 10 (SIGBUS) + Non-existent physical address at address 0x........ + at 0x........: __sigsuspend (in /...libc...) + by 0x........: test (async-sigs.c:95) + by 0x........: main (async-sigs.c:133) +PASSED testing: blocking=1 caught=11 fatal=1... PASSED -testing: blocking=1 caught=10 fatal=7... PASSED -testing: blocking=1 caught=10 fatal=1... PASSED +testing: blocking=1 caught=30 fatal=10... +Process terminating with default action of signal 10 (SIGBUS) + Non-existent physical address at address 0x........ + at 0x........: __sigsuspend (in /...libc...) + by 0x........: test (async-sigs.c:95) + by 0x........: main (async-sigs.c:135) +PASSED +testing: blocking=1 caught=30 fatal=1... PASSED ================================================= ./valgrind-old/none/tests/faultstatus.stderr.diff ================================================= --- faultstatus.stderr.exp 2009-08-14 13:22:43.000000000 +0400 +++ faultstatus.stderr.out 2009-08-14 13:28:15.000000000 +0400 @@ -1,6 +1,6 @@ -Test 1: PASS -Test 2: PASS -Test 3: PASS -Test 4: PASS +Test 1: FAIL: expected signal 11, not 10 +Test 2: FAIL: expected signal 11, not 10 +Test 3: FAIL: no fault, or handler returned +Test 4: FAIL: expected si_code==7, not 0 ================================================= ./valgrind-old/none/tests/pth_blockedsig.stderr.diff ================================================= --- pth_blockedsig.stderr.exp 2009-08-14 13:22:42.000000000 +0400 +++ pth_blockedsig.stderr.out 2009-08-14 13:28:54.000000000 +0400 @@ -1,2 +1,4 @@ +UNKNOWN __pthread_sigmask is unsupported. This warning will not be repeated. +SHOULD NOT BE HERE (SIGUSR1)!!!! |
|
From: Bart V. A. <bar...@gm...> - 2009-08-14 07:58:24
|
Nightly build on georgia-tech-cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2009-08-14 02:15:45 EDT Ended at 2009-08-14 03:58:05 EDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 441 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/partiallydefinedeq (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) |
|
From: <sv...@va...> - 2009-08-14 06:53:21
|
Author: bart Date: 2009-08-14 07:53:06 +0100 (Fri, 14 Aug 2009) New Revision: 10808 Log: Removed the tc20_verifywrap and tc20_verifywrap2 regression tests because their behavior depends too much on implementation details of libc. Removed: trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.3 trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5 trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5-ppc trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8 trunk/drd/tests/tc20_verifywrap.vgtest trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.10 trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3 trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5 trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5-ppc trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.8 trunk/drd/tests/tc20_verifywrap2.vgtest Modified: trunk/drd/tests/Makefile.am Modified: trunk/drd/tests/Makefile.am =================================================================== --- trunk/drd/tests/Makefile.am 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/Makefile.am 2009-08-14 06:53:06 UTC (rev 10808) @@ -212,18 +212,6 @@ tc19_shadowmem.stderr.exp-32bit \ tc19_shadowmem.stderr.exp-64bit \ tc19_shadowmem.vgtest \ - tc20_verifywrap.stderr.exp-glibc2.3 \ - tc20_verifywrap.stderr.exp-glibc2.5 \ - tc20_verifywrap.stderr.exp-glibc2.5-ppc \ - tc20_verifywrap.stderr.exp-glibc2.8 \ - tc20_verifywrap.vgtest \ - tc20_verifywrap2.stderr.exp-glibc2.3 \ - tc20_verifywrap2.stderr.exp-glibc2.3-b \ - tc20_verifywrap2.stderr.exp-glibc2.5 \ - tc20_verifywrap2.stderr.exp-glibc2.5-ppc \ - tc20_verifywrap2.stderr.exp-glibc2.8 \ - tc20_verifywrap2.stderr.exp-glibc2.10 \ - tc20_verifywrap2.vgtest \ tc21_pthonce.stderr.exp \ tc21_pthonce.stdout.exp \ tc21_pthonce.vgtest \ Deleted: trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.3 =================================================================== --- trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.3 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.3 2009-08-14 06:53:06 UTC (rev 10808) @@ -1,135 +0,0 @@ - - - ------- This is output for < glibc 2.4 ------ - ----------------- pthread_create/join ---------------- - -Conflicting store by thread 1 at 0x........ size 2 - at 0x........: main (tc20_verifywrap.c:78) -Location 0x........ is 0 bytes inside global var "unprotected" -declared at tc20_verifywrap.c:27 -Other segment start (thread 2) - (thread finished, call stack no longer available) -Other segment end (thread 2) - (thread finished, call stack no longer available) - - ----------------- pthread_mutex_lock et al ---------------- - -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:92) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:102) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:100) - - -make pthread_mutex_lock fail: skipped on glibc < 2.4 - -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:125) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:116) - - ----------------- pthread_cond_wait et al ---------------- - -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:147) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - - -FIXME: can't figure out how to verify wrap of pthread_cond_signal - - -FIXME: can't figure out how to verify wrap of pthread_broadcast_signal - - ----------------- pthread_rwlock_* ---------------- - -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:179) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:178) - -(1) no error on next line -(2) no error on next line -(3) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:196) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -Reader-writer lock reinitialization: rwlock 0x......... - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:199) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -(4) no error on next line -(5) no error on next line -(6) no error on next line -(7) no error on next line -(8) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:212) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - - ----------------- sem_* ---------------- - -Semaphore reinitialization: semaphore 0x........ - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:231) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_destroy - -Invalid semaphore: semaphore 0x........ - at 0x........: sem_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:242) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_post - - ------------- dealloc of mem holding locks ------------ - -Destroying locked rwlock: rwlock 0x......... - at 0x........: main (tc20_verifywrap.c:262) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:216) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: main (tc20_verifywrap.c:262) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - - -ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0) Deleted: trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5 =================================================================== --- trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5 2009-08-14 06:53:06 UTC (rev 10808) @@ -1,132 +0,0 @@ - - - ------- This is output for >= glibc 2.4 ------ - ----------------- pthread_create/join ---------------- - -Conflicting store by thread 1 at 0x........ size 2 - at 0x........: main (tc20_verifywrap.c:78) -Location 0x........ is 0 bytes inside global var "unprotected" -declared at tc20_verifywrap.c:27 -Other segment start (thread 2) - (thread finished, call stack no longer available) -Other segment end (thread 2) - (thread finished, call stack no longer available) - - ----------------- pthread_mutex_lock et al ---------------- - -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:92) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:102) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:100) - -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:125) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:108) - - ----------------- pthread_cond_wait et al ---------------- - -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:147) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - - -FIXME: can't figure out how to verify wrap of pthread_cond_signal - - -FIXME: can't figure out how to verify wrap of pthread_broadcast_signal - - ----------------- pthread_rwlock_* ---------------- - -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:179) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:178) - -(1) no error on next line -(2) no error on next line -(3) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:196) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -Reader-writer lock reinitialization: rwlock 0x......... - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:199) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -(4) no error on next line -(5) no error on next line -(6) no error on next line -(7) no error on next line -(8) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:212) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - - ----------------- sem_* ---------------- - -Semaphore reinitialization: semaphore 0x........ - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:231) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_destroy - -Invalid semaphore: semaphore 0x........ - at 0x........: sem_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:242) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_post - - ------------- dealloc of mem holding locks ------------ - -Destroying locked rwlock: rwlock 0x......... - at 0x........: main (tc20_verifywrap.c:262) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:216) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: main (tc20_verifywrap.c:262) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - - -ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0) Deleted: trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5-ppc =================================================================== --- trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5-ppc 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5-ppc 2009-08-14 06:53:06 UTC (rev 10808) @@ -1,132 +0,0 @@ - - - ------- This is output for >= glibc 2.4 ------ - ----------------- pthread_create/join ---------------- - -Conflicting store by thread 1 at 0x........ size 2 - at 0x........: main (tc20_verifywrap.c:78) -Location 0x........ is 0 bytes inside global var "unprotected" -declared at tc20_verifywrap.c:27 -Other segment start (thread 2) - (thread finished, call stack no longer available) -Other segment end (thread 2) - (thread finished, call stack no longer available) - - ----------------- pthread_mutex_lock et al ---------------- - -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:92) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:102) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:100) - -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:125) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:108) - - ----------------- pthread_cond_wait et al ---------------- - -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:147) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - - -FIXME: can't figure out how to verify wrap of pthread_cond_signal - - -FIXME: can't figure out how to verify wrap of pthread_broadcast_signal - - ----------------- pthread_rwlock_* ---------------- - -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:179) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:178) - -(1) no error on next line -(2) no error on next line -(3) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:196) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -Reader-writer lock reinitialization: rwlock 0x......... - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:199) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -(4) no error on next line -(5) no error on next line -(6) no error on next line -(7) no error on next line -(8) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:212) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - - ----------------- sem_* ---------------- - -Semaphore reinitialization: semaphore 0x........ - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:231) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_destroy - -Invalid semaphore: semaphore 0x........ - at 0x........: sem_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:242) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_post - - ------------- dealloc of mem holding locks ------------ - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: main (tc20_verifywrap.c:262) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - -Destroying locked rwlock: rwlock 0x......... - at 0x........: main (tc20_verifywrap.c:262) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:216) - - -ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0) Deleted: trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8 =================================================================== --- trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8 2009-08-14 06:53:06 UTC (rev 10808) @@ -1,119 +0,0 @@ - - - ------- This is output for >= glibc 2.4 ------ - ----------------- pthread_create/join ---------------- - -Conflicting store by thread 1 at 0x........ size 2 - at 0x........: main (tc20_verifywrap.c:78) -Location 0x........ is 0 bytes inside global var "unprotected" -declared at tc20_verifywrap.c:27 -Other segment start (thread 2) - (thread finished, call stack no longer available) -Other segment end (thread 2) - (thread finished, call stack no longer available) - - ----------------- pthread_mutex_lock et al ---------------- - -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:92) - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:102) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:100) - -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:125) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:108) - - ----------------- pthread_cond_wait et al ---------------- - -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:147) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - - -FIXME: can't figure out how to verify wrap of pthread_cond_signal - - -FIXME: can't figure out how to verify wrap of pthread_broadcast_signal - - ----------------- pthread_rwlock_* ---------------- - -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:179) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:178) - -(1) no error on next line -(2) no error on next line -(3) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:196) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -Reader-writer lock reinitialization: rwlock 0x......... - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:199) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -(4) no error on next line -(5) no error on next line -(6) no error on next line -(7) no error on next line -(8) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:212) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - - ----------------- sem_* ---------------- - -Semaphore reinitialization: semaphore 0x........ - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:231) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_destroy - -Invalid semaphore: semaphore 0x........ - at 0x........: sem_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:242) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_post - - ------------- dealloc of mem holding locks ------------ - -ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0) Deleted: trunk/drd/tests/tc20_verifywrap.vgtest =================================================================== --- trunk/drd/tests/tc20_verifywrap.vgtest 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/tc20_verifywrap.vgtest 2009-08-14 06:53:06 UTC (rev 10808) @@ -1,3 +0,0 @@ -prereq: test -e ../../helgrind/tests/tc20_verifywrap && ./supported_libpthread -vgopts: --read-var-info=yes --check-stack-var=yes -prog: ../../helgrind/tests/tc20_verifywrap Deleted: trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.10 =================================================================== --- trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.10 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.10 2009-08-14 06:53:06 UTC (rev 10808) @@ -1,166 +0,0 @@ - - - ------- This is output for >= glibc 2.4 ------ - ----------------- pthread_create/join ---------------- - -Conflicting store by thread 1 at 0x........ size 2 - at 0x........: main (tc20_verifywrap.c:78) -Location 0x........ is 0 bytes inside global var "unprotected" -declared at tc20_verifywrap.c:27 -Other segment start (thread 2) - (thread finished, call stack no longer available) -Other segment end (thread 2) - (thread finished, call stack no longer available) - - ----------------- pthread_mutex_lock et al ---------------- - -[1] mutex_init invalid mutex 0x........ -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:92) - -[1] mutex_init mutex 0x........ -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 -[1] mutex_destroy mutex 0x........ rc 1 owner 1 -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:102) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:100) - -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] pre_mutex_lock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] mutex_unlock mutex 0x........ rc 0 -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:125) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:108) - - ----------------- pthread_cond_wait et al ---------------- - -[1] mutex_init error checking mutex 0x........ -[1] cond_init cond 0x........ -[1] mutex_unlock error checking mutex 0x........ rc 0 -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:147) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - -[1] cond_pre_wait cond 0x........ -[1] cond_post_wait cond 0x........ -[1] cond_post_wait error checking mutex 0x........ rc 0 owner 0 -[1] cond_signal cond 0x........ - -FIXME: can't figure out how to verify wrap of pthread_cond_signal - -[1] cond_broadcast cond 0x........ - -FIXME: can't figure out how to verify wrap of pthread_broadcast_signal - -[1] mutex_unlock error checking mutex 0x........ rc 1 -[1] cond_pre_wait cond 0x........ -[1] cond_post_wait cond 0x........ -[1] cond_post_wait error checking mutex 0x........ rc 0 owner 1 - ----------------- pthread_rwlock_* ---------------- - -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:179) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:178) - -(1) no error on next line -(2) no error on next line -(3) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:196) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -Reader-writer lock reinitialization: rwlock 0x......... - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:199) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -(4) no error on next line -(5) no error on next line -(6) no error on next line -(7) no error on next line -(8) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:212) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - - ----------------- sem_* ---------------- - -[1] sem_init 0x........ value 4294967295 -[1] sem_init 0x........ value 0 -Semaphore reinitialization: semaphore 0x........ - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:231) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_destroy - -[1] sem_wait 0x........ value 0 -> 4294967295 -Invalid semaphore: semaphore 0x........ - at 0x........: sem_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:242) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - -[1] sem_post 0x........ value 4294967295 -> 0 - -FIXME: can't figure out how to verify wrap of sem_post - -[1] sem_destroy 0x........ value 0 - ------------- dealloc of mem holding locks ------------ - -Destroying locked rwlock: rwlock 0x......... - at 0x........: main (tc20_verifywrap.c:262) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:216) - -[1] mutex_destroy error checking mutex 0x........ rc 1 owner 1 -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: main (tc20_verifywrap.c:262) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - -[1] mutex_destroy mutex 0x........ rc 0 owner 0 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 0 -[1] mutex_unlock recursive mutex 0x........ rc 1 - -ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0) Deleted: trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3 =================================================================== --- trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3 2009-08-14 06:53:06 UTC (rev 10808) @@ -1,212 +0,0 @@ - - - ------- This is output for < glibc 2.4 ------ - ----------------- pthread_create/join ---------------- - -Conflicting store by thread 1 at 0x........ size 2 - at 0x........: main (tc20_verifywrap.c:78) -Location 0x........ is 0 bytes inside global var "unprotected" -declared at tc20_verifywrap.c:27 -Other segment start (thread 2) - (thread finished, call stack no longer available) -Other segment end (thread 2) - (thread finished, call stack no longer available) - - ----------------- pthread_mutex_lock et al ---------------- - -[1] mutex_init invalid mutex 0x........ -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:92) - -[1] mutex_init mutex 0x........ -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 -[1] mutex_destroy mutex 0x........ rc 1 owner 1 -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:102) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:100) - - -make pthread_mutex_lock fail: skipped on glibc < 2.4 - -[1] pre_mutex_lock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] mutex_unlock mutex 0x........ rc 0 -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:125) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:116) - - ----------------- pthread_cond_wait et al ---------------- - -[1] mutex_init error checking mutex 0x........ -[1] cond_init cond 0x........ -[1] mutex_unlock error checking mutex 0x........ rc 0 -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:147) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - -[1] cond_pre_wait cond 0x........ -[1] cond_post_wait cond 0x........ -[1] cond_post_wait error checking mutex 0x........ rc 0 owner 0 -[1] cond_signal cond 0x........ - -FIXME: can't figure out how to verify wrap of pthread_cond_signal - -[1] cond_broadcast cond 0x........ - -FIXME: can't figure out how to verify wrap of pthread_broadcast_signal - -[1] mutex_unlock error checking mutex 0x........ rc 1 -[1] cond_pre_wait cond 0x........ -[1] cond_post_wait cond 0x........ -[1] cond_post_wait error checking mutex 0x........ rc 0 owner 1 - ----------------- pthread_rwlock_* ---------------- - -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:179) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:178) - -(1) no error on next line -(2) no error on next line -(3) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:196) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -Reader-writer lock reinitialization: rwlock 0x......... - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:199) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -(4) no error on next line -(5) no error on next line -(6) no error on next line -(7) no error on next line -(8) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:212) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - - ----------------- sem_* ---------------- - -[1] sem_init 0x........ value 4294967295 -[1] sem_init 0x........ value 0 -Semaphore reinitialization: semaphore 0x........ - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:231) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_destroy - -[1] sem_wait 0x........ value 0 -> 4294967295 -Invalid semaphore: semaphore 0x........ - at 0x........: sem_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:242) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - -[1] sem_post 0x........ value 4294967295 -> 0 - -FIXME: can't figure out how to verify wrap of sem_post - -[1] sem_destroy 0x........ value 0 - ------------- dealloc of mem holding locks ------------ - -Destroying locked rwlock: rwlock 0x......... - at 0x........: main (tc20_verifywrap.c:262) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:216) - -[1] mutex_destroy error checking mutex 0x........ rc 1 owner 1 -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: main (tc20_verifywrap.c:262) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - -[1] mutex_destroy mutex 0x........ rc 0 owner 0 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 0 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 - -ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0) Deleted: trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b =================================================================== --- trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b 2009-08-14 06:53:06 UTC (rev 10808) @@ -1,177 +0,0 @@ - - - ------- This is output for < glibc 2.4 ------ - ----------------- pthread_create/join ---------------- - -Conflicting store by thread 1 at 0x........ size 2 - at 0x........: main (tc20_verifywrap.c:78) -Location 0x........ is 0 bytes inside global var "unprotected" -declared at tc20_verifywrap.c:27 -Other segment start (thread 2) - (thread finished, call stack no longer available) -Other segment end (thread 2) - (thread finished, call stack no longer available) - ----------------- pthread_mutex_lock et al ---------------- - -[1] mutex_init invalid mutex 0x........ - -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:92) -[1] mutex_init mutex 0x........ -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 -[1] mutex_destroy mutex 0x........ rc 1 owner 1 - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:102) - -make pthread_mutex_lock fail: skipped on glibc < 2.4 - -[1] pre_mutex_lock invalid mutex 0x........ rc 0 owner 0 - -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:116) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:116) -[1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed) -[1] mutex_trylock invalid mutex 0x........ rc 0 owner 0 - -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:121) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:116) -[1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed) -[1] mutex_unlock invalid mutex 0x........ rc 0 - -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:125) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:116) - ----------------- pthread_cond_wait et al ---------------- - -[1] mutex_init error checking mutex 0x........ -[1] cond_init cond 0x........ -[1] mutex_unlock error checking mutex 0x........ rc 0 - -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:147) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) -[1] cond_pre_wait cond 0x........ -[1] cond_post_wait cond 0x........ -[1] cond_post_wait error checking mutex 0x........ rc 0 owner 0 -[1] cond_signal cond 0x........ - -FIXME: can't figure out how to verify wrap of pthread_cond_signal - -[1] cond_broadcast cond 0x........ - -FIXME: can't figure out how to verify wrap of pthread_broadcast_signal - -[1] mutex_unlock error checking mutex 0x........ rc 1 -[1] cond_pre_wait cond 0x........ -[1] cond_post_wait cond 0x........ -[1] cond_post_wait error checking mutex 0x........ rc 0 owner 1 - ----------------- pthread_rwlock_* ---------------- - - -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:179) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:178) -(1) no error on next line -(2) no error on next line -(3) ERROR on next line - -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:196) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -Reader-writer lock reinitialization: rwlock 0x......... - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:199) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) -(4) no error on next line -(5) no error on next line -(6) no error on next line -(7) no error on next line -(8) ERROR on next line - -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:212) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - ----------------- sem_* ---------------- - -[1] sem_init 0x........ value 4294967295 -[1] sem_init 0x........ value 0 - -Semaphore reinitialization: semaphore 0x........ - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:231) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - -FIXME: can't figure out how to verify wrap of sem_destroy - -[1] sem_wait 0x........ value 0 -> 4294967295 - -Invalid semaphore: semaphore 0x........ - at 0x........: sem_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:242) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) -[1] sem_post 0x........ value 4294967295 -> 0 - -FIXME: can't figure out how to verify wrap of sem_post - -[1] sem_destroy 0x........ value 0 - ------------- dealloc of mem holding locks ------------ - - -Destroying locked rwlock: rwlock 0x......... - at 0x........: main (tc20_verifywrap.c:262) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:216) -[1] mutex_destroy error checking mutex 0x........ rc 1 owner 1 - -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: main (tc20_verifywrap.c:262) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) -[1] mutex_destroy mutex 0x........ rc 0 owner 0 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 0 -[1] mutex_unlock recursive mutex 0x........ rc 1 - -ERROR SUMMARY: 15 errors from 15 contexts (suppressed: 0 from 0) Deleted: trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5 =================================================================== --- trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5 2009-08-14 06:53:06 UTC (rev 10808) @@ -1,211 +0,0 @@ - - - ------- This is output for >= glibc 2.4 ------ - ----------------- pthread_create/join ---------------- - -Conflicting store by thread 1 at 0x........ size 2 - at 0x........: main (tc20_verifywrap.c:78) -Location 0x........ is 0 bytes inside global var "unprotected" -declared at tc20_verifywrap.c:27 -Other segment start (thread 2) - (thread finished, call stack no longer available) -Other segment end (thread 2) - (thread finished, call stack no longer available) - - ----------------- pthread_mutex_lock et al ---------------- - -[1] mutex_init invalid mutex 0x........ -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:92) - -[1] mutex_init mutex 0x........ -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 -[1] mutex_destroy mutex 0x........ rc 1 owner 1 -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:102) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:100) - -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] pre_mutex_lock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] mutex_unlock mutex 0x........ rc 0 -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:125) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:108) - - ----------------- pthread_cond_wait et al ---------------- - -[1] mutex_init error checking mutex 0x........ -[1] cond_init cond 0x........ -[1] mutex_unlock error checking mutex 0x........ rc 0 -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:147) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - -[1] cond_pre_wait cond 0x........ -[1] cond_post_wait cond 0x........ -[1] cond_post_wait error checking mutex 0x........ rc 0 owner 0 -[1] cond_signal cond 0x........ - -FIXME: can't figure out how to verify wrap of pthread_cond_signal - -[1] cond_broadcast cond 0x........ - -FIXME: can't figure out how to verify wrap of pthread_broadcast_signal - -[1] mutex_unlock error checking mutex 0x........ rc 1 -[1] cond_pre_wait cond 0x........ -[1] cond_post_wait cond 0x........ -[1] cond_post_wait error checking mutex 0x........ rc 0 owner 1 - ----------------- pthread_rwlock_* ---------------- - -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:179) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:178) - -(1) no error on next line -(2) no error on next line -(3) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:196) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -Reader-writer lock reinitialization: rwlock 0x......... - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:199) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - -(4) no error on next line -(5) no error on next line -(6) no error on next line -(7) no error on next line -(8) ERROR on next line -Reader-writer lock not locked by calling thread: rwlock 0x......... - at 0x........: pthread_rwlock_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:212) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:186) - - ----------------- sem_* ---------------- - -[1] sem_init 0x........ value 4294967295 -[1] sem_init 0x........ value 0 -Semaphore reinitialization: semaphore 0x........ - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:231) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - - -FIXME: can't figure out how to verify wrap of sem_destroy - -[1] sem_wait 0x........ value 0 -> 4294967295 -Invalid semaphore: semaphore 0x........ - at 0x........: sem_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:242) -semaphore 0x........ was first observed at: - at 0x........: sem_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:228) - -[1] sem_post 0x........ value 4294967295 -> 0 - -FIXME: can't figure out how to verify wrap of sem_post - -[1] sem_destroy 0x........ value 0 - ------------- dealloc of mem holding locks ------------ - -Destroying locked rwlock: rwlock 0x......... - at 0x........: main (tc20_verifywrap.c:262) -rwlock 0x........ was first observed at: - at 0x........: pthread_rwlock_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:216) - -[1] mutex_destroy error checking mutex 0x........ rc 1 owner 1 -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: main (tc20_verifywrap.c:262) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - -[1] mutex_destroy mutex 0x........ rc 0 owner 0 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 0 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 -[1] mutex_trylock recursive mutex 0x........ rc 0 owner 1 -[1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1 -[1] mutex_unlock recursive mutex 0x........ rc 1 - -ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0) Deleted: trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5-ppc =================================================================== --- trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5-ppc 2009-08-14 06:45:16 UTC (rev 10807) +++ trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5-ppc 2009-08-14 06:53:06 UTC (rev 10808) @@ -1,211 +0,0 @@ - - - ------- This is output for >= glibc 2.4 ------ - ----------------- pthread_create/join ---------------- - -Conflicting store by thread 1 at 0x........ size 2 - at 0x........: main (tc20_verifywrap.c:78) -Location 0x........ is 0 bytes inside global var "unprotected" -declared at tc20_verifywrap.c:27 -Other segment start (thread 2) - (thread finished, call stack no longer available) -Other segment end (thread 2) - (thread finished, call stack no longer available) - - ----------------- pthread_mutex_lock et al ---------------- - -[1] mutex_init invalid mutex 0x........ -The object at address 0x........ is not a mutex. - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:92) - -[1] mutex_init mutex 0x........ -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 -[1] mutex_destroy mutex 0x........ rc 1 owner 1 -Destroying locked mutex: mutex 0x........, recursion count 1, owner 1. - at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:102) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:100) - -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] pre_mutex_lock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] mutex_trylock mutex 0x........ rc 0 owner 0 -[1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed) -[1] mutex_unlock mutex 0x........ rc 0 -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:125) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:108) - - ----------------- pthread_cond_wait et al ---------------- - -[1] mutex_init error checking mutex 0x........ -[1] cond_init cond 0x........ -[1] mutex_unlock error checking mutex 0x........ rc 0 -Mutex not locked: mutex 0x........, recursion count 0, owner 0. - at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:147) -mutex 0x........ was first observed at: - at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?) - by 0x........: main (tc20_verifywrap.c:145) - -[1] cond_pre_wait cond 0x........ -[1] cond_post_wait cond 0x........ -[1] cond_post_wait error checking mutex 0x........ rc 0 owner 0 -[1] cond_signal cond 0x........ - -FIXME: can't figure out how to verify wrap of pthread_cond_signal - -[1] cond_broadcast cond 0x........ - -FIXME: can't figure out how to ver... [truncated message content] |
|
From: <sv...@va...> - 2009-08-14 06:45:27
|
Author: bart
Date: 2009-08-14 07:45:16 +0100 (Fri, 14 Aug 2009)
New Revision: 10807
Log:
Reverted r10802.
Added:
trunk/drd/tests/annotate_order_2.stderr.exp
trunk/drd/tests/annotate_order_2.vgtest
trunk/drd/tests/annotate_order_3.stderr.exp
trunk/drd/tests/annotate_order_3.vgtest
Modified:
trunk/drd/tests/Makefile.am
trunk/drd/tests/tsan_thread_wrappers_pthread.h
Modified: trunk/drd/tests/Makefile.am
===================================================================
--- trunk/drd/tests/Makefile.am 2009-08-14 06:32:20 UTC (rev 10806)
+++ trunk/drd/tests/Makefile.am 2009-08-14 06:45:16 UTC (rev 10807)
@@ -15,6 +15,10 @@
EXTRA_DIST = \
annotate_order_1.stderr.exp \
annotate_order_1.vgtest \
+ annotate_order_2.stderr.exp \
+ annotate_order_2.vgtest \
+ annotate_order_3.stderr.exp \
+ annotate_order_3.vgtest \
annotate_spinlock.stderr.exp \
annotate_spinlock.vgtest \
annotate_rwlock.stderr.exp \
Copied: trunk/drd/tests/annotate_order_2.stderr.exp (from rev 10801, trunk/drd/tests/annotate_order_2.stderr.exp)
===================================================================
--- trunk/drd/tests/annotate_order_2.stderr.exp (rev 0)
+++ trunk/drd/tests/annotate_order_2.stderr.exp 2009-08-14 06:45:16 UTC (rev 10807)
@@ -0,0 +1,6 @@
+
+FLAGS [phb=1, fm=0]
+test30: negative
+ GLOB=47
+
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Copied: trunk/drd/tests/annotate_order_2.vgtest (from rev 10801, trunk/drd/tests/annotate_order_2.vgtest)
===================================================================
--- trunk/drd/tests/annotate_order_2.vgtest (rev 0)
+++ trunk/drd/tests/annotate_order_2.vgtest 2009-08-14 06:45:16 UTC (rev 10807)
@@ -0,0 +1,5 @@
+prereq: test -e tsan_unittest && ./supported_libpthread
+vgopts: --read-var-info=yes --check-stack-var=yes --show-confl-seg=no
+prog: tsan_unittest
+args: 30
+stderr_filter: filter_stderr_and_thread_no
Copied: trunk/drd/tests/annotate_order_3.stderr.exp (from rev 10801, trunk/drd/tests/annotate_order_3.stderr.exp)
===================================================================
--- trunk/drd/tests/annotate_order_3.stderr.exp (rev 0)
+++ trunk/drd/tests/annotate_order_3.stderr.exp 2009-08-14 06:45:16 UTC (rev 10807)
@@ -0,0 +1,6 @@
+
+FLAGS [phb=1, fm=0]
+test31: negative
+ GLOB=48
+
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Copied: trunk/drd/tests/annotate_order_3.vgtest (from rev 10801, trunk/drd/tests/annotate_order_3.vgtest)
===================================================================
--- trunk/drd/tests/annotate_order_3.vgtest (rev 0)
+++ trunk/drd/tests/annotate_order_3.vgtest 2009-08-14 06:45:16 UTC (rev 10807)
@@ -0,0 +1,5 @@
+prereq: test -e tsan_unittest && ./supported_libpthread
+vgopts: --read-var-info=yes --check-stack-var=yes --show-confl-seg=no
+prog: tsan_unittest
+args: 31
+stderr_filter: filter_stderr_and_thread_no
Modified: trunk/drd/tests/tsan_thread_wrappers_pthread.h
===================================================================
--- trunk/drd/tests/tsan_thread_wrappers_pthread.h 2009-08-14 06:32:20 UTC (rev 10806)
+++ trunk/drd/tests/tsan_thread_wrappers_pthread.h 2009-08-14 06:45:16 UTC (rev 10807)
@@ -65,7 +65,7 @@
#include "../../drd/drd.h"
#define ANNOTATE_NO_OP(arg) do { } while(0)
-#define ANNOTATE_EXPECT_RACE(addr, descr) do { } while(0)
+#define ANNOTATE_EXPECT_RACE(addr, descr) DRD_IGNORE_VAR(*(void**)addr)
static inline bool RunningOnValgrind() { return RUNNING_ON_VALGRIND; }
#include <assert.h>
|
|
From: <sv...@va...> - 2009-08-14 06:32:35
|
Author: bart Date: 2009-08-14 07:32:20 +0100 (Fri, 14 Aug 2009) New Revision: 10806 Log: Added a note about the fact that --read-var-info=yes increases memory consumption of Valgrind tools. Modified: trunk/NEWS Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2009-08-14 02:41:37 UTC (rev 10805) +++ trunk/NEWS 2009-08-14 06:32:20 UTC (rev 10806) @@ -193,8 +193,9 @@ * Something that happened in 3.4.0, but wasn't clearly announced: the option --read-var-info can be used by some tools (Memcheck, Helgrind and - DRD). When enabled, it makes those tools run more slowly, but - descriptions of data addresses in error messages become more detailed. + DRD). When enabled, it makes those tools run more slowly and increases + memory consumption, but descriptions of data addresses in error messages + become more detailed. * exp-Omega, an experimental instantaneous leak-detecting tool, was disabled in 3.4.0 due to a lack of interest and maintenance, although the source |
|
From: Rich C. <Ric...@me...> - 2009-08-14 05:35:15
|
Nightly build on macbook ( Darwin 9.8.0 i386 )
Started at 2009-08-13 23:05:00 CDT
Ended at 2009-08-13 23:31:03 CDT
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
== 414 tests, 10 stderr failures, 1 stdout failure, 0 post failures ==
memcheck/tests/null_socket (stdout)
memcheck/tests/origin5-bz2 (stderr)
memcheck/tests/varinfo3 (stderr)
memcheck/tests/varinfo5 (stderr)
none/tests/async-sigs (stderr)
none/tests/faultstatus (stderr)
none/tests/pth_blockedsig (stderr)
helgrind/tests/rwlock_race (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc23_bogus_condwait (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
== 381 tests, 7 stderr failures, 1 stdout failure, 0 post failures ==
memcheck/tests/error_counts (stderr)
memcheck/tests/null_socket (stdout)
memcheck/tests/origin5-bz2 (stderr)
memcheck/tests/varinfo3 (stderr)
memcheck/tests/varinfo5 (stderr)
none/tests/async-sigs (stderr)
none/tests/faultstatus (stderr)
none/tests/pth_blockedsig (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Thu Aug 13 23:17:41 2009
--- new.short Thu Aug 13 23:31:03 2009
***************
*** 8,11 ****
! == 381 tests, 7 stderr failures, 1 stdout failure, 0 post failures ==
! memcheck/tests/error_counts (stderr)
memcheck/tests/null_socket (stdout)
--- 8,10 ----
! == 414 tests, 10 stderr failures, 1 stdout failure, 0 post failures ==
memcheck/tests/null_socket (stdout)
***************
*** 17,18 ****
--- 16,21 ----
none/tests/pth_blockedsig (stderr)
+ helgrind/tests/rwlock_race (stderr)
+ helgrind/tests/tc06_two_races_xml (stderr)
+ helgrind/tests/tc18_semabuse (stderr)
+ helgrind/tests/tc23_bogus_condwait (stderr)
=================================================
./valgrind-new/helgrind/tests/rwlock_race.stderr.diff
=================================================
--- rwlock_race.stderr.exp 2009-08-13 23:17:45.000000000 -0500
+++ rwlock_race.stderr.out 2009-08-13 23:28:23.000000000 -0500
@@ -1,25 +1,4 @@
-Thread #x was created
- ...
- by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (rwlock_race.c:48)
-
-Thread #x was created
- ...
- by 0x........: pthread_create@* (hg_intercepts.c:...)
- by 0x........: main (rwlock_race.c:47)
-
-Possible data race during write of size 4 at 0x........ by thread #x
- at 0x........: thread_func (rwlock_race.c:29)
- by 0x........: mythread_wrapper (hg_intercepts.c:...)
- ...
- This conflicts with a previous write of size 4 by thread #x
- at 0x........: thread_func (rwlock_race.c:29)
- by 0x........: mythread_wrapper (hg_intercepts.c:...)
- ...
- Location 0x........ is 0 bytes inside local var "s_racy"
- declared at rwlock_race.c:18, in frame #x of thread x
-
Result: 2
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2009-08-13 23:17:45.000000000 -0500
+++ tc06_two_races_xml.stderr.out 2009-08-13 23:28:39.000000000 -0500
@@ -39,17 +39,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>clone</fn>
- </frame>
- <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>
+ <fn>__bsdthread_create</fn>
</frame>
<frame>
<ip>0x........</ip>
@@ -62,7 +52,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>pthread_create@*</fn>
+ <fn>pthread_create</fn>
<dir>...</dir>
<file>hg_intercepts.c</file>
<line>...</line>
@@ -120,12 +110,12 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>clone</fn>
+ <fn>thread_start</fn>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -174,12 +164,12 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>clone</fn>
+ <fn>thread_start</fn>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -228,12 +218,12 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>clone</fn>
+ <fn>thread_start</fn>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
@@ -282,18 +272,19 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>clone</fn>
+ <fn>thread_start</fn>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
<xauxwhat><text>declared at tc06_two_races.c:9</text> <file>tc06_two_races.c</file> <line>...</line> </xauxwhat>
</error>
+
<status>
<state>FINISHED</state>
<time>...</time>
=================================================
./valgrind-new/helgrind/tests/tc18_semabuse.stderr.diff-glibc25-amd64
=================================================
--- tc18_semabuse.stderr.exp-glibc25-amd64 2009-08-13 23:17:45.000000000 -0500
+++ tc18_semabuse.stderr.out 2009-08-13 23:28:53.000000000 -0500
@@ -2,14 +2,30 @@
Thread #x is the program's root thread
Thread #x's call to sem_init failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_init@* (hg_intercepts.c:...)
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_init (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:23)
-Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
+Thread #x's call to sem_init failed
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_init (hg_intercepts.c:...)
+ by 0x........: main (tc18_semabuse.c:26)
+
+Thread #x's call to sem_wait failed
+ with error code 9 (EBADF: Bad file number)
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
- by 0x........: sem_wait (hg_intercepts.c:...)
+ by 0x........: sem_wait$* (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:34)
+Thread #x's call to sem_post failed
+ with error code 9 (EBADF: Bad file number)
+ at 0x........: sem_post (hg_intercepts.c:...)
+ by 0x........: main (tc18_semabuse.c:37)
+
+Thread #x's call to sem_destroy failed
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_destroy (hg_intercepts.c:...)
+ by 0x........: main (tc18_semabuse.c:39)
+
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc18_semabuse.stderr.diff-glibc28-amd64
=================================================
--- tc18_semabuse.stderr.exp-glibc28-amd64 2009-08-13 23:17:45.000000000 -0500
+++ tc18_semabuse.stderr.out 2009-08-13 23:28:53.000000000 -0500
@@ -2,20 +2,30 @@
Thread #x is the program's root thread
Thread #x's call to sem_init failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_init@* (hg_intercepts.c:...)
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_init (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:23)
-Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post
+Thread #x's call to sem_init failed
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_init (hg_intercepts.c:...)
+ by 0x........: main (tc18_semabuse.c:26)
+
+Thread #x's call to sem_wait failed
+ with error code 9 (EBADF: Bad file number)
at 0x........: sem_wait_WRK (hg_intercepts.c:...)
- by 0x........: sem_wait (hg_intercepts.c:...)
+ by 0x........: sem_wait$* (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:34)
Thread #x's call to sem_post failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_post_WRK (hg_intercepts.c:...)
- by 0x........: sem_post (hg_intercepts.c:...)
+ with error code 9 (EBADF: Bad file number)
+ at 0x........: sem_post (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:37)
+Thread #x's call to sem_destroy failed
+ with error code 78 (ENOSYS: Function not implemented)
+ at 0x........: sem_destroy (hg_intercepts.c:...)
+ by 0x........: main (tc18_semabuse.c:39)
+
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc23_bogus_condwait.stderr.diff
=================================================
--- tc23_bogus_condwait.stderr.exp 2009-08-13 23:17:45.000000000 -0500
+++ tc23_bogus_condwait.stderr.out 2009-08-13 23:29:28.000000000 -0500
@@ -2,32 +2,52 @@
Thread #x is the program's root thread
Thread #x: pthread_cond_{timed}wait called with invalid mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
+ by 0x........: main (tc23_bogus_condwait.c:69)
+
+Thread #x's call to pthread_cond_wait failed
+ with error code 22 (EINVAL: Invalid argument)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:69)
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:72)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:72)
Thread #x: pthread_cond_{timed}wait called with mutex of type pthread_rwlock_t*
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:75)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
+ by 0x........: main (tc23_bogus_condwait.c:75)
+
+Thread #x's call to pthread_cond_wait failed
+ with error code 22 (EINVAL: Invalid argument)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:75)
Thread #x: pthread_cond_{timed}wait called with mutex held by a different thread
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:78)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:78)
+Thread #x: Bug in libpthread: write lock granted on mutex/rwlock which is currently wr-held by a different thread
+ at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
+ by 0x........: _pthread_cond_wait (in /...libc...)
+ by 0x........: pthread_cond_wait$UNIX2003 (in /...libc...)
+ by 0x........: pthread_cond_wait* (hg_intercepts.c:...)
+ by 0x........: main (tc23_bogus_condwait.c:78)
+
+Thread #x: Exiting thread still holds 1 lock
+ ...
+
-ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/memcheck/tests/null_socket.stdout.diff
=================================================
--- /dev/null 2009-08-13 23:23:16.000000000 -0500
+++ null_socket.stdout.out 2009-08-13 23:23:33.000000000 -0500
@@ -0,0 +1 @@
+recvfrom succeeded?
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2009-08-13 23:17:53.000000000 -0500
+++ origin5-bz2.stderr.out 2009-08-13 23:23:48.000000000 -0500
@@ -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,8 +49,8 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2854)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2855)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
@@ -60,8 +60,8 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2858)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2859)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
@@ -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,18 @@
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)
+ 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:6479)
+
+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 +115,7 @@
Uninitialised value was created by a client request
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2009-08-13 23:17:54.000000000 -0500
+++ origin5-bz2.stderr.out 2009-08-13 23:23:48.000000000 -0500
@@ -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:2855)
+ 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:2859)
+ 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,19 @@
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)
+ 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:6479)
+
+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)
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-08-13 23:17:53.000000000 -0500
+++ origin5-bz2.stderr.out 2009-08-13 23:23:48.000000000 -0500
@@ -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,102 @@
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:2855)
+ 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:2859)
+ 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/memcheck/tests/varinfo3.stderr.diff
=================================================
--- varinfo3.stderr.exp 2009-08-13 23:17:53.000000000 -0500
+++ varinfo3.stderr.out 2009-08-13 23:24:43.000000000 -0500
@@ -31,7 +31,7 @@
by 0x........: bar (varinfo3.c:42)
by 0x........: foo (varinfo3.c:58)
by 0x........: main (varinfo3.c:66)
- Address 0x........ is 5 bytes inside data symbol "static_local_def.XXXX"
+ Address 0x........ is in the Data segment of ./varinfo3
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo3.c:28)
@@ -46,7 +46,7 @@
by 0x........: bar (varinfo3.c:44)
by 0x........: foo (varinfo3.c:58)
by 0x........: main (varinfo3.c:66)
- Address 0x........ is 7 bytes inside data symbol "static_local_undef.XXXX"
+ Address 0x........ is in the Data segment of ./varinfo3
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo3.c:28)
=================================================
./valgrind-new/memcheck/tests/varinfo5.stderr.diff
=================================================
--- varinfo5.stderr.exp 2009-08-13 23:17:54.000000000 -0500
+++ varinfo5.stderr.out 2009-08-13 23:24:44.000000000 -0500
@@ -119,7 +119,7 @@
by 0x........: varinfo3_main (varinfo5so.c:118)
by 0x........: varinfo5_main (varinfo5so.c:156)
by 0x........: main (varinfo5.c:5)
- Address 0x........ is 5 bytes inside data symbol "static_local_def.XXXX"
+ Address 0x........ is in the Data segment of /Users/minime/src/vg/nightly/valgrind-new/memcheck/tests/varinfo5so.so
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
@@ -138,7 +138,7 @@
by 0x........: varinfo3_main (varinfo5so.c:118)
by 0x........: varinfo5_main (varinfo5so.c:156)
by 0x........: main (varinfo5.c:5)
- Address 0x........ is 7 bytes inside data symbol "static_local_undef.XXXX"
+ Address 0x........ is in the Data segment of /Users/minime/src/vg/nightly/valgrind-new/memcheck/tests/varinfo5so.so
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
=================================================
./valgrind-new/none/tests/async-sigs.stderr.diff
=================================================
--- async-sigs.stderr.exp 2009-08-13 23:18:02.000000000 -0500
+++ async-sigs.stderr.out 2009-08-13 23:26:10.000000000 -0500
@@ -1,8 +1,30 @@
-testing: blocking=0 caught=11 fatal=7... PASSED
+testing: blocking=0 caught=11 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: test (async-sigs.c:94)
+ by 0x........: main (async-sigs.c:129)
+PASSED
testing: blocking=0 caught=11 fatal=1... PASSED
-testing: blocking=0 caught=10 fatal=7... PASSED
-testing: blocking=0 caught=10 fatal=1... PASSED
-testing: blocking=1 caught=11 fatal=7... PASSED
+testing: blocking=0 caught=30 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: test (async-sigs.c:94)
+ by 0x........: main (async-sigs.c:131)
+PASSED
+testing: blocking=0 caught=30 fatal=1... PASSED
+testing: blocking=1 caught=11 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: __sigsuspend (in /...libc...)
+ by 0x........: test (async-sigs.c:95)
+ by 0x........: main (async-sigs.c:133)
+PASSED
testing: blocking=1 caught=11 fatal=1... PASSED
-testing: blocking=1 caught=10 fatal=7... PASSED
-testing: blocking=1 caught=10 fatal=1... PASSED
+testing: blocking=1 caught=30 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: __sigsuspend (in /...libc...)
+ by 0x........: test (async-sigs.c:95)
+ by 0x........: main (async-sigs.c:135)
+PASSED
+testing: blocking=1 caught=30 fatal=1... PASSED
=================================================
./valgrind-new/none/tests/faultstatus.stderr.diff
=================================================
--- faultstatus.stderr.exp 2009-08-13 23:18:02.000000000 -0500
+++ faultstatus.stderr.out 2009-08-13 23:26:15.000000000 -0500
@@ -1,6 +1,6 @@
-Test 1: PASS
-Test 2: PASS
-Test 3: PASS
-Test 4: PASS
+Test 1: FAIL: expected signal 11, not 10
+Test 2: FAIL: expected signal 11, not 10
+Test 3: FAIL: no fault, or handler returned
+Test 4: FAIL: expected si_code==7, not 0
=================================================
./valgrind-new/none/tests/pth_blockedsig.stderr.diff
=================================================
--- pth_blockedsig.stderr.exp 2009-08-13 23:18:02.000000000 -0500
+++ pth_blockedsig.stderr.out 2009-08-13 23:27:16.000000000 -0500
@@ -1,2 +1,4 @@
+UNKNOWN __pthread_sigmask is unsupported. This warning will not be repeated.
+SHOULD NOT BE HERE (SIGUSR1)!!!!
=================================================
./valgrind-old/memcheck/tests/error_counts.stderr.diff
=================================================
--- error_counts.stderr.exp 2009-08-13 23:05:34.000000000 -0500
+++ error_counts.stderr.out 2009-08-13 23:10:56.000000000 -0500
@@ -16,4 +16,4 @@
reachable: 99 bytes in 1 blocks
suppressed: 0 bytes in 0 blocks
-errors: 3
+errors: 1
=================================================
./valgrind-old/memcheck/tests/null_socket.stdout.diff
=================================================
--- /dev/null 2009-08-13 23:11:16.000000000 -0500
+++ null_socket.stdout.out 2009-08-13 23:11:33.000000000 -0500
@@ -0,0 +1 @@
+recvfrom succeeded?
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2009-08-13 23:05:34.000000000 -0500
+++ origin5-bz2.stderr.out 2009-08-13 23:11:48.000000000 -0500
@@ -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,8 +49,8 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2854)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2855)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
@@ -60,8 +60,8 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2858)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2859)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
@@ -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,18 @@
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)
+ 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:6479)
+
+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 +115,7 @@
Uninitialised value was created by a client request
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2009-08-13 23:05:35.000000000 -0500
+++ origin5-bz2.stderr.out 2009-08-13 23:11:48.000000000 -0500
@@ -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:2855)
+ 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:2859)
+ 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,19 @@
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)
+ 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:6479)
+
+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)
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-08-13 23:05:34.000000000 -0500
+++ origin5-bz2.stderr.out 2009-08-13 23:11:48.000000000 -0500
@@ -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,102 @@
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:2855)
+ 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:2859)
+ 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/memcheck/tests/varinfo3.stderr.diff
=================================================
--- varinfo3.stderr.exp 2009-08-13 23:05:34.000000000 -0500
+++ varinfo3.stderr.out 2009-08-13 23:12:43.000000000 -0500
@@ -31,7 +31,7 @@
by 0x........: bar (varinfo3.c:42)
by 0x........: foo (varinfo3.c:58)
by 0x........: main (varinfo3.c:66)
- Address 0x........ is 5 bytes inside data symbol "static_local_def.XXXX"
+ Address 0x........ is in the Data segment of ./varinfo3
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo3.c:28)
@@ -46,7 +46,7 @@
by 0x........: bar (varinfo3.c:44)
by 0x........: foo (varinfo3.c:58)
by 0x........: main (varinfo3.c:66)
- Address 0x........ is 7 bytes inside data symbol "static_local_undef.XXXX"
+ Address 0x........ is in the Data segment of ./varinfo3
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo3.c:28)
=================================================
./valgrind-old/memcheck/tests/varinfo5.stderr.diff
=================================================
--- varinfo5.stderr.exp 2009-08-13 23:05:35.000000000 -0500
+++ varinfo5.stderr.out 2009-08-13 23:12:44.000000000 -0500
@@ -119,7 +119,7 @@
by 0x........: varinfo3_main (varinfo5so.c:118)
by 0x........: varinfo5_main (varinfo5so.c:156)
by 0x........: main (varinfo5.c:5)
- Address 0x........ is 5 bytes inside data symbol "static_local_def.XXXX"
+ Address 0x........ is in the Data segment of /Users/minime/src/vg/nightly/valgrind-old/memcheck/tests/varinfo5so.so
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
@@ -138,7 +138,7 @@
by 0x........: varinfo3_main (varinfo5so.c:118)
by 0x........: varinfo5_main (varinfo5so.c:156)
by 0x........: main (varinfo5.c:5)
- Address 0x........ is 7 bytes inside data symbol "static_local_undef.XXXX"
+ Address 0x........ is in the Data segment of /Users/minime/src/vg/nightly/valgrind-old/memcheck/tests/varinfo5so.so
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo5so.c:29)
=================================================
./valgrind-old/none/tests/async-sigs.stderr.diff
=================================================
--- async-sigs.stderr.exp 2009-08-13 23:05:46.000000000 -0500
+++ async-sigs.stderr.out 2009-08-13 23:14:10.000000000 -0500
@@ -1,8 +1,30 @@
-testing: blocking=0 caught=11 fatal=7... PASSED
+testing: blocking=0 caught=11 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: test (async-sigs.c:94)
+ by 0x........: main (async-sigs.c:129)
+PASSED
testing: blocking=0 caught=11 fatal=1... PASSED
-testing: blocking=0 caught=10 fatal=7... PASSED
-testing: blocking=0 caught=10 fatal=1... PASSED
-testing: blocking=1 caught=11 fatal=7... PASSED
+testing: blocking=0 caught=30 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: test (async-sigs.c:94)
+ by 0x........: main (async-sigs.c:131)
+PASSED
+testing: blocking=0 caught=30 fatal=1... PASSED
+testing: blocking=1 caught=11 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: __sigsuspend (in /...libc...)
+ by 0x........: test (async-sigs.c:95)
+ by 0x........: main (async-sigs.c:133)
+PASSED
testing: blocking=1 caught=11 fatal=1... PASSED
-testing: blocking=1 caught=10 fatal=7... PASSED
-testing: blocking=1 caught=10 fatal=1... PASSED
+testing: blocking=1 caught=30 fatal=10...
+Process terminating with default action of signal 10 (SIGBUS)
+ Non-existent physical address at address 0x........
+ at 0x........: __sigsuspend (in /...libc...)
+ by 0x........: test (async-sigs.c:95)
+ by 0x........: main (async-sigs.c:135)
+PASSED
+testing: blocking=1 caught=30 fatal=1... PASSED
=================================================
./valgrind-old/none/tests/faultstatus.stderr.diff
=================================================
--- faultstatus.stderr.exp 2009-08-13 23:05:47.000000000 -0500
+++ faultstatus.stderr.out 2009-08-13 23:14:15.000000000 -0500
@@ -1,6 +1,6 @@
-Test 1: PASS
-Test 2: PASS
-Test 3: PASS
-Test 4: PASS
+Test 1: FAIL: expected signal 11, not 10
+Test 2: FAIL: expected signal 11, not 10
+Test 3: FAIL: no fault, or handler returned
+Test 4: FAIL: expected si_code==7, not 0
=================================================
./valgrind-old/none/tests/pth_blockedsig.stderr.diff
=================================================
--- pth_blockedsig.stderr.exp 2009-08-13 23:05:46.000000000 -0500
+++ pth_blockedsig.stderr.out 2009-08-13 23:15:15.000000000 -0500
@@ -1,2 +1,4 @@
+UNKNOWN __pthread_sigmask is unsupported. This warning will not be repeated.
+SHOULD NOT BE HERE (SIGUSR1)!!!!
|