You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(25) |
2
(25) |
3
(5) |
4
(13) |
|
5
(4) |
6
(8) |
7
(6) |
8
|
9
(10) |
10
(15) |
11
(9) |
|
12
(14) |
13
(10) |
14
(24) |
15
(41) |
16
(13) |
17
(9) |
18
(3) |
|
19
(10) |
20
(11) |
21
(28) |
22
(36) |
23
(52) |
24
(36) |
25
(12) |
|
26
(31) |
27
(27) |
28
(20) |
29
(15) |
30
(22) |
31
(17) |
|
|
From: <sv...@va...> - 2009-07-09 23:35:51
|
Author: njn
Date: 2009-07-10 00:35:44 +0100 (Fri, 10 Jul 2009)
New Revision: 10420
Log:
Attempt to improve the {MALLOC,FREE}LIKE_BLOCK documentation, based on
seeing them misapplied on a real-world example.
Modified:
trunk/include/valgrind.h
Modified: trunk/include/valgrind.h
===================================================================
--- trunk/include/valgrind.h 2009-07-09 22:52:24 UTC (rev 10419)
+++ trunk/include/valgrind.h 2009-07-09 23:35:44 UTC (rev 10420)
@@ -3802,31 +3802,91 @@
_qyy_res; \
})
-/* Mark a block of memory as having been allocated by a malloc()-like
- function. `addr' is the start of the usable block (ie. after any
- redzone) `rzB' is redzone size if the allocator can apply redzones;
- use '0' if not. Adding redzones makes it more likely Valgrind will spot
- block overruns. `is_zeroed' indicates if the memory is zeroed, as it is
- for calloc(). Put it immediately after the point where a block is
- allocated.
+/* Several Valgrind tools (Memcheck, Massif, Helgrind, DRD) rely on knowing
+ when heap blocks are allocated in order to give accurate results. This
+ happens automatically for the standard allocator functions such as
+ malloc(), calloc(), realloc(), memalign(), new, new[], free(), delete,
+ delete[], etc.
+
+ But if your program uses a custom allocator, this doesn't automatically
+ happen, and Valgrind will not do as well. For example, if you allocate
+ superblocks with mmap() and then allocates chunks of the superblocks, all
+ Valgrind's observations will be at the mmap() level and it won't know that
+ the chunks should be considered separate entities. In Memcheck's case,
+ that means you probably won't get heap block overrun detection (because
+ there won't be redzones marked as unaddressable) and you definitely won't
+ get any leak detection.
+
+ The following client requests allow a custom allocator to be annotated so
+ that it can be handled accurately by Valgrind.
+
+ VALGRIND_MALLOCLIKE_BLOCK marks a region of memory as having been allocated
+ by a malloc()-like function. For Memcheck (an illustrative case), this
+ does two things:
+
+ - It records that the block has been allocated. This means any addresses
+ within the block mentioned in error messages will be
+ identified as belonging to the block. It also means that if the block
+ isn't freed it will be detected by the leak checker.
+
+ - It marks the block as being addressable and undefined (if 'is_zeroed' is
+ not set), or addressable and defined (if 'is_zeroed' is set). This
+ controls how accesses to the block by the program are handled.
- If you're using Memcheck: If you're allocating memory via superblocks,
- and then handing out small chunks of each superblock, if you don't have
- redzones on your small blocks, it's worth marking the superblock with
- VALGRIND_MAKE_MEM_NOACCESS when it's created, so that block overruns are
- detected. But if you can put redzones on, it's probably better to not do
- this, so that messages for small overruns are described in terms of the
- small block rather than the superblock (but if you have a big overrun
- that skips over a redzone, you could miss an error this way). See
- memcheck/tests/custom_alloc.c for an example.
+ 'addr' is the start of the usable block (ie. after any
+ redzone), 'sizeB' is its size. 'rzB' is the redzone size if the allocator
+ can apply redzones -- these are blocks of padding at the start and end of
+ each block. Adding redzones is recommended as it makes it much more likely
+ Valgrind will spot block overruns. `is_zeroed' indicates if the memory is
+ zeroed (or filled with another predictable value), as is the case for
+ calloc().
+
+ VALGRIND_MALLOCLIKE_BLOCK should be put immediately after the point where a
+ heap block -- that will be used by the client program -- is allocated.
+ It's best to put it at the outermost level of the allocator if possible;
+ for example, if you have a function my_alloc() which calls
+ internal_alloc(), and the client request is put inside internal_alloc(),
+ stack traces relating to the heap block will contain entries for both
+ my_alloc() and internal_alloc(), which is probably not what you want.
+ VALGRIND_FREELIKE_BLOCK is the partner to VALGRIND_MALLOCLIKE_BLOCK. For
+ Memcheck, it does two things:
+
+ - It records that the block has been deallocated. This assumes that the
+ block was annotated as having been allocated via
+ VALGRIND_MALLOCLIKE_BLOCK. Otherwise, an error will be issued.
+
+ - It marks the block as being unaddressable.
+
+ VALGRIND_FREELIKE_BLOCK should be put immediately after the point where a
+ heap block is deallocated.
+
+ In many cases, these two client requests will not be enough to get your
+ allocator working well with Memcheck. More specifically, if your allocator
+ writes to freed blocks in any way then a VALGRIND_MAKE_MEM_UNDEFINED call
+ will be necessary to mark the memory as addressable just before the zeroing
+ occurs, otherwise you'll get a lot of invalid write errors. For example,
+ you'll need to do this if your allocator recycles freed blocks, but it
+ zeroes them before handing them back out (via VALGRIND_MALLOCLIKE_BLOCK).
+ Alternatively, if your allocator reuses freed blocks for allocator-internal
+ data structures, VALGRIND_MAKE_MEM_UNDEFINED calls will also be necessary.
+
+ Really, what's happening is a blurring of the lines between the client
+ program and the allocator... after VALGRIND_FREELIKE_BLOCK is called, the
+ memory should be considered unaddressable to the client program, but the
+ allocator knows more than the rest of the client program and so may be able
+ to safely access it. Extra client requests are necessary for Valgrind to
+ understand the distinction between the allocator and the rest of the
+ program.
+
+ Note: there is currently no VALGRIND_REALLOCLIKE_BLOCK client request; it
+ has to be emulated with MALLOCLIKE/FREELIKE and memory copying.
+
WARNING: if your allocator uses malloc() or 'new' to allocate
superblocks, rather than mmap() or brk(), this will not work properly --
you'll likely get assertion failures during leak detection. This is
because Valgrind doesn't like seeing overlapping heap blocks. Sorry.
-
- Nb: block must be freed via a free()-like function specified
- with VALGRIND_FREELIKE_BLOCK or mismatch errors will occur. */
+*/
#define VALGRIND_MALLOCLIKE_BLOCK(addr, sizeB, rzB, is_zeroed) \
{unsigned int _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
@@ -3834,10 +3894,7 @@
addr, sizeB, rzB, is_zeroed, 0); \
}
-/* Mark a block of memory as having been freed by a free()-like function.
- `rzB' is redzone size; it must match that given to
- VALGRIND_MALLOCLIKE_BLOCK. Memory not freed will be detected by the leak
- checker. Put it immediately after the point where the block is freed. */
+/* See the comment for VALGRIND_MALLOCLIKE_BLOCK for details. */
#define VALGRIND_FREELIKE_BLOCK(addr, rzB) \
{unsigned int _qzz_res; \
VALGRIND_DO_CLIENT_REQUEST(_qzz_res, 0, \
|
|
From: <sv...@va...> - 2009-07-09 22:52:36
|
Author: njn Date: 2009-07-09 23:52:24 +0100 (Thu, 09 Jul 2009) New Revision: 10419 Log: This file was accidentally empty; fill it with the right output. Modified: trunk/memcheck/tests/atomic_incs.stdout.exp-32bit Modified: trunk/memcheck/tests/atomic_incs.stdout.exp-32bit =================================================================== --- trunk/memcheck/tests/atomic_incs.stdout.exp-32bit 2009-07-09 10:52:03 UTC (rev 10418) +++ trunk/memcheck/tests/atomic_incs.stdout.exp-32bit 2009-07-09 22:52:24 UTC (rev 10419) @@ -0,0 +1,7 @@ +parent, pre-fork +child +parent, pre-fork +parent +FINAL VALUES: 8 bit -74, 16 bit 32694, 32 bit 6913974, 64 bit 0 +PASS +parent exits |
|
From: Nicholas N. <n.n...@gm...> - 2009-07-09 17:33:14
|
Nightly build on ocean32 ( Ubuntu 9.04, x86_64 (32-bit only) )
Started at 2009-07-10 03:00:01 EST
Ended at 2009-07-10 03:33:09 EST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 463 tests, 10 stderr failures, 3 stdout failures, 0 post failures ==
memcheck/tests/atomic_incs (stdout)
memcheck/tests/linux/stack_switch (stderr)
memcheck/tests/origin1-yes (stderr)
memcheck/tests/origin5-bz2 (stderr)
none/tests/empty-exe (stderr)
none/tests/linux/mremap2 (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)
drd/tests/pth_cleanup_handler (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
== 463 tests, 12 stderr failures, 3 stdout failures, 0 post failures ==
memcheck/tests/atomic_incs (stdout)
memcheck/tests/linux/stack_switch (stderr)
memcheck/tests/origin1-yes (stderr)
memcheck/tests/origin5-bz2 (stderr)
none/tests/empty-exe (stderr)
none/tests/linux/mremap2 (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)
drd/tests/pth_cleanup_handler (stderr)
exp-ptrcheck/tests/pth_create (stderr)
exp-ptrcheck/tests/pth_specific (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Fri Jul 10 03:17:38 2009
--- new.short Fri Jul 10 03:33:09 2009
***************
*** 8,10 ****
! == 463 tests, 12 stderr failures, 3 stdout failures, 0 post failures ==
memcheck/tests/atomic_incs (stdout)
--- 8,10 ----
! == 463 tests, 10 stderr failures, 3 stdout failures, 0 post failures ==
memcheck/tests/atomic_incs (stdout)
***************
*** 22,25 ****
drd/tests/pth_cleanup_handler (stderr)
- exp-ptrcheck/tests/pth_create (stderr)
- exp-ptrcheck/tests/pth_specific (stderr)
--- 22,23 ----
=================================================
./valgrind-new/drd/tests/pth_cleanup_handler.stderr.diff
=================================================
--- pth_cleanup_handler.stderr.exp 2009-07-10 03:21:50.000000000 +1000
+++ pth_cleanup_handler.stderr.out 2009-07-10 03:32:02.000000000 +1000
@@ -1,6 +1 @@
-
-Cleanup handler has been called.
-Cleanup handler has been called.
-Test succeeded.
-
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+valgrind: failed to start tool 'drd' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind-new/memcheck/tests/atomic_incs.stdout.diff-32bit
=================================================
--- atomic_incs.stdout.exp-32bit 2009-07-10 03:19:32.000000000 +1000
+++ atomic_incs.stdout.out 2009-07-10 03:27:51.000000000 +1000
@@ -0,0 +1,7 @@
+parent, pre-fork
+child
+parent, pre-fork
+parent
+FINAL VALUES: 8 bit -74, 16 bit 32694, 32 bit 6913974, 64 bit 0
+PASS
+parent exits
=================================================
./valgrind-new/memcheck/tests/atomic_incs.stdout.diff-64bit
=================================================
--- atomic_incs.stdout.exp-64bit 2009-07-10 03:19:32.000000000 +1000
+++ atomic_incs.stdout.out 2009-07-10 03:27:51.000000000 +1000
@@ -2,6 +2,6 @@
child
parent, pre-fork
parent
-FINAL VALUES: 8 bit -74, 16 bit 32694, 32 bit 6913974, 64 bit 682858642110
+FINAL VALUES: 8 bit -74, 16 bit 32694, 32 bit 6913974, 64 bit 0
PASS
parent exits
=================================================
./valgrind-new/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2009-07-10 03:19:22.000000000 +1000
+++ stack_switch.stderr.out 2009-07-10 03:28:05.000000000 +1000
@@ -0,0 +1,2 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
=================================================
./valgrind-new/memcheck/tests/origin1-yes.stderr.diff
=================================================
--- origin1-yes.stderr.exp 2009-07-10 03:19:32.000000000 +1000
+++ origin1-yes.stderr.out 2009-07-10 03:28:24.000000000 +1000
@@ -47,7 +47,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin1-yes.c:101)
Uninitialised value was created
- at 0x........: brk (in /...libc...)
+ at 0x........: ??? (in /lib32/ld-2.9.so)
by 0x........: sbrk (in /...libc...)
by 0x........: main (origin1-yes.c:98)
=================================================
./valgrind-new/memcheck/tests/origin1-yes.stderr.diff-darwin
=================================================
--- origin1-yes.stderr.exp-darwin 2009-07-10 03:19:32.000000000 +1000
+++ origin1-yes.stderr.out 2009-07-10 03:28:24.000000000 +1000
@@ -44,7 +44,12 @@
Undef 7 of 8 (brk)
-(no complaint; sbrk initialises memory on Darwin)
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:101)
+ Uninitialised value was created
+ at 0x........: ??? (in /lib32/ld-2.9.so)
+ by 0x........: sbrk (in /...libc...)
+ by 0x........: main (origin1-yes.c:98)
Undef 8 of 8 (MAKE_MEM_UNDEFINED)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2009-07-10 03:19:32.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-10 03:28:28.000000000 +1000
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,7 +27,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -38,7 +38,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -49,7 +49,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -60,7 +60,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -71,7 +71,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -82,7 +82,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -93,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -104,7 +104,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2009-07-10 03:19:32.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-10 03:28:28.000000000 +1000
@@ -28,7 +28,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -38,7 +39,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -48,7 +50,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -58,7 +61,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -68,7 +72,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -78,7 +83,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2009-07-10 03:19:32.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-10 03:28:28.000000000 +1000
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,85 +9,91 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2854)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2858)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
<truncated beyond 100 lines>
=================================================
./valgrind-new/none/tests/empty-exe.stderr.diff
=================================================
--- empty-exe.stderr.exp 2009-07-10 03:21:23.000000000 +1000
+++ empty-exe.stderr.out 2009-07-10 03:29:45.000000000 +1000
@@ -1,2 +1,2 @@
-
-
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./empty-exe: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/linux/mremap2.stdout.diff
=================================================
--- mremap2.stdout.exp 2009-07-10 03:21:13.000000000 +1000
+++ mremap2.stdout.out 2009-07-10 03:29:50.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,40 +173,40 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
=================================================
./valgrind-new/none/tests/linux/mremap2.stdout.diff-glibc28-amd64
=================================================
--- mremap2.stdout.exp-glibc28-amd64 2009-07-10 03:21:13.000000000 +1000
+++ mremap2.stdout.out 2009-07-10 03:29:50.000000000 +1000
@@ -188,37 +188,37 @@
maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
maymv 1 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
maymv 1 fixed 0 newsz 31 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................
..................................................
maymv 1 fixed 0 newsz 31 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................
..................................................
=================================================
./valgrind-new/none/tests/linux/mremap2.stdout.diff2
=================================================
--- mremap2.stdout.exp2 2009-07-10 03:21:13.000000000 +1000
+++ mremap2.stdout.out 2009-07-10 03:29:50.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,52 +173,52 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
=================================================
./valgrind-new/none/tests/shell.stderr.diff
=================================================
--- shell.stderr.exp 2009-07-10 03:21:23.000000000 +1000
+++ shell.stderr.out 2009-07-10 03:30:08.000000000 +1000
@@ -1,8 +1,3 @@
-./shell: ./x86/: is a directory
-./shell: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell: ./shell_binaryfile: cannot execute binary file
-./shell: ./shell_nosuchfile: No such file or directory
-./shell: shell_nosuchfile: command not found
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell.stderr.diff-dash
=================================================
--- shell.stderr.exp-dash 2009-07-10 03:21:23.000000000 +1000
+++ shell.stderr.out 2009-07-10 03:30:08.000000000 +1000
@@ -1,8 +1,3 @@
-./shell: 10: ./x86/: Permission denied
-./shell: 13: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell_binaryfile: 4: Syntax error: ")" unexpected
-./shell: 22: ./shell_nosuchfile: not found
-./shell: 25: shell_nosuchfile: not found
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell.stdout.diff
=================================================
--- shell.stdout.exp 2009-07-10 03:21:23.000000000 +1000
+++ shell.stdout.out 2009-07-10 03:30:08.000000000 +1000
@@ -1,10 +0,0 @@
-Execute a directory
-Execute a non-executable file
-Execute a script with a bad interpreter name
-Execute a binary file
-Execute a non-existent file
-Execute a non-existent file (2)
-Execute a valid script with a #! line
-Execute a valid script without a #! line
-Execute a valid script with #! but no interpname
-Execute a zero-length file
=================================================
./valgrind-new/none/tests/shell_valid1.stderr.diff
=================================================
--- shell_valid1.stderr.exp 2009-07-10 03:21:23.000000000 +1000
+++ shell_valid1.stderr.out 2009-07-10 03:30:08.000000000 +1000
@@ -0,0 +1,3 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid1: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_valid2.stderr.diff
=================================================
--- shell_valid2.stderr.exp 2009-07-10 03:21:23.000000000 +1000
+++ shell_valid2.stderr.out 2009-07-10 03:30:08.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid2: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_valid3.stderr.diff
=================================================
--- shell_valid3.stderr.exp 2009-07-10 03:21:23.000000000 +1000
+++ shell_valid3.stderr.out 2009-07-10 03:30:08.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid3: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_zerolength.stderr.diff
=================================================
--- shell_zerolength.stderr.exp 2009-07-10 03:21:23.000000000 +1000
+++ shell_zerolength.stderr.out 2009-07-10 03:30:08.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_zerolength: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_zerolength.stderr.diff-dash
=================================================
--- shell_zerolength.stderr.exp-dash 2009-07-10 03:21:23.000000000 +1000
+++ shell_zerolength.stderr.out 2009-07-10 03:30:08.000000000 +1000
@@ -1 +1,2 @@
-Bus error
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_zerolength: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/drd/tests/pth_cleanup_handler.stderr.diff
=================================================
--- pth_cleanup_handler.stderr.exp 2009-07-10 03:05:12.000000000 +1000
+++ pth_cleanup_handler.stderr.out 2009-07-10 03:16:28.000000000 +1000
@@ -1,6 +1 @@
-
-Cleanup handler has been called.
-Cleanup handler has been called.
-Test succeeded.
-
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+valgrind: failed to start tool 'drd' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind-old/exp-ptrcheck/tests/pth_create.stderr.diff
=================================================
--- pth_create.stderr.exp 2009-07-10 03:01:14.000000000 +1000
+++ pth_create.stderr.out 2009-07-10 03:17:32.000000000 +1000
@@ -1,18 +1,31 @@
-Invalid write of size 4
+t8 = CASle(t22::t18->t1)
+exp-ptrcheck: h_main.c:4820 (schemeS): the 'impossible' happened.
+ at 0x........: report_and_quit (m_libcassert.c:145)
+ by 0x........: vgPlain_assert_fail (m_libcassert.c:216)
+ by 0x........: h_instrument (h_main.c:4820)
+ by 0x........: LibVEX_Translate (main_main.c:500)
+ by 0x........: vgPlain_translate (m_translate.c:1517)
+ by 0x........: vgPlain_scheduler (scheduler.c:844)
+ by 0x........: run_a_thread_NORETURN (syswrap-linux.c:91)
+
+sched status:
+ running_tid=1
+
+Thread 1: status = VgTs_Runnable
at 0x........: pthread_key_create (in /...libpthread...)
by 0x........: main (pth_create.c:17)
- Address 0x........ is 1 bytes inside the accessing pointer's
- legitimate range, a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (pth_create.c:14)
-Invalid write of size 4
- at 0x........: pthread_key_create (in /...libpthread...)
- by 0x........: main (pth_create.c:19)
- Address 0x........ is 0 bytes inside the accessing pointer's
- once-legitimate range, a block of size 4 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (pth_create.c:18)
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+Note: see also the FAQ in the source distribution.
+It contains workarounds to several common problems.
+In particular, if Valgrind aborted or crashed after
+identifying problems in your program, there's a good chance
+that fixing those problems will prevent Valgrind aborting or
+crashing, especially if it happened in m_mallocfree.c.
+
+If that doesn't help, please report this bug to: www.valgrind.org
+
+In the bug report, send all the above text, the valgrind
+version, and what OS and version you are using. Thanks.
+
=================================================
./valgrind-old/exp-ptrcheck/tests/pth_specific.stderr.diff
=================================================
--- pth_specific.stderr.exp 2009-07-10 03:01:14.000000000 +1000
+++ pth_specific.stderr.out 2009-07-10 03:17:33.000000000 +1000
@@ -5,12 +5,33 @@
legitimate range, a block of size 100 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (pth_specific.c:17)
+t8 = CASle(t22::t18->t1)
+exp-ptrcheck: h_main.c:4820 (schemeS): the 'impossible' happened.
+ at 0x........: report_and_quit (m_libcassert.c:145)
+ by 0x........: vgPlain_assert_fail (m_libcassert.c:216)
+ by 0x........: h_instrument (h_main.c:4820)
+ by 0x........: LibVEX_Translate (main_main.c:500)
+ by 0x........: vgPlain_translate (m_translate.c:1517)
+ by 0x........: vgPlain_scheduler (scheduler.c:844)
+ by 0x........: run_a_thread_NORETURN (syswrap-linux.c:91)
-Invalid read of size 1
- at 0x........: main (pth_specific.c:27)
- Address 0x........ is 1 bytes before the accessing pointer's
- legitimate range, a block of size 100 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (pth_specific.c:17)
+sched status:
+ running_tid=1
+
+Thread 1: status = VgTs_Runnable
+ at 0x........: pthread_key_create (in /...libpthread...)
+ by 0x........: main (pth_specific.c:22)
+
+
+Note: see also the FAQ in the source distribution.
+It contains workarounds to several common problems.
+In particular, if Valgrind aborted or crashed after
+identifying problems in your program, there's a good chance
+that fixing those problems will prevent Valgrind aborting or
+crashing, especially if it happened in m_mallocfree.c.
+
+If that doesn't help, please report this bug to: www.valgrind.org
+
+In the bug report, send all the above text, the valgrind
+version, and what OS and version you are using. Thanks.
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/memcheck/tests/atomic_incs.stdout.diff-32bit
=================================================
--- atomic_incs.stdout.exp-32bit 2009-07-10 03:02:36.000000000 +1000
+++ atomic_incs.stdout.out 2009-07-10 03:12:20.000000000 +1000
@@ -0,0 +1,7 @@
+parent, pre-fork
+child
+parent, pre-fork
+parent
+FINAL VALUES: 8 bit -74, 16 bit 32694, 32 bit 6913974, 64 bit 0
+PASS
+parent exits
=================================================
./valgrind-old/memcheck/tests/atomic_incs.stdout.diff-64bit
=================================================
--- atomic_incs.stdout.exp-64bit 2009-07-10 03:02:36.000000000 +1000
+++ atomic_incs.stdout.out 2009-07-10 03:12:20.000000000 +1000
@@ -2,6 +2,6 @@
child
parent, pre-fork
parent
-FINAL VALUES: 8 bit -74, 16 bit 32694, 32 bit 6913974, 64 bit 682858642110
+FINAL VALUES: 8 bit -74, 16 bit 32694, 32 bit 6913974, 64 bit 0
PASS
parent exits
=================================================
./valgrind-old/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2009-07-10 03:02:21.000000000 +1000
+++ stack_switch.stderr.out 2009-07-10 03:12:33.000000000 +1000
@@ -0,0 +1,2 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
=================================================
./valgrind-old/memcheck/tests/origin1-yes.stderr.diff
=================================================
--- origin1-yes.stderr.exp 2009-07-10 03:02:36.000000000 +1000
+++ origin1-yes.stderr.out 2009-07-10 03:12:52.000000000 +1000
@@ -47,7 +47,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin1-yes.c:101)
Uninitialised value was created
- at 0x........: brk (in /...libc...)
+ at 0x........: ??? (in /lib32/ld-2.9.so)
by 0x........: sbrk (in /...libc...)
by 0x........: main (origin1-yes.c:98)
=================================================
./valgrind-old/memcheck/tests/origin1-yes.stderr.diff-darwin
=================================================
--- origin1-yes.stderr.exp-darwin 2009-07-10 03:02:36.000000000 +1000
+++ origin1-yes.stderr.out 2009-07-10 03:12:52.000000000 +1000
@@ -44,7 +44,12 @@
Undef 7 of 8 (brk)
-(no complaint; sbrk initialises memory on Darwin)
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:101)
+ Uninitialised value was created
+ at 0x........: ??? (in /lib32/ld-2.9.so)
+ by 0x........: sbrk (in /...libc...)
+ by 0x........: main (origin1-yes.c:98)
Undef 8 of 8 (MAKE_MEM_UNDEFINED)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2009-07-10 03:02:36.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-10 03:12:56.000000000 +1000
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,7 +27,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -38,7 +38,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -49,7 +49,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -60,7 +60,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -71,7 +71,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -82,7 +82,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -93,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -104,7 +104,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2009-07-10 03:02:36.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-10 03:12:56.000000000 +1000
@@ -28,7 +28,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -38,7 +39,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -48,7 +50,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -58,7 +61,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -68,7 +72,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -78,7 +83,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2009-07-10 03:02:36.000000000 +1000
+++ origin5-bz2.stderr.out 2009-07-10 03:12:56.000000000 +1000
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,85 +9,91 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2854)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2858)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
<truncated beyond 100 lines>
=================================================
./valgrind-old/none/tests/empty-exe.stderr.diff
=================================================
--- empty-exe.stderr.exp 2009-07-10 03:04:48.000000000 +1000
+++ empty-exe.stderr.out 2009-07-10 03:14:14.000000000 +1000
@@ -1,2 +1,2 @@
-
-
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./empty-exe: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/linux/mremap2.stdout.diff
=================================================
--- mremap2.stdout.exp 2009-07-10 03:04:36.000000000 +1000
+++ mremap2.stdout.out 2009-07-10 03:14:18.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,40 +173,40 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
...
[truncated message content] |
|
From: Nicholas N. <n.n...@gm...> - 2009-07-09 16:36:06
|
Nightly build on ocean ( Ubuntu 9.04, x86_64 )
Started at 2009-07-10 02:00:01 EST
Ended at 2009-07-10 02:35:54 EST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 501 tests, 1 stderr failure, 1 stdout failure, 0 post failures ==
none/tests/linux/mremap2 (stdout)
drd/tests/pth_cleanup_handler (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
== 501 tests, 3 stderr failures, 1 stdout failure, 0 post failures ==
none/tests/linux/mremap2 (stdout)
drd/tests/pth_cleanup_handler (stderr)
exp-ptrcheck/tests/pth_create (stderr)
exp-ptrcheck/tests/pth_specific (stderr)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Fri Jul 10 02:15:15 2009
--- new.short Fri Jul 10 02:35:54 2009
***************
*** 8,14 ****
! == 501 tests, 3 stderr failures, 1 stdout failure, 0 post failures ==
none/tests/linux/mremap2 (stdout)
drd/tests/pth_cleanup_handler (stderr)
- exp-ptrcheck/tests/pth_create (stderr)
- exp-ptrcheck/tests/pth_specific (stderr)
--- 8,12 ----
! == 501 tests, 1 stderr failure, 1 stdout failure, 0 post failures ==
none/tests/linux/mremap2 (stdout)
drd/tests/pth_cleanup_handler (stderr)
=================================================
./valgrind-new/drd/tests/pth_cleanup_handler.stderr.diff
=================================================
--- pth_cleanup_handler.stderr.exp 2009-07-10 02:20:43.000000000 +1000
+++ pth_cleanup_handler.stderr.out 2009-07-10 02:34:52.000000000 +1000
@@ -1,6 +1,1227 @@
Cleanup handler has been called.
+Thread 3:
+Conflicting load by thread 3/3 at 0x........ size 1
+ at 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-new/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Allocation context: BSS section of libgcc_s.so.1
+Other segment start (thread 2/2)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
+ by 0x........: dl_iterate_phdr (in /...libc...)
+ by 0x........: _Unwind_Find_FDE (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-new/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment end (thread 2/2)
+ at 0x........: (within libpthread-?.?.so)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-new/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment start (thread 2/2)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
+ by 0x........: dl_iterate_phdr (in /...libc...)
+ by 0x........: _Unwind_Find_FDE (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-new/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment end (thread 2/2)
+ at 0x........: (within libpthread-?.?.so)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-new/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment start (thread 2/2)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
+ by 0x........: dl_iterate_phdr (in /...libc...)
+ by 0x........: _Unwind_Find_FDE (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-new/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment end (thread 2/2)
+ at 0x........: (within libpthread-?.?.so)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-new/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment start (thread 2/2)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
+ by 0x........: dl_iterate_phdr (in /...libc...)
+ by 0x........: _Unwind_Find_FDE (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-new/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment end (thread 2/2)
+ at 0x........: (within libpthread-?.?.so)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
<truncated beyond 100 lines>
=================================================
./valgrind-new/none/tests/linux/mremap2.stdout.diff
=================================================
--- mremap2.stdout.exp 2009-07-10 02:19:57.000000000 +1000
+++ mremap2.stdout.out 2009-07-10 02:32:49.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,40 +173,40 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
=================================================
./valgrind-new/none/tests/linux/mremap2.stdout.diff-glibc28-amd64
=================================================
--- mremap2.stdout.exp-glibc28-amd64 2009-07-10 02:19:57.000000000 +1000
+++ mremap2.stdout.out 2009-07-10 02:32:49.000000000 +1000
@@ -188,37 +188,37 @@
maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
maymv 1 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
maymv 1 fixed 0 newsz 31 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................
..................................................
maymv 1 fixed 0 newsz 31 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................
..................................................
=================================================
./valgrind-new/none/tests/linux/mremap2.stdout.diff2
=================================================
--- mremap2.stdout.exp2 2009-07-10 02:19:57.000000000 +1000
+++ mremap2.stdout.out 2009-07-10 02:32:49.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,52 +173,52 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
=================================================
./valgrind-old/drd/tests/pth_cleanup_handler.stderr.diff
=================================================
--- pth_cleanup_handler.stderr.exp 2009-07-10 02:01:43.000000000 +1000
+++ pth_cleanup_handler.stderr.out 2009-07-10 02:14:11.000000000 +1000
@@ -1,6 +1,1227 @@
Cleanup handler has been called.
+Thread 3:
+Conflicting load by thread 3/3 at 0x........ size 1
+ at 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-old/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Allocation context: BSS section of libgcc_s.so.1
+Other segment start (thread 2/2)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
+ by 0x........: dl_iterate_phdr (in /...libc...)
+ by 0x........: _Unwind_Find_FDE (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-old/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment end (thread 2/2)
+ at 0x........: (within libpthread-?.?.so)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-old/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment start (thread 2/2)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
+ by 0x........: dl_iterate_phdr (in /...libc...)
+ by 0x........: _Unwind_Find_FDE (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-old/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment end (thread 2/2)
+ at 0x........: (within libpthread-?.?.so)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-old/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment start (thread 2/2)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
+ by 0x........: dl_iterate_phdr (in /...libc...)
+ by 0x........: _Unwind_Find_FDE (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-old/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment end (thread 2/2)
+ at 0x........: (within libpthread-?.?.so)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-old/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment start (thread 2/2)
+ at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
+ by 0x........: dl_iterate_phdr (in /...libc...)
+ by 0x........: _Unwind_Find_FDE (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
+ by 0x........: _Unwind_ForcedUnwind (in /lib/libgcc_s.so.1)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: f (in /home/njn/grind/nightly/valgrind-old/drd/tests/pth_cleanup_handler)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Other segment end (thread 2/2)
+ at 0x........: (within libpthread-?.?.so)
+ by 0x........: ??? (in /lib/libgcc_s.so.1)
<truncated beyond 100 lines>
=================================================
./valgrind-old/exp-ptrcheck/tests/pth_create.stderr.diff
=================================================
--- pth_create.stderr.exp 2009-07-10 02:00:30.000000000 +1000
+++ pth_create.stderr.out 2009-07-10 02:15:09.000000000 +1000
@@ -1,18 +1,31 @@
-Invalid write of size 4
+t9 = CASle(t27::t16->t15)
+exp-ptrcheck: h_main.c:4820 (schemeS): the 'impossible' happened.
+ at 0x........: report_and_quit (m_libcassert.c:145)
+ by 0x........: vgPlain_assert_fail (m_libcassert.c:216)
+ by 0x........: h_instrument (h_main.c:4820)
+ by 0x........: LibVEX_Translate (main_main.c:500)
+ by 0x........: vgPlain_translate (m_translate.c:1517)
+ by 0x........: vgPlain_scheduler (scheduler.c:844)
+ by 0x........: run_a_thread_NORETURN (syswrap-linux.c:91)
+
+sched status:
+ running_tid=1
+
+Thread 1: status = VgTs_Runnable
at 0x........: pthread_key_create (in /...libpthread...)
by 0x........: main (pth_create.c:17)
- Address 0x........ is 1 bytes inside the accessing pointer's
- legitimate range, a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (pth_create.c:14)
-Invalid write of size 4
- at 0x........: pthread_key_create (in /...libpthread...)
- by 0x........: main (pth_create.c:19)
- Address 0x........ is 0 bytes inside the accessing pointer's
- once-legitimate range, a block of size 4 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (pth_create.c:18)
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+Note: see also the FAQ in the source distribution.
+It contains workarounds to several common problems.
+In particular, if Valgrind aborted or crashed after
+identifying problems in your program, there's a good chance
+that fixing those problems will prevent Valgrind aborting or
+crashing, especially if it happened in m_mallocfree.c.
+
+If that doesn't help, please report this bug to: www.valgrind.org
+
+In the bug report, send all the above text, the valgrind
+version, and what OS and version you are using. Thanks.
+
=================================================
./valgrind-old/exp-ptrcheck/tests/pth_specific.stderr.diff
=================================================
--- pth_specific.stderr.exp 2009-07-10 02:00:30.000000000 +1000
+++ pth_specific.stderr.out 2009-07-10 02:15:10.000000000 +1000
@@ -5,12 +5,33 @@
legitimate range, a block of size 100 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (pth_specific.c:17)
+t9 = CASle(t27::t16->t15)
+exp-ptrcheck: h_main.c:4820 (schemeS): the 'impossible' happened.
+ at 0x........: report_and_quit (m_libcassert.c:145)
+ by 0x........: vgPlain_assert_fail (m_libcassert.c:216)
+ by 0x........: h_instrument (h_main.c:4820)
+ by 0x........: LibVEX_Translate (main_main.c:500)
+ by 0x........: vgPlain_translate (m_translate.c:1517)
+ by 0x........: vgPlain_scheduler (scheduler.c:844)
+ by 0x........: run_a_thread_NORETURN (syswrap-linux.c:91)
-Invalid read of size 1
- at 0x........: main (pth_specific.c:27)
- Address 0x........ is 1 bytes before the accessing pointer's
- legitimate range, a block of size 100 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (pth_specific.c:17)
+sched status:
+ running_tid=1
+
+Thread 1: status = VgTs_Runnable
+ at 0x........: pthread_key_create (in /...libpthread...)
+ by 0x........: main (pth_specific.c:22)
+
+
+Note: see also the FAQ in the source distribution.
+It contains workarounds to several common problems.
+In particular, if Valgrind aborted or crashed after
+identifying problems in your program, there's a good chance
+that fixing those problems will prevent Valgrind aborting or
+crashing, especially if it happened in m_mallocfree.c.
+
+If that doesn't help, please report this bug to: www.valgrind.org
+
+In the bug report, send all the above text, the valgrind
+version, and what OS and version you are using. Thanks.
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/none/tests/linux/mremap2.stdout.diff
=================================================
--- mremap2.stdout.exp 2009-07-10 02:01:19.000000000 +1000
+++ mremap2.stdout.out 2009-07-10 02:12:06.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,40 +173,40 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
=================================================
./valgrind-old/none/tests/linux/mremap2.stdout.diff-glibc28-amd64
=================================================
--- mremap2.stdout.exp-glibc28-amd64 2009-07-10 02:01:19.000000000 +1000
+++ mremap2.stdout.out 2009-07-10 02:12:06.000000000 +1000
@@ -188,37 +188,37 @@
maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
maymv 1 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
maymv 1 fixed 0 newsz 31 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................
..................................................
maymv 1 fixed 0 newsz 31 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................
..................................................
=================================================
./valgrind-old/none/tests/linux/mremap2.stdout.diff2
=================================================
--- mremap2.stdout.exp2 2009-07-10 02:01:19.000000000 +1000
+++ mremap2.stdout.out 2009-07-10 02:12:06.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,52 +173,52 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
|
|
From: Michael S. <ms...@ap...> - 2009-07-09 15:56:12
|
On Jul 8, 2009, at 10:03 PM, Nicholas Nethercote wrote: > ... > There was a discussion a little while ago about setting up nightly > regression testing for the Mac OS X port. Three people volunteered, > but for whatever reason, no testing is set up at the moment. At least > one of the people had trouble with the nightly script -- it ran ok > when invoked by hand, but failed when invoked via cron (or whatever > Apple's equivalent is). FWIW, I'm still working on this, but no progress yet. ___________________________________________________ Michael Sweet, Senior Printing System Engineer |
|
From: <sv...@va...> - 2009-07-09 10:52:13
|
Author: sewardj
Date: 2009-07-09 11:52:03 +0100 (Thu, 09 Jul 2009)
New Revision: 10418
Log:
Add support for IRStmt_CAS to the h_ instrumenter. This should stop
exp-ptrcheck asserting on threaded programs on x86 and amd64. Vast
amounts of fiddly complication that makes my head hurt. Urr.
Modified:
trunk/exp-ptrcheck/h_main.c
Modified: trunk/exp-ptrcheck/h_main.c
===================================================================
--- trunk/exp-ptrcheck/h_main.c 2009-07-09 10:45:11 UTC (rev 10417)
+++ trunk/exp-ptrcheck/h_main.c 2009-07-09 10:52:03 UTC (rev 10418)
@@ -2996,7 +2996,7 @@
/* Apply nonptr_or_unknown to all the words intersecting
[a, a+len). */
-static VG_REGPARM(2)
+static inline VG_REGPARM(2)
void nonptr_or_unknown_range ( Addr a, SizeT len )
{
const SizeT wszB = sizeof(UWord);
@@ -3009,6 +3009,34 @@
}
}
+// Write to shadow memory, for a 32-bit store. Must only
+// be used on 32-bit targets.
+static inline VG_REGPARM(2)
+void do_shadow_store4_P( Addr m, Seg* vseg )
+{
+ tl_assert(sizeof(UWord) == 4); /* DO NOT REMOVE */
+ if (VG_IS_4_ALIGNED(m)) {
+ set_mem_vseg( m, vseg );
+ } else {
+ // straddling two words
+ nonptr_or_unknown_range(m, 4);
+ }
+}
+
+// Write to shadow memory, for a 64-bit store. Must only
+// be used on 64-bit targets.
+static inline VG_REGPARM(2)
+void do_shadow_store8_P( Addr m, Seg* vseg )
+{
+ tl_assert(sizeof(UWord) == 8); /* DO NOT REMOVE */
+ if (VG_IS_8_ALIGNED(m)) {
+ set_mem_vseg( m, vseg );
+ } else {
+ // straddling two words
+ nonptr_or_unknown_range(m, 8);
+ }
+}
+
// This handles 128 bit stores on 64 bit targets. The
// store data is passed in 2 pieces, the most significant
// bits first.
@@ -3117,12 +3145,7 @@
check_load_or_store(/*is_write*/True, m, 8, mptr_vseg);
// Actually *do* the STORE here
*(ULong*)m = t;
- if (VG_IS_8_ALIGNED(m)) {
- set_mem_vseg( m, t_vseg );
- } else {
- // straddling two words
- nonptr_or_unknown_range(m, 8);
- }
+ do_shadow_store8_P( m, t_vseg );
}
// This handles 64 bit store-conditionals on 64 bit targets. It must
@@ -3139,12 +3162,8 @@
check_load_or_store(/*is_write*/True, m, 8, mptr_vseg);
// Actually *do* the STORE here
success = do_store_conditional_64( m, t );
- if (VG_IS_8_ALIGNED(m)) {
- set_mem_vseg( m, t_vseg );
- } else {
- // straddling two words
- nonptr_or_unknown_range(m, 8);
- }
+ if (success)
+ do_shadow_store8_P( m, t_vseg );
return success;
}
@@ -3161,12 +3180,7 @@
check_load_or_store(/*is_write*/True, m, 4, mptr_vseg);
// Actually *do* the STORE here
*(UInt*)m = t;
- if (VG_IS_4_ALIGNED(m)) {
- set_mem_vseg( m, t_vseg );
- } else {
- // straddling two words
- nonptr_or_unknown_range(m, 4);
- }
+ do_shadow_store4_P( m, t_vseg );
}
// This handles 32 bit store-conditionals on 32 bit targets. It must
@@ -3183,12 +3197,8 @@
check_load_or_store(/*is_write*/True, m, 4, mptr_vseg);
// Actually *do* the STORE here
success = do_store_conditional_32( m, t );
- if (VG_IS_4_ALIGNED(m)) {
- set_mem_vseg( m, t_vseg );
- } else {
- // straddling two words
- nonptr_or_unknown_range(m, 4);
- }
+ if (success)
+ do_shadow_store4_P( m, t_vseg );
return success;
}
@@ -3218,7 +3228,8 @@
check_load_or_store(/*is_write*/True, m, 4, mptr_vseg);
// Actually *do* the STORE here
success = do_store_conditional_32( m, t );
- nonptr_or_unknown_range(m, 4);
+ if (success)
+ nonptr_or_unknown_range(m, 4);
return success;
}
@@ -3852,8 +3863,10 @@
}
/* Version of gen_dirty_W_WW with no return value. Callee must be a
- VG_REGPARM(2) function.*/
-static void gen_dirty_v_WW ( PCEnv* pce, void* h_fn, HChar* h_nm,
+ VG_REGPARM(2) function. If guard is non-NULL then it is used to
+ conditionalise the call. */
+static void gen_dirty_v_WW ( PCEnv* pce, IRExpr* guard,
+ void* h_fn, HChar* h_nm,
IRExpr* a1, IRExpr* a2 )
{
IRDirty* di;
@@ -3864,6 +3877,8 @@
di = unsafeIRDirty_0_N( 2/*regparms*/,
h_nm, VG_(fnptr_to_fnentry)( h_fn ),
mkIRExprVec_2( a1, a2 ) );
+ if (guard)
+ di->guard = guard;
stmt( 'I', pce, IRStmt_Dirty(di) );
}
@@ -4255,9 +4270,10 @@
static
void gen_call_nonptr_or_unknown_range ( PCEnv* pce,
+ IRExpr* guard,
IRAtom* addr, IRAtom* len )
{
- gen_dirty_v_WW( pce,
+ gen_dirty_v_WW( pce, guard,
&nonptr_or_unknown_range,
"nonptr_or_unknown_range",
addr, len );
@@ -4298,6 +4314,220 @@
switch (st->tag) {
+ case Ist_CAS: {
+ IRCAS* cas = st->Ist.CAS.details;
+ IRType elTy = typeOfIRExpr(pce->sb->tyenv, cas->expdLo);
+ if (cas->oldHi == IRTemp_INVALID) {
+ /* ------------ SINGLE CAS ------------ */
+ /* -- single cas -- 32 bits, on 32-bit host -- */
+ /* -- single cas -- 64 bits, on 64-bit host -- */
+ /* -- viz, single cas, native-word case -- */
+ if ( (pce->gWordTy == Ity_I32 && elTy == Ity_I32)
+ || (pce->gWordTy == Ity_I64 && elTy == Ity_I64) ) {
+ // 32 bit host translation scheme; 64-bit is analogous
+ // old# = check_load4_P(addr, addr#)
+ // old = CAS(addr:expd->new) [COPY]
+ // success = CmpEQ32(old,expd)
+ // if (success) do_shadow_store4_P(addr, new#)
+ IRTemp success;
+ Bool is64 = elTy == Ity_I64;
+ IROp cmpEQ = is64 ? Iop_CmpEQ64 : Iop_CmpEQ32;
+ void* r_fn = is64 ? &check_load8_P : &check_load4_P;
+ HChar* r_nm = is64 ? "check_load8_P" : "check_load4_P";
+ void* w_fn = is64 ? &do_shadow_store8_P : &do_shadow_store4_P;
+ void* w_nm = is64 ? "do_shadow_store8_P" : "do_shadow_store4_P";
+ IRExpr* addr = cas->addr;
+ IRExpr* addrV = schemeEw_Atom(pce, addr);
+ IRTemp old = cas->oldLo;
+ IRTemp oldV = newShadowTmp(pce, old);
+ IRExpr* nyu = cas->dataLo;
+ IRExpr* nyuV = schemeEw_Atom(pce, nyu);
+ IRExpr* expd = cas->expdLo;
+ assign( 'I', pce, oldV,
+ mkexpr( gen_dirty_W_WW( pce, r_fn, r_nm, addr, addrV )));
+ stmt( 'C', pce, st );
+ success = newTemp(pce, Ity_I1, NonShad);
+ assign('I', pce, success, binop(cmpEQ, mkexpr(old), expd));
+ gen_dirty_v_WW( pce, mkexpr(success), w_fn, w_nm, addr, nyuV );
+ }
+ else
+ /* -- single cas -- 8 or 16 bits, on 32-bit host -- */
+ /* -- viz, single cas, 32-bit subword cases -- */
+ if (pce->gWordTy == Ity_I32
+ && (elTy == Ity_I8 || elTy == Ity_I16)) {
+ // 8-bit translation scheme; 16-bit is analogous
+ // check_load1(addr, addr#)
+ // old = CAS(addr:expd->new) [COPY]
+ // success = CmpEQ8(old,expd)
+ // if (success) nonptr_or_unknown_range(addr, 1)
+ IRTemp success;
+ Bool is16 = elTy == Ity_I16;
+ IRExpr* addr = cas->addr;
+ IRExpr* addrV = schemeEw_Atom(pce, addr);
+ IRTemp old = cas->oldLo;
+ IRExpr* expd = cas->expdLo;
+ void* h_fn = is16 ? &check_load2 : &check_load1;
+ HChar* h_nm = is16 ? "check_load2" : "check_load1";
+ IROp cmpEQ = is16 ? Iop_CmpEQ16 : Iop_CmpEQ8;
+ Int szB = is16 ? 2 : 1;
+ gen_dirty_v_WW( pce, NULL, h_fn, h_nm, addr, addrV );
+ stmt( 'C', pce, st );
+ success = newTemp(pce, Ity_I1, NonShad);
+ assign('I', pce, success,
+ binop(cmpEQ, mkexpr(old), expd));
+ gen_call_nonptr_or_unknown_range( pce, mkexpr(success),
+ addr, mkIRExpr_HWord(szB) );
+ }
+ else
+ /* -- single cas -- 8, 16 or 32 bits, on 64-bit host -- */
+ /* -- viz, single cas, 64-bit subword cases -- */
+ if (pce->gWordTy == Ity_I64
+ && (elTy == Ity_I8 || elTy == Ity_I16 || elTy == Ity_I32)) {
+ // 8-bit translation scheme; 16/32-bit are analogous
+ // check_load1(addr, addr#)
+ // old = CAS(addr:expd->new) [COPY]
+ // success = CmpEQ8(old,expd)
+ // if (success) nonptr_or_unknown_range(addr, 1)
+ IRTemp success;
+ Bool is16 = elTy == Ity_I16;
+ Bool is32 = elTy == Ity_I32;
+ IRExpr* addr = cas->addr;
+ IRExpr* addrV = schemeEw_Atom(pce, addr);
+ IRTemp old = cas->oldLo;
+ IRExpr* expd = cas->expdLo;
+ void* h_fn = is32 ? &check_load4
+ : (is16 ? &check_load2 : &check_load1);
+ HChar* h_nm = is32 ? "check_load4"
+ : (is16 ? "check_load2" : "check_load1");
+ IROp cmpEQ = is32 ? Iop_CmpEQ32
+ : (is16 ? Iop_CmpEQ16 : Iop_CmpEQ8);
+ Int szB = is32 ? 4 : (is16 ? 2 : 1);
+ gen_dirty_v_WW( pce, NULL, h_fn, h_nm, addr, addrV );
+ stmt( 'C', pce, st );
+ success = newTemp(pce, Ity_I1, NonShad);
+ assign('I', pce, success,
+ binop(cmpEQ, mkexpr(old), expd));
+ gen_call_nonptr_or_unknown_range( pce, mkexpr(success),
+ addr, mkIRExpr_HWord(szB) );
+ }
+ else
+ goto unhandled;
+ } else {
+ /* ------------ DOUBLE CAS ------------ */
+ /* Punt on bigendian DCAS. In fact it's probably trivial
+ to do; just swap the individual shadow loads/stores
+ around in memory, but we'd have to verify it, and there
+ is no use case. So punt. */
+ if (cas->end != Iend_LE)
+ goto unhandled;
+ /* -- double cas -- 2 x 32 bits, on 32-bit host -- */
+ /* -- double cas -- 2 x 64 bits, on 64-bit host -- */
+ /* -- viz, double cas, native-word case -- */
+ if ( (pce->gWordTy == Ity_I32 && elTy == Ity_I32)
+ || (pce->gWordTy == Ity_I64 && elTy == Ity_I64) ) {
+ // 32 bit host translation scheme; 64-bit is analogous
+ // oldHi# = check_load4_P(addr+4, addr#)
+ // oldLo# = check_load4_P(addr+0, addr#)
+ // oldHi/Lo = DCAS(addr:expdHi/Lo->newHi/Lo) [COPY]
+ // success = CmpEQ32(oldHi,expdHi) && CmpEQ32(oldLo,expdLo)
+ // = ((oldHi ^ expdHi) | (oldLo ^ expdLo)) == 0
+ // if (success) do_shadow_store4_P(addr+4, newHi#)
+ // if (success) do_shadow_store4_P(addr+0, newLo#)
+ IRTemp diffHi, diffLo, diff, success, addrpp;
+ Bool is64 = elTy == Ity_I64;
+ void* r_fn = is64 ? &check_load8_P : &check_load4_P;
+ HChar* r_nm = is64 ? "check_load8_P" : "check_load4_P";
+ void* w_fn = is64 ? &do_shadow_store8_P
+ : &do_shadow_store4_P;
+ void* w_nm = is64 ? "do_shadow_store8_P"
+ : "do_shadow_store4_P";
+ IROp opADD = is64 ? Iop_Add64 : Iop_Add32;
+ IROp opXOR = is64 ? Iop_Xor64 : Iop_Xor32;
+ IROp opOR = is64 ? Iop_Or64 : Iop_Or32;
+ IROp opCmpEQ = is64 ? Iop_CmpEQ64 : Iop_CmpEQ32;
+ IRExpr* step = is64 ? mkU64(8) : mkU32(4);
+ IRExpr* zero = is64 ? mkU64(0) : mkU32(0);
+ IRExpr* addr = cas->addr;
+ IRExpr* addrV = schemeEw_Atom(pce, addr);
+ IRTemp oldLo = cas->oldLo;
+ IRTemp oldLoV = newShadowTmp(pce, oldLo);
+ IRTemp oldHi = cas->oldHi;
+ IRTemp oldHiV = newShadowTmp(pce, oldHi);
+ IRExpr* nyuLo = cas->dataLo;
+ IRExpr* nyuLoV = schemeEw_Atom(pce, nyuLo);
+ IRExpr* nyuHi = cas->dataHi;
+ IRExpr* nyuHiV = schemeEw_Atom(pce, nyuHi);
+ IRExpr* expdLo = cas->expdLo;
+ IRExpr* expdHi = cas->expdHi;
+ tl_assert(elTy == Ity_I32 || elTy == Ity_I64);
+ tl_assert(pce->gWordTy == elTy);
+ addrpp = newTemp(pce, elTy, NonShad);
+ assign('I', pce, addrpp, binop(opADD, addr, step));
+ assign('I', pce, oldHiV,
+ mkexpr( gen_dirty_W_WW( pce, r_fn, r_nm,
+ mkexpr(addrpp), addrV ))
+ );
+ assign('I', pce, oldLoV,
+ mkexpr( gen_dirty_W_WW( pce, r_fn, r_nm,
+ addr, addrV ))
+ );
+ stmt( 'C', pce, st );
+ diffHi = newTemp(pce, elTy, NonShad);
+ assign('I', pce, diffHi,
+ binop(opXOR, mkexpr(oldHi), expdHi));
+ diffLo = newTemp(pce, elTy, NonShad);
+ assign('I', pce, diffLo,
+ binop(opXOR, mkexpr(oldLo), expdLo));
+ diff = newTemp(pce, elTy, NonShad);
+ assign('I', pce, diff,
+ binop(opOR, mkexpr(diffHi), mkexpr(diffLo)));
+ success = newTemp(pce, Ity_I1, NonShad);
+ assign('I', pce, success,
+ binop(opCmpEQ, mkexpr(diff), zero));
+ gen_dirty_v_WW( pce, mkexpr(success),
+ w_fn, w_nm, mkexpr(addrpp), nyuHiV );
+ gen_dirty_v_WW( pce, mkexpr(success),
+ w_fn, w_nm, addr, nyuLoV );
+ }
+ else
+ /* -- double cas -- 2 x 32 bits, on 64-bit host -- */
+ if (pce->gWordTy == Ity_I64 && elTy == Ity_I32) {
+ // check_load8(addr, addr#)
+ // oldHi/Lo = DCAS(addr:expdHi/Lo->newHi/Lo) [COPY]
+ // success = CmpEQ32(oldHi,expdHi) && CmpEQ32(oldLo,expdLo)
+ // = ((oldHi ^ expdHi) | (oldLo ^ expdLo)) == 0
+ // if (success) nonptr_or_unknown_range(addr, 8)
+ IRTemp diffHi, diffLo, diff, success;
+ IRExpr* addr = cas->addr;
+ IRExpr* addrV = schemeEw_Atom(pce, addr);
+ IRTemp oldLo = cas->oldLo;
+ IRTemp oldHi = cas->oldHi;
+ IRExpr* expdLo = cas->expdLo;
+ IRExpr* expdHi = cas->expdHi;
+ gen_dirty_v_WW( pce, NULL, &check_load8, "check_load8",
+ addr, addrV );
+ stmt( 'C', pce, st );
+ diffHi = newTemp(pce, Ity_I32, NonShad);
+ assign('I', pce, diffHi,
+ binop(Iop_Xor32, mkexpr(oldHi), expdHi));
+ diffLo = newTemp(pce, Ity_I32, NonShad);
+ assign('I', pce, diffLo,
+ binop(Iop_Xor32, mkexpr(oldLo), expdLo));
+ diff = newTemp(pce, Ity_I32, NonShad);
+ assign('I', pce, diff,
+ binop(Iop_Or32, mkexpr(diffHi), mkexpr(diffLo)));
+ success = newTemp(pce, Ity_I1, NonShad);
+ assign('I', pce, success,
+ binop(Iop_CmpEQ32, mkexpr(diff), mkU32(0)));
+ gen_call_nonptr_or_unknown_range( pce, mkexpr(success),
+ addr, mkU64(8) );
+ }
+ else
+ goto unhandled;
+ }
+ break;
+ }
+
case Ist_Dirty: {
Int i;
IRDirty* di;
@@ -4353,7 +4583,7 @@
if (di->mFx != Ifx_None) {
tl_assert(di->mAddr && isIRAtom(di->mAddr));
tl_assert(di->mSize > 0);
- gen_call_nonptr_or_unknown_range( pce, di->mAddr,
+ gen_call_nonptr_or_unknown_range( pce, NULL, di->mAddr,
mkIRExpr_HWord(di->mSize));
}
break;
@@ -4750,7 +4980,7 @@
mkexpr( gen_dirty_W_WW( pce, h_fn, h_nm,
addr, addrv )) );
} else {
- gen_dirty_v_WW( pce, h_fn, h_nm, addr, addrv );
+ gen_dirty_v_WW( pce, NULL, h_fn, h_nm, addr, addrv );
}
} else {
/* 64 bit host/guest (cough, cough) */
@@ -4779,7 +5009,7 @@
mkexpr( gen_dirty_W_WW( pce, h_fn, h_nm,
addr, addrv )) );
} else {
- gen_dirty_v_WW( pce, h_fn, h_nm, addr, addrv );
+ gen_dirty_v_WW( pce, NULL, h_fn, h_nm, addr, addrv );
}
}
/* copy the original -- must happen after the helper call */
|
|
From: <sv...@va...> - 2009-07-09 10:45:24
|
Author: sewardj Date: 2009-07-09 11:45:11 +0100 (Thu, 09 Jul 2009) New Revision: 10417 Log: Liberalise IRTemp bookkeeping in the h_ instrumenter, so as to allow addition of non-shadow IRTemps without causing it to collapse into assertion failures. This changes is a simplified version of what was committed in svn://svn.valgrind.org/valgrind/branches/DCAS/memcheck/mc_translate.c r10109. Modified: trunk/exp-ptrcheck/h_main.c trunk/exp-ptrcheck/sg_main.c trunk/exp-ptrcheck/sg_main.h Modified: trunk/exp-ptrcheck/h_main.c =================================================================== --- trunk/exp-ptrcheck/h_main.c 2009-07-09 09:26:12 UTC (rev 10416) +++ trunk/exp-ptrcheck/h_main.c 2009-07-09 10:45:11 UTC (rev 10417) @@ -3447,25 +3447,62 @@ abstractify the sg_ instrumentation. See comments in sg_main.c's instrumentation section for further details. */ + +/* Carries info about a particular tmp. The tmp's number is not + recorded, as this is implied by (equal to) its index in the tmpMap + in PCEnv. The tmp's type is also not recorded, as this is present + in PCEnv.sb->tyenv. + + When .kind is NonShad, .shadow may give the identity of the temp + currently holding the associated shadow value, or it may be + IRTemp_INVALID if code to compute the shadow has not yet been + emitted. + + When .kind is Shad tmp holds a shadow value, and so .shadow must be + IRTemp_INVALID, since it is illogical for a shadow tmp itself to be + shadowed. +*/ +typedef + enum { NonShad=1, Shad=2 } + TempKind; + +typedef + struct { + TempKind kind; + IRTemp shadow; + } + TempMapEnt; + + + /* Carries around state during Ptrcheck instrumentation. */ typedef struct { /* MODIFIED: the superblock being constructed. IRStmts are added. */ - IRSB* bb; + IRSB* sb; Bool trace; - /* MODIFIED: a table [0 .. #temps_in_original_bb-1] which maps - original temps to their current their current shadow temp. - Initially all entries are IRTemp_INVALID. Entries are added - lazily since many original temps are not used due to - optimisation prior to instrumentation. Note that only - integer temps of the guest word size are shadowed, since it - is impossible (or meaningless) to hold a pointer in any other - type of temp. */ - IRTemp* tmpMap; - Int n_originalTmps; /* for range checking */ + /* MODIFIED: a table [0 .. #temps_in_sb-1] which gives the + current kind and possibly shadow temps for each temp in the + IRSB being constructed. Note that it does not contain the + type of each tmp. If you want to know the type, look at the + relevant entry in sb->tyenv. It follows that at all times + during the instrumentation process, the valid indices for + tmpMap and sb->tyenv are identical, being 0 .. N-1 where N is + total number of NonShad and Shad temps allocated so far. + The reason for this strange split (types in one place, all + other info in another) is that we need the types to be + attached to sb so as to make it possible to do + "typeOfIRExpr(mce->bb->tyenv, ...)" at various places in the + instrumentation process. + + Note that only integer temps of the guest word size are + shadowed, since it is impossible (or meaningless) to hold a + pointer in any other type of temp. */ + XArray* /* of TempMapEnt */ qmpMap; + /* READONLY: the host word type. Needed for constructing arguments of type 'HWord' to be passed to helper functions. Ity_I32 or Ity_I64 only. */ @@ -3504,18 +3541,41 @@ sanity checker should catch all such anomalies, however. */ +/* Create a new IRTemp of type 'ty' and kind 'kind', and add it to + both the table in pce->sb and to our auxiliary mapping. Note that + newTemp may cause pce->tmpMap to resize, hence previous results + from VG_(indexXA)(pce->tmpMap) are invalidated. */ +static IRTemp newTemp ( PCEnv* pce, IRType ty, TempKind kind ) +{ + Word newIx; + TempMapEnt ent; + IRTemp tmp = newIRTemp(pce->sb->tyenv, ty); + ent.kind = kind; + ent.shadow = IRTemp_INVALID; + newIx = VG_(addToXA)( pce->qmpMap, &ent ); + tl_assert(newIx == (Word)tmp); + return tmp; +} + /* Find the tmp currently shadowing the given original tmp. If none so far exists, allocate one. */ static IRTemp findShadowTmp ( PCEnv* pce, IRTemp orig ) { - tl_assert(orig < pce->n_originalTmps); - tl_assert(pce->bb->tyenv->types[orig] == pce->gWordTy); - if (pce->tmpMap[orig] == IRTemp_INVALID) { - tl_assert(0); - pce->tmpMap[orig] - = newIRTemp(pce->bb->tyenv, pce->gWordTy); + TempMapEnt* ent; + /* VG_(indexXA) range-checks 'orig', hence no need to check + here. */ + ent = (TempMapEnt*)VG_(indexXA)( pce->qmpMap, (Word)orig ); + tl_assert(ent->kind == NonShad); + if (ent->shadow == IRTemp_INVALID) { + IRTemp shadow = newTemp( pce, pce->gWordTy, Shad ); + /* newTemp may cause pce->tmpMap to resize, hence previous results + from VG_(indexXA) are invalid. */ + ent = (TempMapEnt*)VG_(indexXA)( pce->qmpMap, (Word)orig ); + tl_assert(ent->kind == NonShad); + tl_assert(ent->shadow == IRTemp_INVALID); + ent->shadow = shadow; } - return pce->tmpMap[orig]; + return ent->shadow; } /* Allocate a new shadow for the given original tmp. This means any @@ -3523,15 +3583,29 @@ necessary to give a new value to a shadow once it has been tested for undefinedness, but unfortunately IR's SSA property disallows this. Instead we must abandon the old shadow, allocate a new one - and use that instead. */ -__attribute__((noinline)) + and use that instead. + + This is the same as findShadowTmp, except we don't bother to see + if a shadow temp already existed -- we simply allocate a new one + regardless. */ static IRTemp newShadowTmp ( PCEnv* pce, IRTemp orig ) { - tl_assert(orig < pce->n_originalTmps); - tl_assert(pce->bb->tyenv->types[orig] == pce->gWordTy); - pce->tmpMap[orig] - = newIRTemp(pce->bb->tyenv, pce->gWordTy); - return pce->tmpMap[orig]; + TempMapEnt* ent; + /* VG_(indexXA) range-checks 'orig', hence no need to check + here. */ + ent = (TempMapEnt*)VG_(indexXA)( pce->qmpMap, (Word)orig ); + tl_assert(ent->kind == NonShad); + if (1) { + IRTemp shadow = newTemp( pce, pce->gWordTy, Shad ); + /* newTemp may cause pce->tmpMap to resize, hence previous results + from VG_(indexXA) are invalid. */ + ent = (TempMapEnt*)VG_(indexXA)( pce->qmpMap, (Word)orig ); + tl_assert(ent->kind == NonShad); + ent->shadow = shadow; + return shadow; + } + /* NOTREACHED */ + tl_assert(0); } @@ -3593,7 +3667,7 @@ ppIRStmt(st); VG_(printf)("\n"); } - addStmtToIRSB(pce->bb, st); + addStmtToIRSB(pce->sb, st); } /* assign value to tmp */ @@ -3622,9 +3696,9 @@ that the two types agree. */ static IRAtom* assignNew ( HChar cat, PCEnv* pce, IRType ty, IRExpr* e ) { IRTemp t; - IRType tyE = typeOfIRExpr(pce->bb->tyenv, e); + IRType tyE = typeOfIRExpr(pce->sb->tyenv, e); tl_assert(tyE == ty); /* so 'ty' is redundant (!) */ - t = newIRTemp(pce->bb->tyenv, ty); + t = newTemp(pce, ty, Shad); assign(cat, pce, t, e); return mkexpr(t); } @@ -3704,8 +3778,8 @@ IRTemp res; IRDirty* di; tl_assert(isIRAtom(a1)); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a1) == pce->gWordTy); - res = newIRTemp(pce->bb->tyenv, pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a1) == pce->gWordTy); + res = newTemp(pce, pce->gWordTy, Shad); di = unsafeIRDirty_1_N( res, 1/*regparms*/, h_nm, VG_(fnptr_to_fnentry)( h_fn ), mkIRExprVec_1( a1 ) ); @@ -3722,9 +3796,9 @@ IRDirty* di; tl_assert(isIRAtom(a1)); tl_assert(isIRAtom(a2)); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a1) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a2) == pce->gWordTy); - res = newIRTemp(pce->bb->tyenv, pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a1) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a2) == pce->gWordTy); + res = newTemp(pce, pce->gWordTy, Shad); di = unsafeIRDirty_1_N( res, 2/*regparms*/, h_nm, VG_(fnptr_to_fnentry)( h_fn ), mkIRExprVec_2( a1, a2 ) ); @@ -3742,10 +3816,10 @@ tl_assert(isIRAtom(a1)); tl_assert(isIRAtom(a2)); tl_assert(isIRAtom(a3)); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a1) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a2) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a3) == pce->gWordTy); - res = newIRTemp(pce->bb->tyenv, pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a1) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a2) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a3) == pce->gWordTy); + res = newTemp(pce, pce->gWordTy, Shad); di = unsafeIRDirty_1_N( res, 3/*regparms*/, h_nm, VG_(fnptr_to_fnentry)( h_fn ), mkIRExprVec_3( a1, a2, a3 ) ); @@ -3765,11 +3839,11 @@ tl_assert(isIRAtom(a2)); tl_assert(isIRAtom(a3)); tl_assert(isIRAtom(a4)); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a1) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a2) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a3) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a4) == pce->gWordTy); - res = newIRTemp(pce->bb->tyenv, pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a1) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a2) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a3) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a4) == pce->gWordTy); + res = newTemp(pce, pce->gWordTy, Shad); di = unsafeIRDirty_1_N( res, 3/*regparms*/, h_nm, VG_(fnptr_to_fnentry)( h_fn ), mkIRExprVec_4( a1, a2, a3, a4 ) ); @@ -3785,8 +3859,8 @@ IRDirty* di; tl_assert(isIRAtom(a1)); tl_assert(isIRAtom(a2)); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a1) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a2) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a1) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a2) == pce->gWordTy); di = unsafeIRDirty_0_N( 2/*regparms*/, h_nm, VG_(fnptr_to_fnentry)( h_fn ), mkIRExprVec_2( a1, a2 ) ); @@ -3802,9 +3876,9 @@ tl_assert(isIRAtom(a1)); tl_assert(isIRAtom(a2)); tl_assert(isIRAtom(a3)); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a1) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a2) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a3) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a1) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a2) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a3) == pce->gWordTy); di = unsafeIRDirty_0_N( 3/*regparms*/, h_nm, VG_(fnptr_to_fnentry)( h_fn ), mkIRExprVec_3( a1, a2, a3 ) ); @@ -3822,10 +3896,10 @@ tl_assert(isIRAtom(a2)); tl_assert(isIRAtom(a3)); tl_assert(isIRAtom(a4)); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a1) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a2) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a3) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a4) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a1) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a2) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a3) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a4) == pce->gWordTy); di = unsafeIRDirty_0_N( 3/*regparms*/, h_nm, VG_(fnptr_to_fnentry)( h_fn ), mkIRExprVec_4( a1, a2, a3, a4 ) ); @@ -3845,12 +3919,12 @@ tl_assert(isIRAtom(a4)); tl_assert(isIRAtom(a5)); tl_assert(isIRAtom(a6)); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a1) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a2) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a3) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a4) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a5) == pce->gWordTy); - tl_assert(typeOfIRExpr(pce->bb->tyenv, a6) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a1) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a2) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a3) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a4) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a5) == pce->gWordTy); + tl_assert(typeOfIRExpr(pce->sb->tyenv, a6) == pce->gWordTy); di = unsafeIRDirty_0_N( 3/*regparms*/, h_nm, VG_(fnptr_to_fnentry)( h_fn ), mkIRExprVec_6( a1, a2, a3, a4, a5, a6 ) ); @@ -3859,7 +3933,7 @@ static IRAtom* uwiden_to_host_word ( PCEnv* pce, IRAtom* a ) { - IRType a_ty = typeOfIRExpr(pce->bb->tyenv, a); + IRType a_ty = typeOfIRExpr(pce->sb->tyenv, a); tl_assert(isIRAtom(a)); if (pce->hWordTy == Ity_I32) { switch (a_ty) { @@ -3909,7 +3983,7 @@ return mkexpr(t); } if (e->tag == Iex_RdTmp - && typeOfIRExpr(pce->bb->tyenv, e) == Ity_I32) { + && typeOfIRExpr(pce->sb->tyenv, e) == Ity_I32) { return mkexpr( findShadowTmp(pce, e->Iex.RdTmp.tmp) ); } /* there are no other word-sized atom cases */ @@ -3922,7 +3996,7 @@ return mkexpr(t); } if (e->tag == Iex_RdTmp - && typeOfIRExpr(pce->bb->tyenv, e) == Ity_I64) { + && typeOfIRExpr(pce->sb->tyenv, e) == Ity_I64) { return mkexpr( findShadowTmp(pce, e->Iex.RdTmp.tmp) ); } /* there are no other word-sized atom cases */ @@ -4233,7 +4307,7 @@ di = st->Ist.Dirty.details; /* deal with the return tmp, if any */ if (di->tmp != IRTemp_INVALID - && typeOfIRTemp(pce->bb->tyenv, di->tmp) == pce->gWordTy) { + && typeOfIRTemp(pce->sb->tyenv, di->tmp) == pce->gWordTy) { /* di->tmp is shadowed. Set it to NONPTR. */ IRTemp dstv = newShadowTmp( pce, di->tmp ); if (pce->gWordTy == Ity_I32) { @@ -4331,7 +4405,7 @@ IntRegInfo iii; IRType ty; stmt( 'C', pce, st ); - ty = typeOfIRExpr(pce->bb->tyenv, st->Ist.Put.data); + ty = typeOfIRExpr(pce->sb->tyenv, st->Ist.Put.data); get_IntRegInfo( &iii, st->Ist.Put.offset, sizeofIRType(ty) ); if (iii.n_offsets == -1) { @@ -4376,11 +4450,11 @@ */ IRExpr* data = st->Ist.Store.data; IRExpr* addr = st->Ist.Store.addr; - IRType d_ty = typeOfIRExpr(pce->bb->tyenv, data); + IRType d_ty = typeOfIRExpr(pce->sb->tyenv, data); IRExpr* addrv = schemeEw_Atom( pce, addr ); IRTemp resSC = st->Ist.Store.resSC; if (resSC != IRTemp_INVALID) { - tl_assert(typeOfIRTemp(pce->bb->tyenv, resSC) == Ity_I1); + tl_assert(typeOfIRTemp(pce->sb->tyenv, resSC) == Ity_I1); /* viz, not something we want to shadow */ /* also, throw out all store-conditional cases that we can't handle */ @@ -4600,7 +4674,7 @@ appear, we in fact only get an atom (Iex_RdTmp or Iex_Const). */ IRExpr* e = st->Ist.WrTmp.data; - IRType e_ty = typeOfIRExpr( pce->bb->tyenv, e ); + IRType e_ty = typeOfIRExpr( pce->sb->tyenv, e ); Bool isWord = e_ty == pce->gWordTy; IRTemp dst = st->Ist.WrTmp.tmp; IRTemp dstv = isWord ? newShadowTmp( pce, dst ) @@ -4822,6 +4896,13 @@ } +static IRTemp for_sg__newIRTemp_cb ( IRType ty, void* opaque ) +{ + PCEnv* pce = (PCEnv*)opaque; + return newTemp( pce, ty, NonShad ); +} + + IRSB* h_instrument ( VgCallbackClosure* closure, IRSB* sbIn, VexGuestLayout* layout, @@ -4848,22 +4929,34 @@ tl_assert(sizeof(UInt) == 4); tl_assert(sizeof(Int) == 4); - /* Set up the running environment. Only .bb is modified as we go - along. */ - pce.bb = deepCopyIRSBExceptStmts(sbIn); + /* Set up the running environment. Both .sb and .tmpMap are + modified as we go along. Note that tmps are added to both + .sb->tyenv and .tmpMap together, so the valid index-set for + those two arrays should always be identical. */ + VG_(memset)(&pce, 0, sizeof(pce)); + pce.sb = deepCopyIRSBExceptStmts(sbIn); pce.trace = verboze; - pce.n_originalTmps = sbIn->tyenv->types_used; pce.hWordTy = hWordTy; pce.gWordTy = gWordTy; pce.guest_state_sizeB = layout->total_sizeB; - pce.tmpMap = LibVEX_Alloc(pce.n_originalTmps * sizeof(IRTemp)); - for (i = 0; i < pce.n_originalTmps; i++) - pce.tmpMap[i] = IRTemp_INVALID; - /* Also set up for the sg_ instrumenter. See comments - at the top of this instrumentation section for details. */ - sgenv = sg_instrument_init(); + pce.qmpMap = VG_(newXA)( VG_(malloc), "pc.h_instrument.1", VG_(free), + sizeof(TempMapEnt)); + for (i = 0; i < sbIn->tyenv->types_used; i++) { + TempMapEnt ent; + ent.kind = NonShad; + ent.shadow = IRTemp_INVALID; + VG_(addToXA)( pce.qmpMap, &ent ); + } + tl_assert( VG_(sizeXA)( pce.qmpMap ) == sbIn->tyenv->types_used ); + /* Also set up for the sg_ instrumenter. See comments at the top + of this instrumentation section for details. The two parameters + constitute a closure, which sg_ can use to correctly generate + new IRTemps as needed. */ + sgenv = sg_instrument_init( for_sg__newIRTemp_cb, + (void*)&pce ); + /* Stay sane. These two should agree! */ tl_assert(layout->total_sizeB == MC_SIZEOF_GUEST_STATE); @@ -4925,20 +5018,25 @@ for (/*use current i*/; i < sbIn->stmts_used; i++) { /* generate sg_ instrumentation for this stmt */ - sg_instrument_IRStmt( sgenv, pce.bb, sbIn->stmts[i], + sg_instrument_IRStmt( sgenv, pce.sb, sbIn->stmts[i], layout, gWordTy, hWordTy ); /* generate h_ instrumentation for this stmt */ schemeS( &pce, sbIn->stmts[i] ); } /* generate sg_ instrumentation for the final jump */ - sg_instrument_final_jump( sgenv, pce.bb, sbIn->next, sbIn->jumpkind, + sg_instrument_final_jump( sgenv, pce.sb, sbIn->next, sbIn->jumpkind, layout, gWordTy, hWordTy ); /* and finalise .. */ sg_instrument_fini( sgenv ); - return pce.bb; + /* If this fails, there's been some serious snafu with tmp management, + that should be investigated. */ + tl_assert( VG_(sizeXA)( pce.qmpMap ) == pce.sb->tyenv->types_used ); + VG_(deleteXA)( pce.qmpMap ); + + return pce.sb; } Modified: trunk/exp-ptrcheck/sg_main.c =================================================================== --- trunk/exp-ptrcheck/sg_main.c 2009-07-09 09:26:12 UTC (rev 10416) +++ trunk/exp-ptrcheck/sg_main.c 2009-07-09 10:45:11 UTC (rev 10417) @@ -2012,12 +2012,16 @@ we basically can't really handle properly; and so we ignore all but the first ref. */ Bool firstRef; + /* READONLY */ + IRTemp (*newIRTemp_cb)(IRType,void*); + void* newIRTemp_opaque; }; /* --- Helper fns for instrumentation --- */ -static IRTemp gen_Get_SP ( IRSB* bbOut, +static IRTemp gen_Get_SP ( struct _SGEnv* sge, + IRSB* bbOut, VexGuestLayout* layout, Int hWordTy_szB ) { @@ -2029,12 +2033,13 @@ tl_assert(hWordTy_szB == layout->sizeof_SP); sp_type = layout->sizeof_SP == 8 ? Ity_I64 : Ity_I32; sp_expr = IRExpr_Get( layout->offset_SP, sp_type ); - sp_temp = newIRTemp( bbOut->tyenv, sp_type ); + sp_temp = sge->newIRTemp_cb( sp_type, sge->newIRTemp_opaque ); addStmtToIRSB( bbOut, IRStmt_WrTmp( sp_temp, sp_expr ) ); return sp_temp; } -static IRTemp gen_Get_FP ( IRSB* bbOut, +static IRTemp gen_Get_FP ( struct _SGEnv* sge, + IRSB* bbOut, VexGuestLayout* layout, Int hWordTy_szB ) { @@ -2046,12 +2051,13 @@ tl_assert(hWordTy_szB == layout->sizeof_SP); fp_type = layout->sizeof_FP == 8 ? Ity_I64 : Ity_I32; fp_expr = IRExpr_Get( layout->offset_FP, fp_type ); - fp_temp = newIRTemp( bbOut->tyenv, fp_type ); + fp_temp = sge->newIRTemp_cb( fp_type, sge->newIRTemp_opaque ); addStmtToIRSB( bbOut, IRStmt_WrTmp( fp_temp, fp_expr ) ); return fp_temp; } -static void instrument_mem_access ( IRSB* bbOut, +static void instrument_mem_access ( struct _SGEnv* sge, + IRSB* bbOut, IRExpr* addr, Int szB, Bool isStore, @@ -2088,8 +2094,8 @@ /* Generate a call to "helperc__mem_access", passing: addr current_SP current_FP szB curr_IP frameBlocks */ - { IRTemp t_SP = gen_Get_SP( bbOut, layout, hWordTy_szB ); - IRTemp t_FP = gen_Get_FP( bbOut, layout, hWordTy_szB ); + { IRTemp t_SP = gen_Get_SP( sge, bbOut, layout, hWordTy_szB ); + IRTemp t_FP = gen_Get_FP( sge, bbOut, layout, hWordTy_szB ); IRExpr** args = mkIRExprVec_6( addr, IRExpr_RdTmp(t_SP), @@ -2100,7 +2106,7 @@ IRDirty* di = unsafeIRDirty_0_N( 3/*regparms*/, "helperc__mem_access", - VG_(fnptr_to_fnentry)( &helperc__mem_access ), + VG_(fnptr_to_fnentry)( &helperc__mem_access ), args ); addStmtToIRSB( bbOut, IRStmt_Dirty(di) ); @@ -2110,14 +2116,17 @@ /* --- Instrumentation main (4 fns) --- */ -struct _SGEnv * sg_instrument_init ( void ) +struct _SGEnv * sg_instrument_init ( IRTemp (*newIRTemp_cb)(IRType,void*), + void* newIRTemp_opaque ) { struct _SGEnv * env = sg_malloc("di.sg_main.sii.1", sizeof(struct _SGEnv)); tl_assert(env); - env->curr_IP = 0; - env->curr_IP_known = False; - env->firstRef = True; + env->curr_IP = 0; + env->curr_IP_known = False; + env->firstRef = True; + env->newIRTemp_cb = newIRTemp_cb; + env->newIRTemp_opaque = newIRTemp_opaque; return env; } @@ -2164,7 +2173,7 @@ tl_assert(env->curr_IP_known); if (env->firstRef) { instrument_mem_access( - sbOut, + env, sbOut, st->Ist.Store.addr, sizeofIRType(typeOfIRExpr(sbOut->tyenv, st->Ist.Store.data)), True/*isStore*/, @@ -2181,7 +2190,7 @@ tl_assert(env->curr_IP_known); if (env->firstRef) { instrument_mem_access( - sbOut, + env, sbOut, data->Iex.Load.addr, sizeofIRType(data->Iex.Load.ty), False/*!isStore*/, @@ -2207,13 +2216,13 @@ dataSize = d->mSize; if (d->mFx == Ifx_Read || d->mFx == Ifx_Modify) { instrument_mem_access( - sbOut, d->mAddr, dataSize, False/*!isStore*/, + env, sbOut, d->mAddr, dataSize, False/*!isStore*/, sizeofIRType(hWordTy), env->curr_IP, layout ); } if (d->mFx == Ifx_Write || d->mFx == Ifx_Modify) { instrument_mem_access( - sbOut, d->mAddr, dataSize, True/*isStore*/, + env, sbOut, d->mAddr, dataSize, True/*isStore*/, sizeofIRType(hWordTy), env->curr_IP, layout ); } @@ -2241,11 +2250,11 @@ if (cas->dataHi != NULL) dataSize *= 2; /* since it's a doubleword-CAS */ instrument_mem_access( - sbOut, cas->addr, dataSize, False/*!isStore*/, + env, sbOut, cas->addr, dataSize, False/*!isStore*/, sizeofIRType(hWordTy), env->curr_IP, layout ); instrument_mem_access( - sbOut, cas->addr, dataSize, True/*isStore*/, + env, sbOut, cas->addr, dataSize, True/*isStore*/, sizeofIRType(hWordTy), env->curr_IP, layout ); env->firstRef = False; @@ -2280,9 +2289,9 @@ IRExpr** args; IRDirty* di; sp_post_call_insn - = gen_Get_SP( sbOut, layout, sizeofIRType(hWordTy) ); + = gen_Get_SP( env, sbOut, layout, sizeofIRType(hWordTy) ); fp_post_call_insn - = gen_Get_FP( sbOut, layout, sizeofIRType(hWordTy) ); + = gen_Get_FP( env, sbOut, layout, sizeofIRType(hWordTy) ); tl_assert(env->curr_IP_known); frameBlocks = get_StackBlocks_for_IP( env->curr_IP ); tl_assert(frameBlocks); Modified: trunk/exp-ptrcheck/sg_main.h =================================================================== --- trunk/exp-ptrcheck/sg_main.h 2009-07-09 09:26:12 UTC (rev 10416) +++ trunk/exp-ptrcheck/sg_main.h 2009-07-09 10:45:11 UTC (rev 10417) @@ -54,7 +54,8 @@ struct _SGEnv; /* abstract export */ -struct _SGEnv * sg_instrument_init ( void ); +struct _SGEnv* sg_instrument_init ( IRTemp (*newIRTemp_cb)(IRType,void*), + void* newIRTemp_opaque ); void sg_instrument_fini ( struct _SGEnv * env ); |
|
From: <sv...@va...> - 2009-07-09 09:37:47
|
Author: bart Date: 2009-07-09 10:18:39 +0100 (Thu, 09 Jul 2009) New Revision: 10415 Log: Updated ignore lists. Modified: trunk/memcheck/tests/ trunk/memcheck/tests/x86-linux/ trunk/mpi/ trunk/none/tests/amd64/ trunk/none/tests/x86-linux/ Property changes on: trunk/memcheck/tests ___________________________________________________________________ Name: svn:ignore - *.dSYM *.stderr.diff* *.stderr.out *.stdout.diff* *.stdout.out .deps Makefile Makefile.in addressable badaddrvalue badfree badjump badjump2 badloop badpoll badrw brk brk2 buflen_check clientperm clientstackperm custom_alloc deep_templates describe-block dir doublefree erringfds error_counts errs1 execve execve2 exitprog file_locking filter_leak_check_size filter_stderr fprw fwrite hello inits inline leak-0 leak-cases leak-cycle leak-pool leak-regroot leak-tree leakotron linux-capget linux-syscalls-2007 linux-syslog-syscall linux-timerfd-syscall long_namespace_xml lsframe1 lsframe2 mallinfo malloc1 malloc2 malloc3 malloc_free_fill malloc_usable manuel1 manuel2 manuel3 match-overrun memalign2 memalign_test memcmptest mempool metadata mismatches mmaptest nanoleak nanoleak2 nanoleak_supp new_nothrow new_override noisy_child null_socket origin1-yes origin2-not-quite origin3-no origin4-many origin5-bz2 origin6-fp oset_test overlap partial_load partiallydefinedeq pdb-realloc pdb-realloc2 pipe pointer-trace post-syscall realloc1 realloc2 realloc3 scalar scalar_exit_group scalar_fork scalar_supp scalar_vfork sh-mem sh-mem-random sigaltstack sigkill signal2 sigprocmask stack_changes stack_switch str_tester strchr supp1 supp2 supp_unknown suppfree threadederrno trivialleak unit_libcbase unit_oset varinfo1 varinfo2 varinfo3 varinfo4 varinfo5 varinfo5so.so varinfo6 vcpu_bz2 vcpu_fbench vcpu_fnfns vgtest_ume weirdioctl with space wrap1 wrap2 wrap3 wrap4 wrap5 wrap6 wrap7 wrap7so.so wrap8 writev xml1 zeropage + *.dSYM *.stderr.diff* *.stderr.out *.stdout.diff* *.stdout.out .deps addressable atomic_incs badaddrvalue badfree badjump badjump2 badloop badpoll badrw brk brk2 buflen_check clientperm clientstackperm custom_alloc deep_templates describe-block dir doublefree erringfds error_counts errs1 execve execve2 exitprog file_locking filter_leak_check_size filter_stderr fprw fwrite hello inits inline leak-0 leak-cases leak-cycle leak-pool leak-regroot leak-tree leakotron linux-capget linux-syscalls-2007 linux-syslog-syscall linux-timerfd-syscall long_namespace_xml lsframe1 lsframe2 Makefile Makefile.in mallinfo malloc1 malloc2 malloc3 malloc_free_fill malloc_usable manuel1 manuel2 manuel3 match-overrun memalign2 memalign_test memcmptest mempool metadata mismatches mmaptest nanoleak nanoleak2 nanoleak_supp new_nothrow new_override noisy_child null_socket origin1-yes origin2-not-quite origin3-no origin4-many origin5-bz2 origin6-fp oset_test overlap partiallydefinedeq partial_load pdb-realloc pdb-realloc2 pipe pointer-trace post-syscall realloc1 realloc2 realloc3 scalar scalar_exit_group scalar_fork scalar_supp scalar_vfork sh-mem sh-mem-random sigaltstack sigkill signal2 sigprocmask stack_changes stack_switch strchr str_tester supp1 supp2 suppfree supp_unknown threadederrno trivialleak unit_libcbase unit_oset varinfo1 varinfo2 varinfo3 varinfo4 varinfo5 varinfo5so.so varinfo6 vcpu_bz2 vcpu_fbench vcpu_fnfns vgtest_ume weirdioctl with space wrap1 wrap2 wrap3 wrap4 wrap5 wrap6 wrap7 wrap7so.so wrap8 writev xml1 zeropage Property changes on: trunk/memcheck/tests/x86-linux ___________________________________________________________________ Name: svn:ignore - .deps bug133694 int3-x86 Makefile Makefile.in scalar scalar_exit_group scalar_fork scalar_supp scalar_vfork + *.stderr.diff *.stderr.out *.stdout.diff *.stdout.out .deps bug133694 int3-x86 Makefile Makefile.in scalar scalar_exit_group scalar_fork scalar_supp scalar_vfork Property changes on: trunk/mpi ___________________________________________________________________ Name: svn:ignore + .deps Makefile Makefile.in Property changes on: trunk/none/tests/amd64 ___________________________________________________________________ Name: svn:ignore - *.stderr.diff *.stderr.out *.stdout.diff *.stdout.out .deps bug127521-64 bug132813-amd64 bug132918 bug137714-amd64 bug156404-amd64 clc faultstatus fcmovnu fxtract insn_basic insn_basic.c insn_fpu insn_fpu.c insn_mmx insn_mmx.c insn_sse insn_sse.c insn_sse2 insn_sse2.c insn_sse3 insn_sse3.c insn_ssse3 insn_ssse3.c jrcxz looper Makefile Makefile.in nibz_bennee_mmap rcl-amd64 redundantRexW shrld slahf-amd64 smc1 ssse3_misaligned + *.stderr.diff *.stderr.out *.stdout.diff *.stdout.out .deps amd64locked bug127521-64 bug132813-amd64 bug132918 bug137714-amd64 bug156404-amd64 clc faultstatus fcmovnu fxtract insn_basic insn_basic.c insn_fpu insn_fpu.c insn_mmx insn_mmx.c insn_sse insn_sse.c insn_sse2 insn_sse2.c insn_sse3 insn_sse3.c insn_ssse3 insn_ssse3.c jrcxz looper Makefile Makefile.in nibz_bennee_mmap rcl-amd64 redundantRexW shrld slahf-amd64 smc1 ssse3_misaligned Property changes on: trunk/none/tests/x86-linux ___________________________________________________________________ Name: svn:ignore - .deps Makefile Makefile.in seg_override sigcontext + *.stderr.diff *.stderr.out *.stdout.diff *.stdout.out .deps Makefile Makefile.in seg_override sigcontext |
|
From: <sv...@va...> - 2009-07-09 09:32:44
|
Author: bart Date: 2009-07-09 10:26:12 +0100 (Thu, 09 Jul 2009) New Revision: 10416 Log: Updated ignore list. Modified: trunk/ Property changes on: trunk ___________________________________________________________________ Name: svn:ignore - acinclude.m4 aclocal.m4 autom4te-*.cache autom4te.cache bin cachegrind cachegrind.out.* compile config.guess config.h* config.log config.status config.sub configure default.supp glibc-2.X.supp depcomp include .in_place install-sh lib Makefile Makefile.in missing mkinstalldirs share stamp-h* svn-commit.tmp svn-commit.2.tmp valgrind valgrind.pc valgrind.spec valt_load_address*.lds vg_annotate vg_cachegen + .in_place acinclude.m4 aclocal.m4 autom4te-*.cache autom4te.cache bin cachegrind cachegrind.out.* compile config.guess config.h* config.log config.status config.sub configure default.supp depcomp glibc-2.X.supp include install-sh lib Makefile Makefile.in Makefile.vex.in missing mkinstalldirs share stamp-h* svn-commit.2.tmp svn-commit.tmp valgrind valgrind.pc valgrind.spec valt_load_address*.lds vg_annotate vg_cachegen |
|
From: Nicholas N. <n.n...@gm...> - 2009-07-09 02:03:35
|
Hi, There was a discussion a little while ago about setting up nightly regression testing for the Mac OS X port. Three people volunteered, but for whatever reason, no testing is set up at the moment. At least one of the people had trouble with the nightly script -- it ran ok when invoked by hand, but failed when invoked via cron (or whatever Apple's equivalent is). So if someone has a suitable machine they'd like to volunteer for this task and are willing to spend a bit of effort getting the tests working, that would be great. You'll need a machine that is suitable for running periodic tasks (which probably rules out laptops). There are comprehensive instructions in bin/README. If someone could get this working, it would be a great help for the stability of the Mac port. Thanks. Nick |