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
(22) |
2
(32) |
3
(34) |
4
(27) |
|
5
(36) |
6
(30) |
7
(19) |
8
(30) |
9
(28) |
10
(13) |
11
(1) |
|
12
|
13
(1) |
14
(2) |
15
(14) |
16
(21) |
17
(16) |
18
(19) |
|
19
(2) |
20
(9) |
21
(19) |
22
(15) |
23
(30) |
24
(28) |
25
(22) |
|
26
(23) |
27
(18) |
28
(35) |
29
(24) |
30
(24) |
31
(16) |
|
|
From: <sv...@va...> - 2012-08-02 22:09:01
|
sewardj 2012-08-02 23:08:53 +0100 (Thu, 02 Aug 2012)
New Revision: 12817
Log:
Back off from 32 alignment of various guest state bits. We don't
actually need it, and gcc on MacOS simply fails (for whatever reason)
to actually honour requests for 32 alignment, and fall back to the
previous setting (16 alignment).
Modified files:
trunk/coregrind/m_scheduler/scheduler.c
trunk/coregrind/m_threadstate.c
trunk/coregrind/pub_core_threadstate.h
Modified: trunk/coregrind/m_threadstate.c (+1 -1)
===================================================================
--- trunk/coregrind/m_threadstate.c 2012-08-02 22:01:13 +01:00 (rev 12816)
+++ trunk/coregrind/m_threadstate.c 2012-08-02 23:08:53 +01:00 (rev 12817)
@@ -44,7 +44,7 @@
ThreadId VG_(running_tid) = VG_INVALID_THREADID;
-ThreadState VG_(threads)[VG_N_THREADS] __attribute__((aligned(32)));
+ThreadState VG_(threads)[VG_N_THREADS] __attribute__((aligned(16)));
/*------------------------------------------------------------*/
/*--- Operations. ---*/
Modified: trunk/coregrind/pub_core_threadstate.h (+5 -5)
===================================================================
--- trunk/coregrind/pub_core_threadstate.h 2012-08-02 22:01:13 +01:00 (rev 12816)
+++ trunk/coregrind/pub_core_threadstate.h 2012-08-02 23:08:53 +01:00 (rev 12817)
@@ -104,19 +104,19 @@
/* Note that for code generation reasons, we require that the
guest state area, its two shadows, and the spill area, are
- 32-aligned and have 32-aligned sizes, and there are no holes
+ 16-aligned and have 16-aligned sizes, and there are no holes
in between. This is checked by do_pre_run_checks() in
scheduler.c. */
/* Saved machine context. */
- VexGuestArchState vex __attribute__((aligned(32)));
+ VexGuestArchState vex __attribute__((aligned(16)));
/* Saved shadow context (2 copies). */
- VexGuestArchState vex_shadow1 __attribute__((aligned(32)));
- VexGuestArchState vex_shadow2 __attribute__((aligned(32)));
+ VexGuestArchState vex_shadow1 __attribute__((aligned(16)));
+ VexGuestArchState vex_shadow2 __attribute__((aligned(16)));
/* Spill area. */
- UChar vex_spill[LibVEX_N_SPILL_BYTES] __attribute__((aligned(32)));
+ UChar vex_spill[LibVEX_N_SPILL_BYTES] __attribute__((aligned(16)));
/* --- END vex-mandated guest state --- */
}
Modified: trunk/coregrind/m_scheduler/scheduler.c (+9 -9)
===================================================================
--- trunk/coregrind/m_scheduler/scheduler.c 2012-08-02 22:01:13 +01:00 (rev 12816)
+++ trunk/coregrind/m_scheduler/scheduler.c 2012-08-02 23:08:53 +01:00 (rev 12817)
@@ -699,15 +699,15 @@
(void*)a_vexsh2, sz_vexsh2,
(void*)a_spill, sz_spill );
- vg_assert(VG_IS_32_ALIGNED(sz_vex));
- vg_assert(VG_IS_32_ALIGNED(sz_vexsh1));
- vg_assert(VG_IS_32_ALIGNED(sz_vexsh2));
- vg_assert(VG_IS_32_ALIGNED(sz_spill));
+ vg_assert(VG_IS_16_ALIGNED(sz_vex));
+ vg_assert(VG_IS_16_ALIGNED(sz_vexsh1));
+ vg_assert(VG_IS_16_ALIGNED(sz_vexsh2));
+ vg_assert(VG_IS_16_ALIGNED(sz_spill));
- vg_assert(VG_IS_32_ALIGNED(a_vex));
- vg_assert(VG_IS_32_ALIGNED(a_vexsh1));
- vg_assert(VG_IS_32_ALIGNED(a_vexsh2));
- vg_assert(VG_IS_32_ALIGNED(a_spill));
+ vg_assert(VG_IS_16_ALIGNED(a_vex));
+ vg_assert(VG_IS_16_ALIGNED(a_vexsh1));
+ vg_assert(VG_IS_16_ALIGNED(a_vexsh2));
+ vg_assert(VG_IS_16_ALIGNED(a_spill));
/* Check that the guest state and its two shadows have the same
size, and that there are no holes in between. The latter is
@@ -746,7 +746,7 @@
- offsetof(VexGuestAMD64State,guest_YMM0))
== (17/*#regs*/-1) * 32/*bytes per reg*/
);
- vg_assert(VG_IS_32_ALIGNED(offsetof(VexGuestAMD64State,guest_YMM0)));
+ vg_assert(VG_IS_16_ALIGNED(offsetof(VexGuestAMD64State,guest_YMM0)));
vg_assert(VG_IS_8_ALIGNED(offsetof(VexGuestAMD64State,guest_FPREG)));
vg_assert(16 == offsetof(VexGuestAMD64State,guest_RAX));
vg_assert(VG_IS_8_ALIGNED(offsetof(VexGuestAMD64State,guest_RAX)));
|
|
From: Philippe W. <phi...@sk...> - 2012-08-02 21:24:38
|
On Thu, 2012-08-02 at 22:01 +0100, sv...@va... wrote: > + * Check that the regression tests work on all platforms with more self checks: > + export EXTRA_REGTEST_OPTS="--sanity-level=4 --helgrind:hg-sanity-flags=011111" > + make regtest Just did the above on debian/amd64. Some tests are failing because the additional args are not in the .exp file (so this is normal). A handfull of tests are failing (at the end of the test) with: --31431:0:aspacem Valgrind: FATAL: I/O error on /proc/self/maps --31431:0:aspacem Exiting now. (e.g. none/tests/pth_exit) Did not investigate yet, probably (?) not a big deal. Philippe |
|
From: <sv...@va...> - 2012-08-02 21:01:20
|
philippe 2012-08-02 22:01:13 +0100 (Thu, 02 Aug 2012)
New Revision: 12816
Log:
Some updates in release-HOWTO.txt
Modified files:
trunk/docs/internals/release-HOWTO.txt
Modified: trunk/docs/internals/release-HOWTO.txt (+11 -2)
===================================================================
--- trunk/docs/internals/release-HOWTO.txt 2012-08-02 19:51:51 +01:00 (rev 12815)
+++ trunk/docs/internals/release-HOWTO.txt 2012-08-02 22:01:13 +01:00 (rev 12816)
@@ -40,6 +40,10 @@
this is not a very scientific or robust way to collect up all
bugs fixed since last time.
+ Suggestion for next release: when a bug is fixed, update NEWS
+ directly => less chance to forget, and NEWS always up to date
+ in SVN.
+
- Other files that might need updating: README, README_DEVELOPERS,
README_PACKAGERS.
@@ -56,6 +60,7 @@
- Do pre-release testing:
* Check it builds and regtests on a vanilla gcc-2.96 / RedHat 7.3 distro.
+ ??? is this really still up to date ???
* Check standard build and regtest on the following cpus:
x86, sse2 (P4)
@@ -65,9 +70,13 @@
ppc32, altivec
ppc32, no altivec (eg old iMac G3s)
- * Check that the regression tests work with --sanity-level=4 on all
- platforms.
+ * Check that the regression tests work on all platforms with more self checks:
+ export EXTRA_REGTEST_OPTS="--sanity-level=4 --helgrind:hg-sanity-flags=011111"
+ make regtest
+ * check there are no memleaks or similar bugs by running all regtests
+ in an outer/inner setup (see README_DEVELOPERS).
+
* Check valgrind-listener works on all archs, also connecting to it
from all archs.
|
|
From: Philippe W. <phi...@sk...> - 2012-08-02 20:57:34
|
On Thu, 2012-08-02 at 22:28 +0200, Philippe Waroquiers wrote: > With none tool, there is however a little bit more > positive difference on x86 (did not measure amd64) with time, > but again not with perl perf/vg_perf ? Results on amd64 of perl perf with and without EXTRA_REGTESTS_OPTS WARNING: $EXTRA_REGTEST_OPTS is set. You probably don't want to run the perf tests with it set, unless you are doing some strange experiment, and/or you really know what you are doing. -- Running tests in perf ---------------------------------------------- bigcode1 allregs_at_sb_exits:0.13s no: 2.0s (15.1x, -----) ca:16.1s (123.7x, -----) ca: 6.1s (46.6x, -----) bigcode2 allregs_at_sb_exits:0.13s no: 4.5s (35.0x, -----) ca:28.4s (218.5x, -----) ca: 9.8s (75.7x, -----) bz2 allregs_at_sb_exits:0.67s no: 1.9s ( 2.8x, -----) ca:20.8s (31.1x, -----) ca:16.2s (24.2x, -----) fbench allregs_at_sb_exits:0.28s no: 1.2s ( 4.4x, -----) ca: 6.5s (23.1x, -----) ca: 4.8s (17.1x, -----) ffbench allregs_at_sb_exits:0.25s no: 1.0s ( 4.1x, -----) ca: 2.4s ( 9.7x, -----) ca: 6.0s (24.2x, -----) heap allregs_at_sb_exits:0.10s no: 0.7s ( 6.9x, -----) ca: 7.4s (73.8x, -----) ca: 4.8s (47.5x, -----) heap_pdb4 allregs_at_sb_exits:0.14s no: 0.7s ( 5.1x, -----) ca: 8.2s (58.4x, -----) ca: 5.3s (38.0x, -----) many-loss-records allregs_at_sb_exits:0.01s no: 0.2s (23.0x, -----) ca: 1.2s (125.0x, -----) ca: 0.9s (91.0x, -----) many-xpts allregs_at_sb_exits:0.04s no: 0.3s ( 7.5x, -----) ca: 3.2s (81.2x, -----) ca: 1.4s (34.8x, -----) sarp allregs_at_sb_exits:0.03s no: 0.2s ( 8.0x, -----) ca: 2.2s (72.7x, -----) ca: 1.3s (43.0x, -----) tinycc allregs_at_sb_exits:0.20s no: 1.4s ( 7.0x, -----) ca:12.1s (60.5x, -----) ca:10.3s (51.6x, -----) -- Finished tests in perf ---------------------------------------------- == 11 programs, 33 timings ================= with the normal setup (unwind-regs-at-mem-access) ************************************************* -- Running tests in perf ---------------------------------------------- bigcode1 allregs_at_sb_exits:0.13s no: 2.0s (15.5x, -----) ca:16.1s (123.8x, -----) ca: 6.1s (46.6x, -----) bigcode2 allregs_at_sb_exits:0.13s no: 4.5s (35.0x, -----) ca:28.2s (216.6x, -----) ca: 9.8s (75.5x, -----) bz2 allregs_at_sb_exits:0.68s no: 2.1s ( 3.0x, -----) ca:20.9s (30.8x, -----) ca:16.2s (23.9x, -----) fbench allregs_at_sb_exits:0.27s no: 1.2s ( 4.6x, -----) ca: 6.6s (24.4x, -----) ca: 4.7s (17.3x, -----) ffbench allregs_at_sb_exits:0.25s no: 1.1s ( 4.4x, -----) ca: (interrupted as I was demoralised :). Philippe |
|
From: Philippe W. <phi...@sk...> - 2012-08-02 20:28:56
|
On Mon, 2012-07-30 at 16:16 +0200, Josef Weidendorfer wrote:
> It would allow for an even more minimal setting than the current
> "unwindregs-at-mem-access" one, which seems not needed e.g. for
> cachegrind/callgrind. As I see, a "only-at-sb-exit" would be
> enough there, but obviously needs some modifications in VEX.
I tested the idea (see attached patch).
I might/must have done an error in the patch, but I do not see
much difference in performance when I am specifying
--vex-iropt-register-updates=allregs-at-sb-exits
Measurements taken on an old Pentium and on an amd64.
(I just repeated the x86 measurement once, as the first time,
the allregs-at-sb-exits was even slower than unwindregs-at-mem-access).
I used the "perl perf/vg_perf --reps=5, and for that saw no
significant difference).
Looks strange ?
Maybe the IR code is a very small part of callgrind time ?.
With none tool, there is however a little bit more
positive difference on x86 (did not measure amd64) with time,
but again not with perl perf/vg_perf ?
Philippe
for opt in allregs-at-sb-exits unwindregs-at-mem-access allregs-at-mem-access allregs-at-each-insn
do
echo $opt
time ./vg-in-place --stats=yes --tool=callgrind --vex-iropt-register-updates=$opt perf/bz2 2>&1 | grep -e ratio
done
x86
***--9986-- transtab: new 4,067 (95,961 -> 509,291; ratio 53:10) [0 scs]
real 0m53.247s
user 0m52.984s
sys 0m0.181s
unwindregs-at-mem-access
--9991-- transtab: new 4,067 (95,961 -> 592,178; ratio 61:10) [0 scs]
real 0m55.519s
user 0m55.131s
sys 0m0.219s
allregs-at-mem-access
--9997-- transtab: new 4,067 (95,961 -> 667,929; ratio 69:10) [0 scs]
real 0m56.674s
user 0m56.355s
sys 0m0.199s
allregs-at-each-insn
--10003-- transtab: new 4,073 (95,996 -> 772,182; ratio 80:10) [0 scs]
real 0m58.116s
user 0m57.891s
sys 0m0.206s
amd64
*****
allregs-at-sb-exits
--21396-- transtab: new 3,951 (85,106 -> 758,211; ratio 89:10) [0 scs]
real 0m20.950s
user 0m20.913s
sys 0m0.036s
unwindregs-at-mem-access
--21432-- transtab: new 3,951 (85,106 -> 832,620; ratio 97:10) [0 scs]
real 0m21.195s
user 0m21.145s
sys 0m0.048s
allregs-at-mem-access
--21457-- transtab: new 3,951 (85,106 -> 904,511; ratio 106:10) [0 scs]
real 0m21.927s
user 0m21.909s
sys 0m0.016s
allregs-at-each-insn
--21560-- transtab: new 3,951 (85,106 -> 1,082,296; ratio 127:10) [0 scs]
real 0m22.568s
user 0m22.541s
sys 0m0.016s
none tool on x86
****************
allregs-at-sb-exits
--9968-- transtab: new 3,739 (109,926 -> 457,539; ratio 41:10) [0 scs]
real 0m4.107s
user 0m3.969s
sys 0m0.137s
unwindregs-at-mem-access
--9972-- transtab: new 3,739 (109,926 -> 572,328; ratio 52:10) [0 scs]
real 0m4.758s
user 0m4.630s
sys 0m0.127s
allregs-at-mem-access
--9977-- transtab: new 3,739 (109,926 -> 644,673; ratio 58:10) [0 scs]
real 0m5.795s
user 0m5.673s
sys 0m0.122s
allregs-at-each-insn
--9981-- transtab: new 3,739 (109,926 -> 759,343; ratio 69:10) [0 scs]
real 0m7.595s
user 0m7.462s
sys 0m0.127s
|
|
From: <sv...@va...> - 2012-08-02 18:51:59
|
sewardj 2012-08-02 19:51:51 +0100 (Thu, 02 Aug 2012)
New Revision: 12815
Log:
Un-break the build on OSX < 10.8 following r12814
(which was initial OSX 10.8 support)
Modified files:
trunk/coregrind/m_syswrap/syswrap-darwin.c
trunk/coregrind/m_ume/macho.c
Modified: trunk/coregrind/m_ume/macho.c (+4 -2)
===================================================================
--- trunk/coregrind/m_ume/macho.c 2012-08-02 19:25:04 +01:00 (rev 12814)
+++ trunk/coregrind/m_ume/macho.c 2012-08-02 19:51:51 +01:00 (rev 12815)
@@ -82,6 +82,7 @@
}
}
+#if DARWIN_VERS == DARWIN_10_8
static void check_mmap_float(SysRes res, SizeT len, HChar* who)
{
if (sr_isError(res)) {
@@ -90,8 +91,8 @@
VG_(exit)(1);
}
}
+#endif
-
static int
load_thin_file(int fd, vki_off_t offset, vki_off_t size, unsigned long filetype,
const char *filename,
@@ -385,6 +386,7 @@
This is a really nasty hack -- allocates 64M+stack size, then
deallocates the 64M, to guarantee that the stack is at least 64M
above zero. */
+#if DARWIN_VERS == DARWIN_10_8
static int
handle_lcmain ( vki_uint8_t **out_stack_start,
vki_uint8_t **out_stack_end,
@@ -414,10 +416,10 @@
return 0;
}
+#endif /* DARWIN_VERS == DARWIN_10_8 */
-
/*
Processes an LC_LOAD_DYLINKER command.
Returns 0 on success, -1 on any error.
Modified: trunk/coregrind/m_syswrap/syswrap-darwin.c (+1 -1)
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-darwin.c 2012-08-02 19:25:04 +01:00 (rev 12814)
+++ trunk/coregrind/m_syswrap/syswrap-darwin.c 2012-08-02 19:51:51 +01:00 (rev 12815)
@@ -8395,7 +8395,7 @@
# if DARWIN_VERS == DARWIN_10_8
MACXY(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(10), mach__10),
# else
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(10),
+ _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(10)),
# endif
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(11)),
|
|
From: <sv...@va...> - 2012-08-02 18:25:15
|
sewardj 2012-08-02 19:25:04 +0100 (Thu, 02 Aug 2012)
New Revision: 12814
Log:
Add initial support for MacOSX 10.8. Note this is still very borked
and pretty much unusable for real work.
Added files:
trunk/darwin12.supp
Modified files:
trunk/Makefile.am
trunk/configure.in
trunk/coregrind/m_debuginfo/debuginfo.c
trunk/coregrind/m_main.c
trunk/coregrind/m_syswrap/priv_syswrap-darwin.h
trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c
trunk/coregrind/m_syswrap/syswrap-darwin.c
trunk/coregrind/m_syswrap/syswrap-x86-darwin.c
trunk/coregrind/m_ume/macho.c
trunk/include/pub_tool_redir.h
trunk/include/vki/vki-darwin.h
Modified: trunk/coregrind/m_syswrap/syswrap-darwin.c (+116 -7)
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-darwin.c 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/coregrind/m_syswrap/syswrap-darwin.c 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -1477,9 +1477,12 @@
static const char *workqop_name(int op)
{
switch (op) {
- case VKI_WQOPS_QUEUE_ADD: return "QUEUE_ADD";
- case VKI_WQOPS_QUEUE_REMOVE: return "QUEUE_REMOVE";
- case VKI_WQOPS_THREAD_RETURN: return "THREAD_RETURN";
+ case VKI_WQOPS_QUEUE_ADD: return "QUEUE_ADD";
+ case VKI_WQOPS_QUEUE_REMOVE: return "QUEUE_REMOVE";
+ case VKI_WQOPS_THREAD_RETURN: return "THREAD_RETURN";
+ case VKI_WQOPS_THREAD_SETCONC: return "THREAD_SETCONC";
+ case VKI_WQOPS_QUEUE_NEWSPISUPP: return "QUEUE_NEWSPISUPP";
+ case VKI_WQOPS_QUEUE_REQTHREADS: return "QUEUE_REQTHREADS";
default: return "?";
}
}
@@ -1498,6 +1501,8 @@
// GrP fixme need anything here?
// GrP fixme may block?
break;
+ case VKI_WQOPS_QUEUE_NEWSPISUPP:
+ break; // JRS don't think we need to do anything here
case VKI_WQOPS_THREAD_RETURN: {
// The interesting case. The kernel will do one of two things:
@@ -3521,6 +3526,7 @@
PRE(mmap)
{
// SysRes r;
+ if (0) VG_(am_do_sync_check)("(PRE_MMAP)",__FILE__,__LINE__);
#if VG_WORDSIZE == 4
PRINT("mmap ( %#lx, %lu, %ld, %ld, %ld, %lld )",
@@ -4986,6 +4992,8 @@
PRINT("task_get_special_port(%s, TASK_BOOTSTRAP_PORT)",
name_for_port(MACH_REMOTE));
break;
+#if DARWIN_VERS != DARWIN_10_8
+ /* These disappeared in 10.8 */
case TASK_WIRED_LEDGER_PORT:
PRINT("task_get_special_port(%s, TASK_WIRED_LEDGER_PORT)",
name_for_port(MACH_REMOTE));
@@ -4994,6 +5002,7 @@
PRINT("task_get_special_port(%s, TASK_PAGED_LEDGER_PORT)",
name_for_port(MACH_REMOTE));
break;
+#endif
default:
PRINT("task_get_special_port(%s, %d)",
name_for_port(MACH_REMOTE), req->which_port);
@@ -5032,12 +5041,15 @@
case TASK_HOST_PORT:
assign_port_name(reply->special_port.name, "host");
break;
+#if DARWIN_VERS != DARWIN_10_8
+ /* These disappeared in 10.8 */
case TASK_WIRED_LEDGER_PORT:
assign_port_name(reply->special_port.name, "wired-ledger");
break;
case TASK_PAGED_LEDGER_PORT:
assign_port_name(reply->special_port.name, "paged-ledger");
break;
+#endif
default:
assign_port_name(reply->special_port.name, "special-%p");
break;
@@ -6503,7 +6515,13 @@
if (ARG4) semaphore_signal((semaphore_t)ARG4);
if (ARG1 && ARG2) {
ML_(notify_core_and_tool_of_munmap)(ARG1, ARG2);
+# if DARWIN_VERS == DARWIN_10_8
+ /* JRS 2012 Aug 02: ugly hack: vm_deallocate disappeared from
+ the mig output. Work around it for the time being. */
+ VG_(do_syscall2)(__NR_munmap, ARG1, ARG2);
+# else
vm_deallocate(mach_task_self(), (vm_address_t)ARG1, (vm_size_t)ARG2);
+# endif
}
// Tell V to terminate the thread.
@@ -7811,16 +7829,74 @@
/* ---------------------------------------------------------------------
+ Added for OSX 10.8 (Mountain Lion)
+ ------------------------------------------------------------------ */
+
+#if DARWIN_VERS == DARWIN_10_8
+
+PRE(mach__10)
+{
+ PRINT("mach__10(ARGUMENTS_UNKNOWN)");
+}
+POST(mach__10)
+{
+ ML_(sync_mappings)("after", "mach__10", 0);
+}
+
+PRE(mach__12)
+{
+ PRINT("mach__12(ARGUMENTS_UNKNOWN)");
+}
+POST(mach__12)
+{
+ ML_(sync_mappings)("after", "mach__12", 0);
+}
+
+PRE(mach__14)
+{
+ PRINT("mach__14(ARGUMENTS_UNKNOWN)");
+}
+
+PRE(mach__16)
+{
+ PRINT("mach__16(ARGUMENTS_UNKNOWN)");
+}
+
+PRE(mach__18)
+{
+ PRINT("mach__18(ARGUMENTS_UNKNOWN)");
+}
+
+PRE(mach__19)
+{
+ PRINT("mach__19(ARGUMENTS_UNKNOWN)");
+}
+
+PRE(mach__20)
+{
+ PRINT("mach__20(ARGUMENTS_UNKNOWN)");
+}
+
+PRE(mach__21)
+{
+ PRINT("mach__21(ARGUMENTS_UNKNOWN)");
+}
+
+#endif /* DARWIN_VERS == DARWIN_10_8 */
+
+
+/* ---------------------------------------------------------------------
syscall tables
------------------------------------------------------------------ */
/* Add a Darwin-specific, arch-independent wrapper to a syscall table. */
#define MACX_(sysno, name) WRAPPER_ENTRY_X_(darwin, VG_DARWIN_SYSNO_INDEX(sysno), name)
#define MACXY(sysno, name) WRAPPER_ENTRY_XY(darwin, VG_DARWIN_SYSNO_INDEX(sysno), name)
-#define _____(sysno) GENX_(sysno, sys_ni_syscall)
+#define _____(sysno) GENX_(sysno, sys_ni_syscall) /* UNIX style only */
/*
- _____ : unsupported by the kernel (sys_ni_syscall)
+ _____ : unsupported by the kernel (sys_ni_syscall) (UNIX-style only)
+ unfortunately misused for Mach too, causing assertion failures
// _____ : unimplemented in valgrind
GEN : handlers are in syswrap-generic.c
MAC : handlers are in this file
@@ -8315,18 +8391,51 @@
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(7)),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(8)),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(9)),
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(10)),
+
+# if DARWIN_VERS == DARWIN_10_8
+ MACXY(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(10), mach__10),
+# else
+ _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(10),
+# endif
+
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(11)),
+
+# if DARWIN_VERS == DARWIN_10_8
+ MACXY(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(12), mach__12),
+# else
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(12)),
+# endif
+
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(13)),
+
+# if DARWIN_VERS == DARWIN_10_8
+ MACX_(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(14), mach__14),
+# else
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(14)),
+# endif
+
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(15)),
+
+# if DARWIN_VERS == DARWIN_10_8
+ MACX_(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(16), mach__16),
+# else
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(16)),
+# endif
+
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(17)),
+
+# if DARWIN_VERS == DARWIN_10_8
+ MACX_(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(18), mach__18),
+ MACX_(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(19), mach__19),
+ MACX_(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(20), mach__20),
+ MACX_(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(21), mach__21),
+# else
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(18)),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(19)),
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(20)), // -20
+ _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(20)),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(21)),
+# endif
+
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(22)),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(23)),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(24)),
Modified: trunk/include/vki/vki-darwin.h (+6 -3)
===================================================================
--- trunk/include/vki/vki-darwin.h 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/include/vki/vki-darwin.h 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -829,9 +829,12 @@
// Libc/pthreads/pthread.c
-#define VKI_WQOPS_QUEUE_ADD 1
-#define VKI_WQOPS_QUEUE_REMOVE 2
-#define VKI_WQOPS_THREAD_RETURN 4
+#define VKI_WQOPS_QUEUE_ADD 1
+#define VKI_WQOPS_QUEUE_REMOVE 2
+#define VKI_WQOPS_THREAD_RETURN 4
+#define VKI_WQOPS_THREAD_SETCONC 8
+#define VKI_WQOPS_QUEUE_NEWSPISUPP 16 /* check for newer SPI support */
+#define VKI_WQOPS_QUEUE_REQTHREADS 32 /* request number of threads of a prio */
#include <sys/ttycom.h>
Modified: trunk/coregrind/m_syswrap/syswrap-x86-darwin.c (+1 -1)
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-x86-darwin.c 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/coregrind/m_syswrap/syswrap-x86-darwin.c 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -409,7 +409,7 @@
idea why. */
# if DARWIN_VERS <= DARWIN_10_6
UWord magic_delta = 0;
-# elif DARWIN_VERS == DARWIN_10_7
+# elif DARWIN_VERS >= DARWIN_10_7
UWord magic_delta = 0x48;
# endif
Modified: trunk/coregrind/m_main.c (+15 -1)
===================================================================
--- trunk/coregrind/m_main.c 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/coregrind/m_main.c 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -1284,6 +1284,15 @@
else if (VG_(clo_verbosity) > 0)
VG_(umsg)("\n");
+# if defined(VGO_darwin) && DARWIN_VERS == DARWIN_10_8
+ /* Uh, this doesn't play nice with XML output. */
+ umsg_or_xml( "WARNING: Support on MacOS 10.8 is experimental and mostly broken.\n");
+ umsg_or_xml( "WARNING: Expect incorrect results, assertions and crashes.\n");
+ umsg_or_xml( "WARNING: In particular, Memcheck on 32-bit programs will fail to\n");
+ umsg_or_xml( "WARNING: detect any errors associated with heap-allocated data.\n");
+ umsg_or_xml( "\n" );
+# endif
+
if (VG_(clo_verbosity) > 1) {
SysRes fd;
VexArch vex_arch;
@@ -1602,7 +1611,12 @@
VG_(debugLog)(1, "main", "Checking current stack is plausible\n");
{ HChar* limLo = (HChar*)(&VG_(interim_stack).bytes[0]);
HChar* limHi = limLo + sizeof(VG_(interim_stack));
- HChar* aLocal = (HChar*)&zero; /* any auto local will do */
+ HChar* aLocal = (HChar*)&limLo; /* any auto local will do */
+ /* "Apple clang version 4.0 (tags/Apple/clang-421.0.57) (based on
+ LLVM 3.1svn)" appears to miscompile the following check,
+ causing run to abort at this point (in 64-bit mode) even
+ though aLocal is within limLo .. limHi. Try building with
+ gcc instead. */
if (aLocal < limLo || aLocal >= limHi) {
/* something's wrong. Stop. */
VG_(debugLog)(0, "main", "Root stack %p to %p, a local %p\n",
Modified: trunk/include/pub_tool_redir.h (+1 -1)
===================================================================
--- trunk/include/pub_tool_redir.h 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/include/pub_tool_redir.h 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -246,7 +246,7 @@
#elif defined(VGO_darwin) && (DARWIN_VERS <= DARWIN_10_6)
# define VG_Z_LIBC_SONAME libSystemZdZaZddylib // libSystem.*.dylib
-#elif defined(VGO_darwin) && (DARWIN_VERS == DARWIN_10_7)
+#elif defined(VGO_darwin) && (DARWIN_VERS >= DARWIN_10_7)
# define VG_Z_LIBC_SONAME libsystemZucZaZddylib // libsystem_c*.dylib
#else
Modified: trunk/Makefile.am (+1 -1)
===================================================================
--- trunk/Makefile.am 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/Makefile.am 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -43,7 +43,7 @@
exp-sgcheck.supp \
darwin9.supp darwin9-drd.supp \
darwin10.supp darwin10-drd.supp \
- darwin11.supp \
+ darwin11.supp darwin12.supp \
bionic.supp
DEFAULT_SUPP_FILES = @DEFAULT_SUPP@
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c (+1 -1)
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-darwin.c 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -448,7 +448,7 @@
idea why. */
# if DARWIN_VERS <= DARWIN_10_6
UWord magic_delta = 0;
-# elif DARWIN_VERS == DARWIN_10_7
+# elif DARWIN_VERS >= DARWIN_10_7
UWord magic_delta = 0x60;
# endif
Added: trunk/darwin12.supp (+0 -0)
===================================================================
Modified: trunk/coregrind/m_ume/macho.c (+69 -2)
===================================================================
--- trunk/coregrind/m_ume/macho.c 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/coregrind/m_ume/macho.c 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -76,13 +76,22 @@
static void check_mmap(SysRes res, Addr base, SizeT len, HChar* who)
{
if (sr_isError(res)) {
- VG_(printf)("valgrind: mmap(0x%llx, %lld) failed in UME (%s).\n",
+ VG_(printf)("valgrind: mmap-FIXED(0x%llx, %lld) failed in UME (%s).\n",
(ULong)base, (Long)len, who);
VG_(exit)(1);
}
}
+static void check_mmap_float(SysRes res, SizeT len, HChar* who)
+{
+ if (sr_isError(res)) {
+ VG_(printf)("valgrind: mmap-FLOAT(size=%lld) failed in UME (%s).\n",
+ (Long)len, who);
+ VG_(exit)(1);
+ }
+}
+
static int
load_thin_file(int fd, vki_off_t offset, vki_off_t size, unsigned long filetype,
const char *filename,
@@ -370,6 +379,45 @@
}
+/* Allocates a stack mapping at a V-chosen address. Pertains to
+ LC_MAIN commands, which seem to have appeared in OSX 10.8.
+
+ This is a really nasty hack -- allocates 64M+stack size, then
+ deallocates the 64M, to guarantee that the stack is at least 64M
+ above zero. */
+static int
+handle_lcmain ( vki_uint8_t **out_stack_start,
+ vki_uint8_t **out_stack_end,
+ vki_size_t requested_size )
+{
+ if (requested_size == 0) {
+ requested_size = default_stack_size();
+ }
+ requested_size = VG_PGROUNDUP(requested_size);
+
+ const vki_size_t HACK = 64 * 1024 * 1024;
+ requested_size += HACK;
+
+ SysRes res = VG_(am_mmap_anon_float_client)(requested_size,
+ VKI_PROT_READ|VKI_PROT_WRITE|VKI_PROT_EXEC);
+ check_mmap_float(res, requested_size, "handle_lcmain");
+ vg_assert(!sr_isError(res));
+ *out_stack_start = (vki_uint8_t*)sr_Res(res);
+ *out_stack_end = *out_stack_start + requested_size;
+
+ Bool need_discard = False;
+ res = VG_(am_munmap_client)(&need_discard, (Addr)*out_stack_start, HACK);
+ if (sr_isError(res)) return -1;
+ vg_assert(!need_discard); // True == wtf?
+
+ *out_stack_start += HACK;
+
+ return 0;
+}
+
+
+
+
/*
Processes an LC_LOAD_DYLINKER command.
Returns 0 on success, -1 on any error.
@@ -432,6 +480,7 @@
vki_uint8_t **out_stack_start, vki_uint8_t **out_stack_end,
vki_uint8_t **out_text, vki_uint8_t **out_entry, vki_uint8_t **out_linker_entry)
{
+ VG_(debugLog)(1, "ume", "load_thin_file: begin: %s\n", filename);
struct MACH_HEADER mh;
vki_uint8_t *headers;
vki_uint8_t *headers_end;
@@ -506,6 +555,23 @@
}
switch (lc->cmd) {
+
+#if DARWIN_VERS == DARWIN_10_8
+ case LC_MAIN: { /* New in 10.8 */
+ struct entry_point_command* epcmd
+ = (struct entry_point_command*)lc;
+ if (stack_start || stack_end) {
+ print("bad executable (multiple indications of stack)");
+ return -1;
+ }
+ err = handle_lcmain ( &stack_start, &stack_end, epcmd->stacksize );
+ if (err) return -1;
+ VG_(debugLog)(2, "ume", "lc_main: created stack %p-%p\n",
+ stack_start, stack_end);
+ break;
+ }
+# endif
+
case LC_SEGMENT_CMD:
if (lc->cmdsize < sizeof(struct SEGMENT_COMMAND)) {
print("bad executable (invalid load commands)\n");
@@ -582,7 +648,7 @@
// a text segment
// an entry point (static or linker)
if (!stack_end || !stack_start) {
- print("bad executable (no stack)\n");
+ VG_(printf)("bad executable %s (no stack)\n", filename);
return -1;
}
if (!text) {
@@ -609,6 +675,7 @@
if (out_entry) *out_entry = entry;
if (out_linker_entry) *out_linker_entry = linker_entry;
+ VG_(debugLog)(1, "ume", "load_thin_file: success: %s\n", filename);
return 0;
}
Modified: trunk/configure.in (+8 -2)
===================================================================
--- trunk/configure.in 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/configure.in 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -134,7 +134,7 @@
notclang-4.*)
AC_MSG_RESULT([ok (${gcc_version})])
;;
- clang-2.9|clang-3.*)
+ clang-2.9|clang-3.*|clang-4.*)
AC_MSG_RESULT([ok (clang-${gcc_version})])
;;
*)
@@ -287,6 +287,7 @@
AC_DEFINE([DARWIN_10_5], 100500, [DARWIN_VERS value for Mac OS X 10.5])
AC_DEFINE([DARWIN_10_6], 100600, [DARWIN_VERS value for Mac OS X 10.6])
AC_DEFINE([DARWIN_10_7], 100700, [DARWIN_VERS value for Mac OS X 10.7])
+ AC_DEFINE([DARWIN_10_8], 100800, [DARWIN_VERS value for Mac OS X 10.8])
AC_MSG_CHECKING([for the kernel version])
kernel=`uname -r`
@@ -323,10 +324,15 @@
11.*)
AC_MSG_RESULT([Darwin 11.x (${kernel}) / Mac OS X 10.7 Lion])
AC_DEFINE([DARWIN_VERS], DARWIN_10_7, [Darwin / Mac OS X version])
- # FIXME: change these to xx11.supp
DEFAULT_SUPP="darwin11.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
;;
+ 12.*)
+ AC_MSG_RESULT([Darwin 12.x (${kernel}) / Mac OS X 10.8 Mountain Lion])
+ AC_DEFINE([DARWIN_VERS], DARWIN_10_8, [Darwin / Mac OS X version])
+ DEFAULT_SUPP="darwin12.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
+ ;;
*)
AC_MSG_RESULT([unsupported (${kernel})])
AC_MSG_ERROR([Valgrind works on Darwin 10.x and 11.x (Mac OS X 10.6/7)])
Modified: trunk/coregrind/m_syswrap/priv_syswrap-darwin.h (+10 -0)
===================================================================
--- trunk/coregrind/m_syswrap/priv_syswrap-darwin.h 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/coregrind/m_syswrap/priv_syswrap-darwin.h 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -559,6 +559,16 @@
DECL_TEMPLATE(darwin, mach_msg_thread);
// Mach traps
+#if DARWIN_VERS == DARWIN_10_8
+DECL_TEMPLATE(darwin, mach__10);
+DECL_TEMPLATE(darwin, mach__12);
+DECL_TEMPLATE(darwin, mach__14);
+DECL_TEMPLATE(darwin, mach__16);
+DECL_TEMPLATE(darwin, mach__18);
+DECL_TEMPLATE(darwin, mach__19);
+DECL_TEMPLATE(darwin, mach__20);
+DECL_TEMPLATE(darwin, mach__21);
+#endif /* DARWIN_VERS == DARWIN_10_8 */
DECL_TEMPLATE(darwin, mach_msg_unhandled);
DECL_TEMPLATE(darwin, mach_msg);
DECL_TEMPLATE(darwin, mach_reply_port);
Modified: trunk/coregrind/m_debuginfo/debuginfo.c (+1 -1)
===================================================================
--- trunk/coregrind/m_debuginfo/debuginfo.c 2012-08-02 11:40:31 +01:00 (rev 12813)
+++ trunk/coregrind/m_debuginfo/debuginfo.c 2012-08-02 19:25:04 +01:00 (rev 12814)
@@ -956,7 +956,7 @@
void VG_(di_notify_vm_protect)( Addr a, SizeT len, UInt prot )
{
Bool do_nothing = True;
-# if defined(VGP_x86_darwin) && DARWIN_VERS == DARWIN_10_7
+# if defined(VGP_x86_darwin) && (DARWIN_VERS == DARWIN_10_7 || DARWIN_VERS == DARWIN_10_8)
do_nothing = False;
# endif
if (do_nothing /* wrong platform */)
|
|
From: Lok K. Y. <lo...@sy...> - 2012-08-02 12:53:57
|
Unforunately, we cannot automatically generate a set of cases. On the other hand, we don't think that it is necessary. I think it might be best to use an example to illustrate how we can do the verification:
1. Convert the rule to SMT2. Here is some representative SMT code/declarations for the expensive add rule.
(bvor
(bvor qaa qbb)
(bvxor
(bvadd a_min b_min)
(bvadd a_max b_max)
)
)
The original code from mc_translate.c is:
// result = (qaa | qbb) | ((a_min + b_min) ^ (a_max + b_max))
return
assignNew('V', mce,ty,
binop( opOR,
assignNew('V', mce,ty, binop(opOR, qaa, qbb)),
assignNew('V', mce,ty,
binop( opXOR,
assignNew('V', mce,ty, binop(opADD, a_min, b_min)),
assignNew('V', mce,ty, binop(opADD, a_max, b_max))
)
)
)
);
I think the similarities should be evident. e.g., bvadd = opADD, bvor = opOR and etc.
2. Once the rule has been modeled, we use an SMT solver to verify that the rule is correct, i.e. defined means defined - no false negatives.
3. If the rule is not valid, then the SMT solver will provide a counter example, which can be considered as one single test case. For example, if I excluded the first part (qaa | qbb) from the rule above, we get the counter example below. Presuming that the counter example is correct (that is our verification model is correct) then we only have one single test case for this single rule. This test case might not apply to other rules at all.
aa = 0x81780200
qaa = 0xcdff1f83
bb = 0x008c0000
qbb = 0x31ec6105
Lok
________________________________________
From: Julian Seward [js...@ac...]
Sent: Thursday, August 02, 2012 5:02 AM
To: val...@li...
Cc: Lok Kwong Yan
Subject: Re: [Valgrind-developers] V-Bit Verification
> improved and and the add rules are sound. We are currently working on
> verifying the rest of the rules as well. Verifying rules involves first
> converting the rules to SMT and then using a SMT solver to prove its
> correctness against the model.
Is it possible to use your machinery to generate sets of test cases, maybe
pseudo-random, that can be used to test the code? As I mentioned before,
formal proofs are nice, but by themselves are of limited usefulness in the
scenario where the validated code base is in a state of change / maintenance.
J
|
|
From: <sv...@va...> - 2012-08-02 10:40:38
|
sewardj 2012-08-02 11:40:31 +0100 (Thu, 02 Aug 2012)
New Revision: 12813
Log:
Back out r12466, which stopped non-MAP_FIXED mmaps by the client on
Darwin from returning address zero (however insane that is). r12466
appears to cause other applications to break (TextEdit, for one).
Modified files:
trunk/coregrind/m_syswrap/syswrap-darwin.c
Modified: trunk/coregrind/m_syswrap/syswrap-darwin.c (+5 -37)
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-darwin.c 2012-08-02 10:26:38 +01:00 (rev 12812)
+++ trunk/coregrind/m_syswrap/syswrap-darwin.c 2012-08-02 11:40:31 +01:00 (rev 12813)
@@ -3547,44 +3547,12 @@
POST(mmap)
{
- vg_assert(SUCCESS);
- /* JRS 2012 Mar 26: RES != -1 is surely not the right way to check
- for success. In any case I think syswrap-main.c won't let us
- get here if the syscall failed, so the check is irrelevant. See
- VG_(post_syscall). */
- if (RES == -1)
- return;
- vg_assert(VG_IS_PAGE_ALIGNED(RES));
-
- /* begin KLUDGE */
- Bool did_kludge = False;
- if (ARG1 == 0 && !(ARG4 & MAP_FIXED) && RES == 0) {
- /* An mmap-anonymous succeeded at address zero. This is pretty
- stupid (legit, but dangerous); so repeat the mmap call so as
- to get a non-zero address. Then unmap the area that the
- original mmap created, and tidy up. Failure to do this is
- a causative factor in
- https://bugzilla.mozilla.org/show_bug.cgi?id=738034
- */
- SysRes more = VG_(am_do_mmap_NO_NOTIFY)(ARG1,ARG2,ARG3,ARG4,ARG5,ARG6);
- if (!sr_isError(more)) {
- Bool need_discard = False;
- VG_(am_munmap_client)(&need_discard, 0, ARG2);
- vg_assert(!need_discard);
- SET_STATUS_from_SysRes(more);
- did_kludge = True;
- }
+ if (RES != -1) {
+ ML_(notify_core_and_tool_of_mmap)(RES, ARG2, ARG3, ARG4, ARG5, ARG6);
+ // Try to load symbols from the region
+ VG_(di_notify_mmap)( (Addr)RES, False/*allow_SkFileV*/,
+ -1/*don't use_fd*/ );
}
- /* end KLUDGE */
-
- ML_(notify_core_and_tool_of_mmap)(RES, ARG2, ARG3, ARG4, ARG5, ARG6);
- // Try to load symbols from the region
- VG_(di_notify_mmap)( (Addr)RES, False/*allow_SkFileV*/,
- -1/*don't use_fd*/ );
- if (did_kludge) {
- /* Be paranoid if The Kludge happens. */
- VG_(am_do_sync_check)("(MMAP_ANON_ZERO_ZERO_KLUDGE)",__FILE__,__LINE__);
- }
}
|
|
From: <sv...@va...> - 2012-08-02 09:26:44
|
tom 2012-08-02 10:26:38 +0100 (Thu, 02 Aug 2012)
New Revision: 12812
Log:
Add BZ#304054 to NEWS.
Modified files:
trunk/NEWS
Modified: trunk/NEWS (+1 -0)
===================================================================
--- trunk/NEWS 2012-08-02 10:23:45 +01:00 (rev 12811)
+++ trunk/NEWS 2012-08-02 10:26:38 +01:00 (rev 12812)
@@ -276,6 +276,7 @@
OpenSSL with --track-origins=yes
303624 segmentation fault on Android 4.1 (e.g. on android emulator or Galaxy Nexus OMAP)
303963 strstr() function produces wrong results under valgrind callgrind
+304054 CALL_FN_xx macros need to enforce stack alignment
Release 3.7.0 (5 November 2011)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
From: <sv...@va...> - 2012-08-02 09:23:57
|
tom 2012-08-02 10:23:45 +0100 (Thu, 02 Aug 2012)
New Revision: 12811
Log:
Ensure CALL_FN_xx macros align the stack properly
The CALL_FN_xx macros in valgrind.h perform function calls by
signalling to valgrind using the client request system. Because
they are making function calls which are invisible to the compiler
they need to make sure that any stack alignment constraints
imposed by the ABI are enforced when making the call.
This commit enforces 16 byte alignment for x86, amd64, ppc32 and
ppc64 platforms, and 8 byte alignment for arm platforms.
It does not touch s390x where the ABI requires 8 byte alignment to
be maintained at all times, not just when making a function call.
It also does not touch mips32 as I'm not currently aware what if
any alignment constraints exist there.
Fixes BZ#304054 and observed alignment faults on amd64 when running
the regtests using a valgrind compiled with gcc 4.7 releases.
Modified files:
trunk/include/valgrind.h
Modified: trunk/include/valgrind.h (+632 -491)
===================================================================
--- trunk/include/valgrind.h 2012-08-01 23:27:29 +01:00 (rev 12810)
+++ trunk/include/valgrind.h 2012-08-02 10:23:45 +01:00 (rev 12811)
@@ -837,6 +837,17 @@
as gcc can already see that, plus causes gcc to bomb. */
#define __CALLER_SAVED_REGS /*"eax"*/ "ecx", "edx"
+/* Macros to save and align the stack before making a function
+ call and restore it afterwards as gcc may not keep the stack
+ pointer aligned if it doesn't realise calls are being made
+ to other functions. */
+
+#define VALGRIND_ALIGN_STACK \
+ "movl %%esp,%%edi\n\t" \
+ "andl $0xfffffff0,%%esp\n\t"
+#define VALGRIND_RESTORE_STACK \
+ "movl %%edi,%%esp\n\t"
+
/* These CALL_FN_ macros assume that on x86-linux, sizeof(unsigned
long) == 4. */
@@ -847,11 +858,13 @@
volatile unsigned long _res; \
_argvec[0] = (unsigned long)_orig.nraddr; \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -864,14 +877,15 @@
_argvec[0] = (unsigned long)_orig.nraddr; \
_argvec[1] = (unsigned long)(arg1); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"subl $12, %%esp\n\t" \
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $16, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -885,15 +899,16 @@
_argvec[1] = (unsigned long)(arg1); \
_argvec[2] = (unsigned long)(arg2); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"subl $8, %%esp\n\t" \
"pushl 8(%%eax)\n\t" \
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $16, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -908,16 +923,17 @@
_argvec[2] = (unsigned long)(arg2); \
_argvec[3] = (unsigned long)(arg3); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"subl $4, %%esp\n\t" \
"pushl 12(%%eax)\n\t" \
"pushl 8(%%eax)\n\t" \
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $16, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -933,16 +949,17 @@
_argvec[3] = (unsigned long)(arg3); \
_argvec[4] = (unsigned long)(arg4); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"pushl 16(%%eax)\n\t" \
"pushl 12(%%eax)\n\t" \
"pushl 8(%%eax)\n\t" \
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $16, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -959,6 +976,7 @@
_argvec[4] = (unsigned long)(arg4); \
_argvec[5] = (unsigned long)(arg5); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"subl $12, %%esp\n\t" \
"pushl 20(%%eax)\n\t" \
"pushl 16(%%eax)\n\t" \
@@ -967,10 +985,10 @@
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $32, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -988,6 +1006,7 @@
_argvec[5] = (unsigned long)(arg5); \
_argvec[6] = (unsigned long)(arg6); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"subl $8, %%esp\n\t" \
"pushl 24(%%eax)\n\t" \
"pushl 20(%%eax)\n\t" \
@@ -997,10 +1016,10 @@
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $32, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -1020,6 +1039,7 @@
_argvec[6] = (unsigned long)(arg6); \
_argvec[7] = (unsigned long)(arg7); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"subl $4, %%esp\n\t" \
"pushl 28(%%eax)\n\t" \
"pushl 24(%%eax)\n\t" \
@@ -1030,10 +1050,10 @@
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $32, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -1054,6 +1074,7 @@
_argvec[7] = (unsigned long)(arg7); \
_argvec[8] = (unsigned long)(arg8); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"pushl 32(%%eax)\n\t" \
"pushl 28(%%eax)\n\t" \
"pushl 24(%%eax)\n\t" \
@@ -1064,10 +1085,10 @@
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $32, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -1089,6 +1110,7 @@
_argvec[8] = (unsigned long)(arg8); \
_argvec[9] = (unsigned long)(arg9); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"subl $12, %%esp\n\t" \
"pushl 36(%%eax)\n\t" \
"pushl 32(%%eax)\n\t" \
@@ -1101,10 +1123,10 @@
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $48, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -1127,6 +1149,7 @@
_argvec[9] = (unsigned long)(arg9); \
_argvec[10] = (unsigned long)(arg10); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"subl $8, %%esp\n\t" \
"pushl 40(%%eax)\n\t" \
"pushl 36(%%eax)\n\t" \
@@ -1140,10 +1163,10 @@
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $48, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -1168,6 +1191,7 @@
_argvec[10] = (unsigned long)(arg10); \
_argvec[11] = (unsigned long)(arg11); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"subl $4, %%esp\n\t" \
"pushl 44(%%eax)\n\t" \
"pushl 40(%%eax)\n\t" \
@@ -1182,10 +1206,10 @@
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $48, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -1211,6 +1235,7 @@
_argvec[11] = (unsigned long)(arg11); \
_argvec[12] = (unsigned long)(arg12); \
__asm__ volatile( \
+ VALGRIND_ALIGN_STACK \
"pushl 48(%%eax)\n\t" \
"pushl 44(%%eax)\n\t" \
"pushl 40(%%eax)\n\t" \
@@ -1225,10 +1250,10 @@
"pushl 4(%%eax)\n\t" \
"movl (%%eax), %%eax\n\t" /* target->%eax */ \
VALGRIND_CALL_NOREDIR_EAX \
- "addl $48, %%esp\n" \
+ VALGRIND_RESTORE_STACK \
: /*out*/ "=a" (_res) \
: /*in*/ "a" (&_argvec[0]) \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "edi" \
); \
lval = (__typeof__(lval)) _res; \
} while (0)
@@ -1316,7 +1341,17 @@
# define VALGRIND_CFI_EPILOGUE
#endif
+/* Macros to save and align the stack before making a function
+ call and restore it afterwards as gcc may not keep the stack
+ pointer aligned if it doesn't realise calls are being made
+ to other functions. */
+#define VALGRIND_ALIGN_STACK \
+ "movq %%rsp,%%r14\n\t" \
+ "andq $0xfffffffffffffff0,%%rsp\n\t"
+#define VALGRIND_RESTORE_STACK \
+ "movq %%r14,%%rsp\n\t"
+
/* These CALL_FN_ macros assume that on amd64-linux, sizeof(unsigned
long) == 8. */
@@ -1341,432 +1376,439 @@
with the stack pointer doesn't give a danger of non-unwindable
stack. */
-#define CALL_FN_W_v(lval, orig) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[1]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $128,%%rsp\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- VALGRIND_CFI_EPILOGUE \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r15" \
- ); \
- lval = (__typeof__(lval)) _res; \
+#define CALL_FN_W_v(lval, orig) \
+ do { \
+ volatile OrigFn _orig = (orig); \
+ volatile unsigned long _argvec[1]; \
+ volatile unsigned long _res; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
+ __asm__ volatile( \
+ VALGRIND_CFI_PROLOGUE \
+ VALGRIND_ALIGN_STACK \
+ "subq $128,%%rsp\n\t" \
+ "movq (%%rax), %%rax\n\t" /* target->%rax */ \
+ VALGRIND_CALL_NOREDIR_RAX \
+ VALGRIND_RESTORE_STACK \
+ VALGRIND_CFI_EPILOGUE \
+ : /*out*/ "=a" (_res) \
+ : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \
+ ); \
+ lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_W(lval, orig, arg1) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[2]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $128,%%rsp\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- VALGRIND_CFI_EPILOGUE \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r15" \
- ); \
- lval = (__typeof__(lval)) _res; \
+#define CALL_FN_W_W(lval, orig, arg1) \
+ do { \
+ volatile OrigFn _orig = (orig); \
+ volatile unsigned long _argvec[2]; \
+ volatile unsigned long _res; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
+ _argvec[1] = (unsigned long)(arg1); \
+ __asm__ volatile( \
+ VALGRIND_CFI_PROLOGUE \
+ VALGRIND_ALIGN_STACK \
+ "subq $128,%%rsp\n\t" \
+ "movq 8(%%rax), %%rdi\n\t" \
+ "movq (%%rax), %%rax\n\t" /* target->%rax */ \
+ VALGRIND_CALL_NOREDIR_RAX \
+ VALGRIND_RESTORE_STACK \
+ VALGRIND_CFI_EPILOGUE \
+ : /*out*/ "=a" (_res) \
+ : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \
+ ); \
+ lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_WW(lval, orig, arg1,arg2) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[3]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $128,%%rsp\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- VALGRIND_CFI_EPILOGUE \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r15" \
- ); \
- lval = (__typeof__(lval)) _res; \
+#define CALL_FN_W_WW(lval, orig, arg1,arg2) \
+ do { \
+ volatile OrigFn _orig = (orig); \
+ volatile unsigned long _argvec[3]; \
+ volatile unsigned long _res; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
+ _argvec[1] = (unsigned long)(arg1); \
+ _argvec[2] = (unsigned long)(arg2); \
+ __asm__ volatile( \
+ VALGRIND_CFI_PROLOGUE \
+ VALGRIND_ALIGN_STACK \
+ "subq $128,%%rsp\n\t" \
+ "movq 16(%%rax), %%rsi\n\t" \
+ "movq 8(%%rax), %%rdi\n\t" \
+ "movq (%%rax), %%rax\n\t" /* target->%rax */ \
+ VALGRIND_CALL_NOREDIR_RAX \
+ VALGRIND_RESTORE_STACK \
+ VALGRIND_CFI_EPILOGUE \
+ : /*out*/ "=a" (_res) \
+ : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \
+ ); \
+ lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[4]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $128,%%rsp\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- VALGRIND_CFI_EPILOGUE \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r15" \
- ); \
- lval = (__typeof__(lval)) _res; \
+#define CALL_FN_W_WWW(lval, orig, arg1,arg2,arg3) \
+ do { \
+ volatile OrigFn _orig = (orig); \
+ volatile unsigned long _argvec[4]; \
+ volatile unsigned long _res; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
+ _argvec[1] = (unsigned long)(arg1); \
+ _argvec[2] = (unsigned long)(arg2); \
+ _argvec[3] = (unsigned long)(arg3); \
+ __asm__ volatile( \
+ VALGRIND_CFI_PROLOGUE \
+ VALGRIND_ALIGN_STACK \
+ "subq $128,%%rsp\n\t" \
+ "movq 24(%%rax), %%rdx\n\t" \
+ "movq 16(%%rax), %%rsi\n\t" \
+ "movq 8(%%rax), %%rdi\n\t" \
+ "movq (%%rax), %%rax\n\t" /* target->%rax */ \
+ VALGRIND_CALL_NOREDIR_RAX \
+ VALGRIND_RESTORE_STACK \
+ VALGRIND_CFI_EPILOGUE \
+ : /*out*/ "=a" (_res) \
+ : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \
+ ); \
+ lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[5]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $128,%%rsp\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- VALGRIND_CFI_EPILOGUE \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r15" \
- ); \
- lval = (__typeof__(lval)) _res; \
+#define CALL_FN_W_WWWW(lval, orig, arg1,arg2,arg3,arg4) \
+ do { \
+ volatile OrigFn _orig = (orig); \
+ volatile unsigned long _argvec[5]; \
+ volatile unsigned long _res; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
+ _argvec[1] = (unsigned long)(arg1); \
+ _argvec[2] = (unsigned long)(arg2); \
+ _argvec[3] = (unsigned long)(arg3); \
+ _argvec[4] = (unsigned long)(arg4); \
+ __asm__ volatile( \
+ VALGRIND_CFI_PROLOGUE \
+ VALGRIND_ALIGN_STACK \
+ "subq $128,%%rsp\n\t" \
+ "movq 32(%%rax), %%rcx\n\t" \
+ "movq 24(%%rax), %%rdx\n\t" \
+ "movq 16(%%rax), %%rsi\n\t" \
+ "movq 8(%%rax), %%rdi\n\t" \
+ "movq (%%rax), %%rax\n\t" /* target->%rax */ \
+ VALGRIND_CALL_NOREDIR_RAX \
+ VALGRIND_RESTORE_STACK \
+ VALGRIND_CFI_EPILOGUE \
+ : /*out*/ "=a" (_res) \
+ : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \
+ ); \
+ lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[6]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $128,%%rsp\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- VALGRIND_CFI_EPILOGUE \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r15" \
- ); \
- lval = (__typeof__(lval)) _res; \
+#define CALL_FN_W_5W(lval, orig, arg1,arg2,arg3,arg4,arg5) \
+ do { \
+ volatile OrigFn _orig = (orig); \
+ volatile unsigned long _argvec[6]; \
+ volatile unsigned long _res; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
+ _argvec[1] = (unsigned long)(arg1); \
+ _argvec[2] = (unsigned long)(arg2); \
+ _argvec[3] = (unsigned long)(arg3); \
+ _argvec[4] = (unsigned long)(arg4); \
+ _argvec[5] = (unsigned long)(arg5); \
+ __asm__ volatile( \
+ VALGRIND_CFI_PROLOGUE \
+ VALGRIND_ALIGN_STACK \
+ "subq $128,%%rsp\n\t" \
+ "movq 40(%%rax), %%r8\n\t" \
+ "movq 32(%%rax), %%rcx\n\t" \
+ "movq 24(%%rax), %%rdx\n\t" \
+ "movq 16(%%rax), %%rsi\n\t" \
+ "movq 8(%%rax), %%rdi\n\t" \
+ "movq (%%rax), %%rax\n\t" /* target->%rax */ \
+ VALGRIND_CALL_NOREDIR_RAX \
+ VALGRIND_RESTORE_STACK \
+ VALGRIND_CFI_EPILOGUE \
+ : /*out*/ "=a" (_res) \
+ : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \
+ ); \
+ lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[7]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $128,%%rsp\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $128,%%rsp\n\t" \
- VALGRIND_CFI_EPILOGUE \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r15" \
- ); \
- lval = (__typeof__(lval)) _res; \
+#define CALL_FN_W_6W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6) \
+ do { \
+ volatile OrigFn _orig = (orig); \
+ volatile unsigned long _argvec[7]; \
+ volatile unsigned long _res; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
+ _argvec[1] = (unsigned long)(arg1); \
+ _argvec[2] = (unsigned long)(arg2); \
+ _argvec[3] = (unsigned long)(arg3); \
+ _argvec[4] = (unsigned long)(arg4); \
+ _argvec[5] = (unsigned long)(arg5); \
+ _argvec[6] = (unsigned long)(arg6); \
+ __asm__ volatile( \
+ VALGRIND_CFI_PROLOGUE \
+ VALGRIND_ALIGN_STACK \
+ "subq $128,%%rsp\n\t" \
+ "movq 48(%%rax), %%r9\n\t" \
+ "movq 40(%%rax), %%r8\n\t" \
+ "movq 32(%%rax), %%rcx\n\t" \
+ "movq 24(%%rax), %%rdx\n\t" \
+ "movq 16(%%rax), %%rsi\n\t" \
+ "movq 8(%%rax), %%rdi\n\t" \
+ "movq (%%rax), %%rax\n\t" /* target->%rax */ \
+ VALGRIND_CALL_NOREDIR_RAX \
+ VALGRIND_RESTORE_STACK \
+ VALGRIND_CFI_EPILOGUE \
+ : /*out*/ "=a" (_res) \
+ : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \
+ ); \
+ lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[8]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $136,%%rsp\n\t" \
- "pushq 56(%%rax)\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $8, %%rsp\n" \
- "addq $136,%%rsp\n\t" \
- VALGRIND_CFI_EPILOGUE \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r15" \
- ); \
- lval = (__typeof__(lval)) _res; \
+#define CALL_FN_W_7W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7) \
+ do { \
+ volatile OrigFn _orig = (orig); \
+ volatile unsigned long _argvec[8]; \
+ volatile unsigned long _res; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
+ _argvec[1] = (unsigned long)(arg1); \
+ _argvec[2] = (unsigned long)(arg2); \
+ _argvec[3] = (unsigned long)(arg3); \
+ _argvec[4] = (unsigned long)(arg4); \
+ _argvec[5] = (unsigned long)(arg5); \
+ _argvec[6] = (unsigned long)(arg6); \
+ _argvec[7] = (unsigned long)(arg7); \
+ __asm__ volatile( \
+ VALGRIND_CFI_PROLOGUE \
+ VALGRIND_ALIGN_STACK \
+ "subq $136,%%rsp\n\t" \
+ "pushq 56(%%rax)\n\t" \
+ "movq 48(%%rax), %%r9\n\t" \
+ "movq 40(%%rax), %%r8\n\t" \
+ "movq 32(%%rax), %%rcx\n\t" \
+ "movq 24(%%rax), %%rdx\n\t" \
+ "movq 16(%%rax), %%rsi\n\t" \
+ "movq 8(%%rax), %%rdi\n\t" \
+ "movq (%%rax), %%rax\n\t" /* target->%rax */ \
+ VALGRIND_CALL_NOREDIR_RAX \
+ VALGRIND_RESTORE_STACK \
+ VALGRIND_CFI_EPILOGUE \
+ : /*out*/ "=a" (_res) \
+ : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \
+ ); \
+ lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[9]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $128,%%rsp\n\t" \
- "pushq 64(%%rax)\n\t" \
- "pushq 56(%%rax)\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $16, %%rsp\n" \
- "addq $128,%%rsp\n\t" \
- VALGRIND_CFI_EPILOGUE \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r15" \
- ); \
- lval = (__typeof__(lval)) _res; \
+#define CALL_FN_W_8W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8) \
+ do { \
+ volatile OrigFn _orig = (orig); \
+ volatile unsigned long _argvec[9]; \
+ volatile unsigned long _res; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
+ _argvec[1] = (unsigned long)(arg1); \
+ _argvec[2] = (unsigned long)(arg2); \
+ _argvec[3] = (unsigned long)(arg3); \
+ _argvec[4] = (unsigned long)(arg4); \
+ _argvec[5] = (unsigned long)(arg5); \
+ _argvec[6] = (unsigned long)(arg6); \
+ _argvec[7] = (unsigned long)(arg7); \
+ _argvec[8] = (unsigned long)(arg8); \
+ __asm__ volatile( \
+ VALGRIND_CFI_PROLOGUE \
+ VALGRIND_ALIGN_STACK \
+ "subq $128,%%rsp\n\t" \
+ "pushq 64(%%rax)\n\t" \
+ "pushq 56(%%rax)\n\t" \
+ "movq 48(%%rax), %%r9\n\t" \
+ "movq 40(%%rax), %%r8\n\t" \
+ "movq 32(%%rax), %%rcx\n\t" \
+ "movq 24(%%rax), %%rdx\n\t" \
+ "movq 16(%%rax), %%rsi\n\t" \
+ "movq 8(%%rax), %%rdi\n\t" \
+ "movq (%%rax), %%rax\n\t" /* target->%rax */ \
+ VALGRIND_CALL_NOREDIR_RAX \
+ VALGRIND_RESTORE_STACK \
+ VALGRIND_CFI_EPILOGUE \
+ : /*out*/ "=a" (_res) \
+ : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \
+ ); \
+ lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[10]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- _argvec[9] = (unsigned long)(arg9); \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $136,%%rsp\n\t" \
- "pushq 72(%%rax)\n\t" \
- "pushq 64(%%rax)\n\t" \
- "pushq 56(%%rax)\n\t" \
- "movq 48(%%rax), %%r9\n\t" \
- "movq 40(%%rax), %%r8\n\t" \
- "movq 32(%%rax), %%rcx\n\t" \
- "movq 24(%%rax), %%rdx\n\t" \
- "movq 16(%%rax), %%rsi\n\t" \
- "movq 8(%%rax), %%rdi\n\t" \
- "movq (%%rax), %%rax\n\t" /* target->%rax */ \
- VALGRIND_CALL_NOREDIR_RAX \
- "addq $24, %%rsp\n" \
- "addq $136,%%rsp\n\t" \
- VALGRIND_CFI_EPILOGUE \
- : /*out*/ "=a" (_res) \
- : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
- : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r15" \
- ); \
- lval = (__typeof__(lval)) _res; \
+#define CALL_FN_W_9W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
+ arg7,arg8,arg9) \
+ do { \
+ volatile OrigFn _orig = (orig); \
+ volatile unsigned long _argvec[10]; \
+ volatile unsigned long _res; \
+ _argvec[0] = (unsigned long)_orig.nraddr; \
+ _argvec[1] = (unsigned long)(arg1); \
+ _argvec[2] = (unsigned long)(arg2); \
+ _argvec[3] = (unsigned long)(arg3); \
+ _argvec[4] = (unsigned long)(arg4); \
+ _argvec[5] = (unsigned long)(arg5); \
+ _argvec[6] = (unsigned long)(arg6); \
+ _argvec[7] = (unsigned long)(arg7); \
+ _argvec[8] = (unsigned long)(arg8); \
+ _argvec[9] = (unsigned long)(arg9); \
+ __asm__ volatile( \
+ VALGRIND_CFI_PROLOGUE \
+ VALGRIND_ALIGN_STACK \
+ "subq $136,%%rsp\n\t" \
+ "pushq 72(%%rax)\n\t" \
+ "pushq 64(%%rax)\n\t" \
+ "pushq 56(%%rax)\n\t" \
+ "movq 48(%%rax), %%r9\n\t" \
+ "movq 40(%%rax), %%r8\n\t" \
+ "movq 32(%%rax), %%rcx\n\t" \
+ "movq 24(%%rax), %%rdx\n\t" \
+ "movq 16(%%rax), %%rsi\n\t" \
+ "movq 8(%%rax), %%rdi\n\t" \
+ "movq (%%rax), %%rax\n\t" /* target->%rax */ \
+ VALGRIND_CALL_NOREDIR_RAX \
+ VALGRIND_RESTORE_STACK \
+ VALGRIND_CFI_EPILOGUE \
+ : /*out*/ "=a" (_res) \
+ : /*in*/ "a" (&_argvec[0]) __FRAME_POINTER \
+ : /*trash*/ "cc", "memory", __CALLER_SAVED_REGS, "r14", "r15" \
+ ); \
+ lval = (__typeof__(lval)) _res; \
} while (0)
-#define CALL_FN_W_10W(lval, orig, arg1,arg2,arg3,arg4,arg5,arg6, \
- arg7,arg8,arg9,arg10) \
- do { \
- volatile OrigFn _orig = (orig); \
- volatile unsigned long _argvec[11]; \
- volatile unsigned long _res; \
- _argvec[0] = (unsigned long)_orig.nraddr; \
- _argvec[1] = (unsigned long)(arg1); \
- _argvec[2] = (unsigned long)(arg2); \
- _argvec[3] = (unsigned long)(arg3); \
- _argvec[4] = (unsigned long)(arg4); \
- _argvec[5] = (unsigned long)(arg5); \
- _argvec[6] = (unsigned long)(arg6); \
- _argvec[7] = (unsigned long)(arg7); \
- _argvec[8] = (unsigned long)(arg8); \
- _argvec[9] = (unsigned long)(arg9); \
- _argvec[10] = (unsigned long)(arg10); \
- __asm__ volatile( \
- VALGRIND_CFI_PROLOGUE \
- "subq $128,%%rsp\n\t" \
- "pushq 80(%%rax)\n\t" \
- "pushq 72(%%rax)\n\t" \
- "pushq 64(%%rax)\n\t" \
- "pushq 56(%%rax)\n\...
[truncated message content] |
|
From: Julian S. <js...@ac...> - 2012-08-02 09:10:42
|
> improved and and the add rules are sound. We are currently working on > verifying the rest of the rules as well. Verifying rules involves first > converting the rules to SMT and then using a SMT solver to prove its > correctness against the model. Is it possible to use your machinery to generate sets of test cases, maybe pseudo-random, that can be used to test the code? As I mentioned before, formal proofs are nice, but by themselves are of limited usefulness in the scenario where the validated code base is in a state of change / maintenance. J |
|
From: Julian S. <js...@ac...> - 2012-08-02 08:51:38
|
> > The second thing that is required is a way to write an > > instruction that passes its operands though an IROp that is > > specified in a test program, and no others -- so they can be > > tested individually. One way we could achieve this i to extend > > the "Special" instruction mechanism (eg, see guest_amd64_toIR.c > > and search for "Special") so that it will accept a > > pseudo-instruction with a specified IR op in the middle of it. > > Interesting idea with the advantage that you don't have to retarget it. The _toIR.c's for the architectures that we'd want to test on would require some minor modification. Also, we would have to specify these pseudo instructions to take operands from memory and write results back to memory, since without that we'd have to write target-specific assembly to get the operands to/from specific registers. So, yes, could be retargetable with a little care. J |
|
From: Julian S. <js...@ac...> - 2012-08-02 08:31:05
|
On Thursday, August 02, 2012, John Reiser wrote: > I consider that memcheck often generates incorrect V bits. Yes. This is by design. There's a tradeoff between accuracy of V bit tracking and performance. Memcheck is designed to be accurate enough to give a low false positive rate in real use scenarios whilst not being excessively slow. It is also designed to err on the side of false positives rather than false negatives. If there's one single thing that Loyan's crew could usefully do, it is to show that if a bit is marked as defined then it really is defined -- that is, demonstrate that there are no false negatives. False positives are inconvenient and we try to minimise them, but fundamentally are not a hindrance to using Memcheck to making software more reliable, since they can be worked around by over-initialising data. False negatives are dangerous -- they cause program flaws to be missed and there is no way to recover from that. > Memcheck does not understand word-wide binary integer inequality. > !!((a ^ b) & Va & Vb) ==> (a != b) True. Is this a problem in practice? I don't remember many bug reports about this. > Memcheck does not understand binary integer addition. [...] Yeah. We know. It leads to bug 242137. There is a mode in which addition is done exactly. The problem is it is slow and is not necessary 99.9% of the time. It would be nice to have an intermediate-cost version which is accurate enough to correctly handle the underlying LLVM optimisation whilst not being as expensive as the full version, but I'm not sure this is possible. > Memcheck gives up if it encounters Undef bits in floating point arithmetic. Yes. Show me the bug reports where this causes users problems in practice. > (a ^ a) ==> 0 regardless of Undef in 'a'; but memcheck ignores this xor-with-self cases are transformed out by iropt upstream of instrumentation, which gets rid of all such cases resulting from xoring a register with itself. > (x & ~x) ==> 0 regardless of Undef in 'x'; but memcheck ignores this Mmhmh, is this really a problem in practice? J |
|
From: Rich C. <rc...@wi...> - 2012-08-02 06:21:29
|
valgrind revision: 12810 VEX revision: 2454 C compiler: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646) (dot 1) Assembler: C library: unknown uname -mrs: Darwin 10.8.0 i386 Vendor version: unknown Nightly build on macamd64 ( Darwin 10.8.0 i386 ) Started at 2012-08-02 00:35:00 CDT Ended at 2012-08-02 01:21:05 CDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 542 tests, 129 stderr failures, 54 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/accounting (stderr) memcheck/tests/amd64/more_x87_fp (stdout) memcheck/tests/badpoll (stderr) memcheck/tests/big_blocks_freed_list (stderr) memcheck/tests/bug287260 (stderr) memcheck/tests/darwin/aio (stderr) memcheck/tests/darwin/pth-supp (stderr) memcheck/tests/darwin/scalar (stderr) memcheck/tests/darwin/scalar_nocancel (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/memcmptest (stderr) memcheck/tests/mismatches (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/overlap (stdout) memcheck/tests/overlap (stderr) memcheck/tests/post-syscall (stderr) memcheck/tests/strchr (stderr) memcheck/tests/test-plo-no (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/writev1 (stderr) cachegrind/tests/x86/fpu-28-108 (stderr) massif/tests/pages_as_heap (stderr) none/tests/allexec32 (stdout) none/tests/allexec32 (stderr) none/tests/allexec64 (stdout) none/tests/allexec64 (stderr) none/tests/amd64/bug137714-amd64 (stdout) none/tests/amd64/bug137714-amd64 (stderr) none/tests/amd64/bug156404-amd64 (stdout) none/tests/amd64/bug156404-amd64 (stderr) none/tests/amd64/fcmovnu (stdout) none/tests/amd64/fcmovnu (stderr) none/tests/amd64/fxtract (stdout) none/tests/amd64/fxtract (stderr) none/tests/amd64/jrcxz (stdout) none/tests/amd64/jrcxz (stderr) none/tests/amd64/looper (stdout) none/tests/amd64/looper (stderr) none/tests/amd64/loopnel (stdout) none/tests/amd64/loopnel (stderr) none/tests/amd64/movbe (stdout) none/tests/amd64/movbe (stderr) none/tests/amd64/shrld (stdout) none/tests/amd64/shrld (stderr) none/tests/amd64/slahf-amd64 (stdout) none/tests/amd64/slahf-amd64 (stderr) none/tests/async-sigs (stderr) none/tests/coolo_sigaction (stdout) none/tests/coolo_sigaction (stderr) none/tests/execve (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/manythreads (stdout) none/tests/manythreads (stderr) none/tests/mmap_fcntl_bug (stderr) none/tests/pth_blockedsig (stderr) none/tests/pth_exit (stderr) none/tests/require-text-symbol-2 (stderr) none/tests/rlimit64_nofile (stderr) none/tests/syscall-restart1 (stderr) none/tests/system (stderr) none/tests/thread-exits (stdout) none/tests/thread-exits (stderr) none/tests/x86/aad_aam (stdout) none/tests/x86/aad_aam (stderr) none/tests/x86/badseg (stdout) none/tests/x86/badseg (stderr) none/tests/x86/bt_everything (stdout) none/tests/x86/bt_everything (stderr) none/tests/x86/bt_literal (stdout) none/tests/x86/bt_literal (stderr) none/tests/x86/bug125959-x86 (stdout) none/tests/x86/bug125959-x86 (stderr) none/tests/x86/bug126147-x86 (stdout) none/tests/x86/bug126147-x86 (stderr) none/tests/x86/bug132813-x86 (stdout) none/tests/x86/bug132813-x86 (stderr) none/tests/x86/bug135421-x86 (stdout) none/tests/x86/bug135421-x86 (stderr) none/tests/x86/bug137714-x86 (stdout) none/tests/x86/bug137714-x86 (stderr) none/tests/x86/bug152818-x86 (stdout) none/tests/x86/bug152818-x86 (stderr) none/tests/x86/cmpxchg8b (stdout) none/tests/x86/cmpxchg8b (stderr) none/tests/x86/cpuid (stdout) none/tests/x86/cpuid (stderr) none/tests/x86/cse_fail (stdout) none/tests/x86/cse_fail (stderr) none/tests/x86/fcmovnu (stdout) none/tests/x86/fcmovnu (stderr) none/tests/x86/fpu_lazy_eflags (stdout) none/tests/x86/fpu_lazy_eflags (stderr) none/tests/x86/fxtract (stdout) none/tests/x86/fxtract (stderr) none/tests/x86/getseg (stdout) none/tests/x86/getseg (stderr) none/tests/x86/incdec_alt (stdout) none/tests/x86/incdec_alt (stderr) none/tests/x86/insn_basic (stdout) none/tests/x86/insn_basic (stderr) none/tests/x86/insn_cmov (stdout) none/tests/x86/insn_cmov (stderr) none/tests/x86/insn_fpu (stdout) none/tests/x86/insn_fpu (stderr) none/tests/x86/insn_mmx (stdout) none/tests/x86/insn_mmx (stderr) none/tests/x86/insn_sse (stdout) none/tests/x86/insn_sse (stderr) none/tests/x86/insn_sse2 (stdout) none/tests/x86/insn_sse2 (stderr) none/tests/x86/insn_sse3 (stdout) none/tests/x86/insn_sse3 (stderr) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/jcxz (stdout) none/tests/x86/jcxz (stderr) none/tests/x86/lahf (stdout) none/tests/x86/lahf (stderr) none/tests/x86/looper (stdout) none/tests/x86/looper (stderr) none/tests/x86/movx (stdout) none/tests/x86/movx (stderr) none/tests/x86/pushpopseg (stdout) none/tests/x86/pushpopseg (stderr) none/tests/x86/sbbmisc (stdout) none/tests/x86/sbbmisc (stderr) none/tests/x86/shift_ndep (stdout) none/tests/x86/shift_ndep (stderr) none/tests/x86/smc1 (stdout) none/tests/x86/smc1 (stderr) none/tests/x86/ssse3_misaligned (stderr) none/tests/x86/x86locked (stdout) none/tests/x86/x86locked (stderr) none/tests/x86/xadd (stdout) none/tests/x86/xadd (stderr) helgrind/tests/annotate_hbefore (stderr) helgrind/tests/annotate_rwlock (stderr) helgrind/tests/annotate_smart_pointer (stderr) helgrind/tests/cond_timedwait_invalid (stderr) helgrind/tests/free_is_write (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/hg06_readshared (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_destroy_cond (stderr) helgrind/tests/rwlock_race (stderr) helgrind/tests/rwlock_test (stderr) helgrind/tests/t2t_laog (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc02_simple_tls (stderr) helgrind/tests/tc03_re_excl (stderr) helgrind/tests/tc04_free_lock (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc07_hbl1 (stderr) helgrind/tests/tc08_hbl2 (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc10_rec_lock (stderr) helgrind/tests/tc11_XCHG (stderr) helgrind/tests/tc12_rwl_trivial (stderr) helgrind/tests/tc13_laog1 (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc15_laog_lockdel (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc23_bogus_condwait (stderr) helgrind/tests/tc24_nonzero_sem (stderr) drd/tests/annotate_barrier_xml (stderr) drd/tests/annotate_smart_pointer2 (stderr) drd/tests/hg03_inherit (stderr) ================================================= ./valgrind-new/cachegrind/tests/x86/fpu-28-108.stderr.diff ================================================= --- fpu-28-108.stderr.exp 2012-08-02 00:59:05.000000000 -0500 +++ fpu-28-108.stderr.out 2012-08-02 01:13:16.000000000 -0500 @@ -1,17 +1,28 @@ -I refs: -I1 misses: -LLi misses: -I1 miss rate: -LLi miss rate: - -D refs: -D1 misses: -LLd misses: -D1 miss rate: -LLd miss rate: - -LL refs: -LL misses: -LL miss rate: +valgrind: m_scheduler/scheduler.c:707 (do_pre_run_checks): Assertion 'VG_IS_32_ALIGNED(a_vex)' failed. + at 0x38014955: ??? + by 0x38014B18: ??? + by 0x38067067: ??? + by 0x38068EF7: ??? + by 0x380611C8: ??? + +sched status: + running_tid=1 + +Thread 1: status = VgTs_Runnable + at 0x8FE01030: _dyld_start (in /usr/lib/dyld) + + +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-new/drd/tests/annotate_barrier_xml.stderr.diff ================================================= --- annotate_barrier_xml.stderr.exp 2012-08-02 00:59:12.000000000 -0500 +++ annotate_barrier_xml.stderr.out 2012-08-02 01:17:54.000000000 -0500 @@ -188,7 +188,7 @@ <frame> <ip>0x........</ip> <obj>...</obj> - <fn>start_thread</fn> + <fn>_pthread_start</fn> </frame> </stack> <auxwhat>Address 0x........ is at offset 0 from 0x.........</auxwhat> ================================================= ./valgrind-new/drd/tests/annotate_smart_pointer2.stderr.diff ================================================= --- annotate_smart_pointer2.stderr.exp 2012-08-02 00:59:12.000000000 -0500 +++ annotate_smart_pointer2.stderr.out 2012-08-02 01:18:34.000000000 -0500 @@ -5,7 +5,8 @@ by 0x........: smart_ptr<counter>::operator=(counter*) (annotate_smart_pointer.cpp:?) by 0x........: main (annotate_smart_pointer.cpp:?) Address 0x........ is at offset ... from 0x......... Allocation context: - at 0x........: ...operator new... (vg_replace_malloc.c:...) + at 0x........: malloc (vg_replace_malloc.c:...) + by 0x........: operator new(unsigned long) (in /usr/lib/libstdc++.6.0.9.dylib) by 0x........: main (annotate_smart_pointer.cpp:?) Done. ================================================= ./valgrind-new/drd/tests/hg03_inherit.stderr.diff ================================================= --- hg03_inherit.stderr.exp 2012-08-02 00:59:12.000000000 -0500 +++ hg03_inherit.stderr.out 2012-08-02 01:19:00.000000000 -0500 @@ -12,5 +12,10 @@ Location 0x........ is 0 bytes inside shared[1], declared at hg03_inherit.c:11, in frame #? of thread 3 +Conflicting load by thread 3 at 0x........ size 4 + at 0x........: ??? + by 0x........: _pthread_free_pthread_onstack (in /...libc...) +Allocation context: Data section of /usr/lib/libSystem.B.dylib -ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) + +ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0) ================================================= ./valgrind-new/helgrind/tests/annotate_hbefore.stderr.diff ================================================= --- annotate_hbefore.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ annotate_hbefore.stderr.out 2012-08-02 01:16:19.000000000 -0500 @@ -0,0 +1,704 @@ +---Thread-Announcement------------------------------------------ + +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + +Thread #x was created + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_hbefore.c:333) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_hbefore.c:333) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_hbefore.c:333) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_hbefore.c:333) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_hbefore.c:333) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_hbefore.c:334) + +This conflicts with a previous read of size 4 by thread #x +Locks held: none + ... + <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/annotate_rwlock.stderr.diff ================================================= --- annotate_rwlock.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ annotate_rwlock.stderr.out 2012-08-02 01:16:21.000000000 -0500 @@ -1,17 +1,132 @@ ---Thread-Announcement------------------------------------------ +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + Thread #x was created ... by 0x........: pthread_create_WRK (hg_intercepts.c:...) - by 0x........: pthread_create@* (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_rwlock.c:164) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) by 0x........: main (annotate_rwlock.c:164) +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_rwlock.c:164) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_rwlock.c:164) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_rwlock.c:164) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (annotate_rwlock.c:164) + +This conflicts with a previous read of size 4 by thread #x +Locks held: none + ... <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/annotate_smart_pointer.stderr.diff ================================================= --- annotate_smart_pointer.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ annotate_smart_pointer.stderr.out 2012-08-02 01:16:25.000000000 -0500 @@ -1,4 +1,939 @@ +---Thread-Announcement------------------------------------------ + +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + +Thread #x was created + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: Thread::Create(void* (*)(void*), void*) (annotate_smart_pointer.cpp:145) + by 0x........: main (annotate_smart_pointer.cpp:319) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: Thread::Create(void* (*)(void*), void*) (annotate_smart_pointer.cpp:145) + by 0x........: main (annotate_smart_pointer.cpp:319) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: Thread::Create(void* (*)(void*), void*) (annotate_smart_pointer.cpp:145) + by 0x........: main (annotate_smart_pointer.cpp:319) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: Thread::Create(void* (*)(void*), void*) (annotate_smart_pointer.cpp:145) + by 0x........: main (annotate_smart_pointer.cpp:319) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: Thread::Create(void* (*)(void*), void*) (annotate_smart_pointer.cpp:145) + by 0x........: main (annotate_smart_pointer.cpp:319) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/cond_timedwait_invalid.stderr.diff ================================================= --- cond_timedwait_invalid.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ cond_timedwait_invalid.stderr.out 2012-08-02 01:16:25.000000000 -0500 @@ -5,11 +5,31 @@ ---------------------------------------------------------------- +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + Thread #x's call to pthread_cond_timedwait failed with error code 22 (EINVAL: Invalid argument) at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) - by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) + by 0x........: pthread_cond_timedwait (hg_intercepts.c:...) by 0x........: main (cond_timedwait_invalid.c:22) -ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) +ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0) ================================================= ./valgrind-new/helgrind/tests/free_is_write.stderr.diff ================================================= --- free_is_write.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ free_is_write.stderr.out 2012-08-02 01:16:27.000000000 -0500 @@ -1,16 +1,192 @@ +---Thread-Announcement------------------------------------------ + +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + Start. ---Thread-Announcement------------------------------------------ Thread #x was created ... by 0x........: pthread_create_WRK (hg_intercepts.c:...) - by 0x........: pthread_create@* (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) by 0x........: main (free_is_write.c:32) ----Thread-Announcement------------------------------------------ +---------------------------------------------------------------- -Thread #x is the program's root thread +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (free_is_write.c:32) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (free_is_write.c:32) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (free_is_write.c:32) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (free_is_write.c:32) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + by 0x........: pthread_join_WRK (hg_intercepts.c:...) + by 0x........: pthread_join* (hg_intercepts.c:...) + by 0x........: main (free_is_write.c:39) <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/hg01_all_ok.stderr.diff ================================================= --- hg01_all_ok.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ hg01_all_ok.stderr.out 2012-08-02 01:16:28.000000000 -0500 @@ -1,3 +1,740 @@ +---Thread-Announcement------------------------------------------ -ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + +Thread #x was created + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg01_all_ok.c:25) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg01_all_ok.c:25) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg01_all_ok.c:25) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg01_all_ok.c:25) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg01_all_ok.c:25) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg01_all_ok.c:26) + +This conflicts with a previous read of size 4 by thread #x +Locks held: none <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/hg02_deadlock.stderr.diff ================================================= --- hg02_deadlock.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ hg02_deadlock.stderr.out 2012-08-02 01:16:28.000000000 -0500 @@ -1,14 +1,275 @@ ---Thread-Announcement------------------------------------------ +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + +Thread #x was created + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg02_deadlock.c:35) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg02_deadlock.c:35) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg02_deadlock.c:35) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg02_deadlock.c:35) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg02_deadlock.c:35) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg02_deadlock.c:36) + +This conflicts with a previous read of size 4 by thread #x +Locks held: none + ... <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/hg03_inherit.stderr.diff ================================================= --- hg03_inherit.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ hg03_inherit.stderr.out 2012-08-02 01:16:32.000000000 -0500 @@ -1,15 +1,508 @@ ---Thread-Announcement------------------------------------------ +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + Thread #x was created ... by 0x........: pthread_create_WRK (hg_intercepts.c:...) - by 0x........: pthread_create@* (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg03_inherit.c:44) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg03_inherit.c:44) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg03_inherit.c:44) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg03_inherit.c:44) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg03_inherit.c:44) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg03_inherit.c:46) + +This conflicts with a previous read of size 4 by thread #x +Locks held: none <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/hg04_race.stderr.diff ================================================= --- hg04_race.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ hg04_race.stderr.out 2012-08-02 01:16:34.000000000 -0500 @@ -1,19 +1,238 @@ ---Thread-Announcement------------------------------------------ +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + Thread #x was created ... by 0x........: pthread_create_WRK (hg_intercepts.c:...) - by 0x........: pthread_create@* (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg04_race.c:19) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg04_race.c:19) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg04_race.c:19) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg04_race.c:19) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg04_race.c:19) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/hg05_race2.stderr.diff ================================================= --- hg05_race2.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ hg05_race2.stderr.out 2012-08-02 01:16:36.000000000 -0500 @@ -1,19 +1,186 @@ ---Thread-Announcement------------------------------------------ +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + Thread #x was created ... by 0x........: pthread_create_WRK (hg_intercepts.c:...) - by 0x........: pthread_create@* (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg05_race2.c:27) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg05_race2.c:27) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg05_race2.c:27) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg05_race2.c:27) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg05_race2.c:27) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/hg06_readshared.stderr.diff ================================================= --- hg06_readshared.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ hg06_readshared.stderr.out 2012-08-02 01:16:36.000000000 -0500 @@ -1,3 +1,755 @@ +---Thread-Announcement------------------------------------------ -ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + +Thread #x was created + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg06_readshared.c:24) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg06_readshared.c:24) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg06_readshared.c:24) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg06_readshared.c:24) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg06_readshared.c:24) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (hg06_readshared.c:25) + +This conflicts with a previous read of size 4 by thread #x +Locks held: none <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/locked_vs_unlocked1_fwd.stderr.diff ================================================= --- locked_vs_unlocked1_fwd.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ locked_vs_unlocked1_fwd.stderr.out 2012-08-02 01:16:38.000000000 -0500 @@ -1,18 +1,241 @@ ---Thread-Announcement------------------------------------------ +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + Thread #x was created ... by 0x........: pthread_create_WRK (hg_intercepts.c:...) - by 0x........: pthread_create@* (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/locked_vs_unlocked1_rev.stderr.diff ================================================= --- locked_vs_unlocked1_rev.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ locked_vs_unlocked1_rev.stderr.out 2012-08-02 01:16:40.000000000 -0500 @@ -1,18 +1,237 @@ ---Thread-Announcement------------------------------------------ +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + Thread #x was created ... by 0x........: pthread_create_WRK (hg_intercepts.c:...) - by 0x........: pthread_create@* (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked1.c:29) <truncated beyond 100 lines> ================================================= ./valgrind-new/helgrind/tests/locked_vs_unlocked2.stderr.diff ================================================= --- locked_vs_unlocked2.stderr.exp 2012-08-02 00:58:58.000000000 -0500 +++ locked_vs_unlocked2.stderr.out 2012-08-02 01:16:41.000000000 -0500 @@ -1,17 +1,272 @@ ---Thread-Announcement------------------------------------------ +Thread #x is the program's root thread + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_lock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_lock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x unlocked an invalid lock at 0x........ + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---------------------------------------------------------------- + +Thread #x's call to pthread_mutex_unlock failed + with error code 22 (EINVAL: Invalid argument) + at 0x........: pthread_mutex_unlock (hg_intercepts.c:...) + ... + +---Thread-Announcement------------------------------------------ + Thread #x was created ... by 0x........: pthread_create_WRK (hg_intercepts.c:...) - by 0x........: pthread_create@* (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked2.c:61) + +---------------------------------------------------------------- + +Possible data race during read of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked2.c:61) + +---------------------------------------------------------------- + +Possible data race during read of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked2.c:61) + +---------------------------------------------------------------- + +Possible data race during write of size 1 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 1 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) by 0x........: main (locked_vs_unlocked2.c:61) +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + +This conflicts with a previous write of size 4 by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked2.c:61) + +---------------------------------------------------------------- + +Possible data race during write of size 4 at 0x........ by thread #x +Locks held: none + ... + by 0x........: pthread_create_WRK (hg_intercepts.c:...) + by 0x........: pthread_create (hg_intercepts.c:...) + by 0x........: main (locked_vs_unlocked2.c:62) + +This conflicts with a previous read of size 4 b... [truncated message content] |
|
From: Rich C. <rc...@wi...> - 2012-08-02 04:46:37
|
valgrind revision: 12810 VEX revision: 2454 C compiler: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3) Assembler: C library: unknown uname -mrs: Darwin 10.8.0 i386 Vendor version: unknown Nightly build on macx86 ( Darwin 10.8.0 i386 ) Started at 2012-08-01 23:35:00 CDT Ended at 2012-08-01 23:46:20 CDT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo mv -f .deps/map_unmap.Tpo .deps/map_unmap.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o map_unmap map_unmap.o gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT mq.o -MD -MP -MF .deps/mq.Tpo -c -o mq.o mq.c mv -f .deps/mq.Tpo .deps/mq.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o mq mq.o gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -fnested-functions -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT nestedfns-nestedfns.o -MD -MP -MF .deps/nestedfns-nestedfns.Tpo -c -o nestedfns-nestedfns.o `test -f 'nestedfns.c' || echo './'`nestedfns.c mv -f .deps/nestedfns-nestedfns.Tpo .deps/nestedfns-nestedfns.Po gcc -Winline -Wall -Wshadow -g -arch i386 -fnested-functions -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o nestedfns nestedfns-nestedfns.o gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT pending.o -MD -MP -MF .deps/pending.Tpo -c -o pending.o pending.c mv -f .deps/pending.Tpo .deps/pending.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o pending pending.o gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT procfs-cmdline-exe.o -MD -MP -MF .deps/procfs-cmdline-exe.Tpo -c -o procfs-cmdline-exe.o procfs-cmdline-exe.c mv -f .deps/procfs-cmdline-exe.Tpo .deps/procfs-cmdline-exe.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o procfs-cmdline-exe procfs-cmdline-exe.o gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT pth_atfork1.o -MD -MP -MF .deps/pth_atfork1.Tpo -c -o pth_atfork1.o pth_atfork1.c make[4]: *** [check-am] Killed make[3]: *** [check-recursive] Error 1 make[2]: *** [check-recursive] Error 1 make[1]: *** [check-recursive] Error 1 make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo mv -f .deps/resolv.Tpo .deps/resolv.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o resolv resolv.o -lresolv -lpthread gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT rlimit_nofile.o -MD -MP -MF .deps/rlimit_nofile.Tpo -c -o rlimit_nofile.o rlimit_nofile.c mv -f .deps/rlimit_nofile.Tpo .deps/rlimit_nofile.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o rlimit_nofile rlimit_nofile.o gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT selfrun.o -MD -MP -MF .deps/selfrun.Tpo -c -o selfrun.o selfrun.c mv -f .deps/selfrun.Tpo .deps/selfrun.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o selfrun selfrun.o gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT sem.o -MD -MP -MF .deps/sem.Tpo -c -o sem.o sem.c mv -f .deps/sem.Tpo .deps/sem.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o sem sem.o gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT semlimit.o -MD -MP -MF .deps/semlimit.Tpo -c -o semlimit.o semlimit.c mv -f .deps/semlimit.Tpo .deps/semlimit.Po gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o semlimit semlimit.o -lpthread gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT sha1_test.o -MD -MP -MF .deps/sha1_test.Tpo -c -o sha1_test.o sha1_test.c make[4]: *** [check-am] Killed make[3]: *** [check-recursive] Error 1 make[2]: *** [check-recursive] Error 1 make[1]: *** [check-recursive] Error 1 make: *** [check] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Aug 1 23:40:48 2012 --- new.short Wed Aug 1 23:46:20 2012 *************** *** 6,22 **** Last 20 lines of verbose log follow echo ! mv -f .deps/resolv.Tpo .deps/resolv.Po ! gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o resolv resolv.o -lresolv -lpthread ! gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT rlimit_nofile.o -MD -MP -MF .deps/rlimit_nofile.Tpo -c -o rlimit_nofile.o rlimit_nofile.c ! mv -f .deps/rlimit_nofile.Tpo .deps/rlimit_nofile.Po ! gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o rlimit_nofile rlimit_nofile.o ! gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT selfrun.o -MD -MP -MF .deps/selfrun.Tpo -c -o selfrun.o selfrun.c ! mv -f .deps/selfrun.Tpo .deps/selfrun.Po ! gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o selfrun selfrun.o ! gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT sem.o -MD -MP -MF .deps/sem.Tpo -c -o sem.o sem.c ! mv -f .deps/sem.Tpo .deps/sem.Po ! gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o sem sem.o ! gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT semlimit.o -MD -MP -MF .deps/semlimit.Tpo -c -o semlimit.o semlimit.c ! mv -f .deps/semlimit.Tpo .deps/semlimit.Po ! gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o semlimit semlimit.o -lpthread ! gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT sha1_test.o -MD -MP -MF .deps/sha1_test.Tpo -c -o sha1_test.o sha1_test.c make[4]: *** [check-am] Killed --- 6,22 ---- Last 20 lines of verbose log follow echo ! mv -f .deps/map_unmap.Tpo .deps/map_unmap.Po ! gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o map_unmap map_unmap.o ! gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT mq.o -MD -MP -MF .deps/mq.Tpo -c -o mq.o mq.c ! mv -f .deps/mq.Tpo .deps/mq.Po ! gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o mq mq.o ! gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -fnested-functions -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT nestedfns-nestedfns.o -MD -MP -MF .deps/nestedfns-nestedfns.Tpo -c -o nestedfns-nestedfns.o `test -f 'nestedfns.c' || echo './'`nestedfns.c ! mv -f .deps/nestedfns-nestedfns.Tpo .deps/nestedfns-nestedfns.Po ! gcc -Winline -Wall -Wshadow -g -arch i386 -fnested-functions -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o nestedfns nestedfns-nestedfns.o ! gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT pending.o -MD -MP -MF .deps/pending.Tpo -c -o pending.o pending.c ! mv -f .deps/pending.Tpo .deps/pending.Po ! gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o pending pending.o ! gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT procfs-cmdline-exe.o -MD -MP -MF .deps/procfs-cmdline-exe.Tpo -c -o procfs-cmdline-exe.o procfs-cmdline-exe.c ! mv -f .deps/procfs-cmdline-exe.Tpo .deps/procfs-cmdline-exe.Po ! gcc -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -o procfs-cmdline-exe procfs-cmdline-exe.o ! gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include -I../../coregrind -I../../include -I../../VEX/pub -DVGA_x86=1 -DVGO_darwin=1 -DVGP_x86_darwin=1 -DVGPV_x86_darwin_vanilla=1 -Winline -Wall -Wshadow -g -arch i386 -Wno-long-long -Wno-pointer-sign -fno-stack-protector -MT pth_atfork1.o -MD -MP -MF .deps/pth_atfork1.Tpo -c -o pth_atfork1.o pth_atfork1.c make[4]: *** [check-am] Killed Congratulations, all tests passed! |
|
From: Philippe W. <phi...@sk...> - 2012-08-02 03:55:41
|
valgrind revision: 12810 VEX revision: 2454 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.3.1-3.fc16.ppc64 ppc64 Vendor version: Fedora release 16 (Verne) Nightly build on gcc110 ( Fedora release 16 (Verne), ppc64 ) Started at 2012-08-01 20:00:24 PDT Ended at 2012-08-01 20:54:21 PDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 530 tests, 6 stderr failures, 2 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) gdbserver_tests/mcmain_pic (stderrB) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) |
|
From: John R. <jr...@bi...> - 2012-08-02 03:33:57
|
On 08/01/2012 05:42 PM, Lok Kwong Yan wrote: > Please let me preface my comments with some comments on what we have done: OK, but I have posted short test cases for which memcheck generates false positive complaints of usage of uninit bits. So far, analysis and explanation have not fixed memcheck. > > 1. Our formal model is for tainting, which is (should) be equivalent to "undefinedness" in memcheck. > 2. Verification is also conducted for tainting. (Once again this should be equivalent to "undefinedness"). In particular, we have been successful in verifying or show that a bit that is marked as not-tainted is indeed not-tainted. We have not been successful (theorem prover times out) in verifying that something that is tainted CAN NOT be not-tainted - in all cases (e.g. this works for rotate left but not add). This means if a bit is marked as defined - then it is definitedly defined, whereas a bit that is marked as undefined can possible be defined. > 3. It is important to keep in mind that there are limitations to tracking definedness > (or tainting) through instructions. For example, the simple combo of a = a & ~a > is very hard to capture if we are looking at undefindness per instruction. > Basically the problem is that we don't know what the overall operation > is until we have processed over multiple instructions. There are only two operations [instructions] involved in "(a & ~a)". Why are two instructions so much more difficult than one? If the representation of the output properties for an instruction is in the same general form as the representation of the input properties, then an ordinary theorem prover should be able to cascade the two operations, and infer the conclusion quickly. > 4. We have NOT conducted any analysis on floating point units - the fundamental problem > for us is we haven't found an IEEE 754 model yet. Maybe we can write our own definitions? There was a formal model of [some parts of?] IEEE 754 written in the "Z" verification language (theorem prover language?), and some subset of the Transputer floating-point subsystem was verified successfully against this model. The work received a commendation from the British Crown. The Transputer was a chip of the late 1980s by STMicroelectronics, SGS-THOMSON Microelectronics, etc. > 5. Because the V-Bit rules are generic - they might lead to false positives for some special cases. > I think a good comparison is LEAKPOINT, http://www.eecis.udel.edu/~clause/research/papers/clause-orso-icse10.pdf. Thank you for the reference! > It is very interesting to me that their taint propagation rules (or definedness rules) are much simpler > than the V-Bit rules, but for their tests they achieved the same detection rate. I am not saying > that it will always remain true, but it is enlightening how simple rules can cover so many test cases. "detection rate" should be perfect: no false positives, no false negatives. This is _hardware_: so simple that even silicon can do it correctly [and profitably for the chip maker, even after all that research and development, chip fabrication, marketing, ...] [[Notice the different style of quoting below this point.]] > Memcheck does not understand word-wide binary integer inequality. > [snip] > LOK: *** From what I can see in the memcheck source code (mc_translate.c) > it seems like there is already support for accurately calculating the CmpEQ and CmpNE. > These rules seems correct - at least from my understanding of it, but I just > need to verify that they are correct. Whatever the support for accurately calculating CmpNE, nevertheless memcheck generates a false positive complaint. The test case in Bug 117362 still fails for me under memcheck 3.7.0 [the current release], almost SEVEN YEARS after first filing. > > Memcheck does not understand binary integer addition. > [snip] > LOK: *** I am also a little bit confused about the carry problem since there > expensiveAddSub (in mc_translate.c) seems to address the problem outlined above. > the default LEFT operation does not though. Did you try the test case? memcheck 3.7.0 gives me a false positive complaint. > Memcheck gives up if it encounters Undef bits in floating point arithmetic. > [snip] > LOK: *** Floating point is hard Floating point may be long (de-compose into several pieces of integers, operate, re-compose into floating point), but it is not difficult. > [snip] Shifting by > "either 2 or 3" (because of an Undef low bit in the count) need not > totally destroy the output, although in this case memcheck says "every bit > of the result is Undef, regardless of the actual bits and actual V bits > of the other operand." > > LOK: *** I agree that the pessimistic nature of the shift count being undefined > means the whole result is undefined could cause problems. At the same time, > it makes a lot of sense to make that tradeoff if performance is an issue. > We might be able to come up with improved rules (like the ones that were defined > for AND/OR/CMP/ADD/SUB) and if our model and methods turn out to be correct, > then verification of these new rules is possible. It seems to me that the performance issue can be handled by case analysis. The inline code emulates the operation as if all inputs are Valid ("untainted"), and in parallel performs such a check. If there are any Uninit bits ("tainted") then call an out-of-line helper, possibly semi-interpreted [perhaps even re-parsing the actual client target instruction] and possibly with a special calling sequence, not necessarily the normal ABI calling convention. -- |
|
From: Tom H. <to...@co...> - 2012-08-02 02:56:42
|
valgrind revision: 12810 VEX revision: 2454 C compiler: gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2) Assembler: GNU assembler version 2.19.51.0.14-3.fc11 20090722 C library: GNU C Library stable release version 2.10.2 uname -mrs: Linux 3.4.0-1.fc17.x86_64 x86_64 Vendor version: Fedora release 11 (Leonidas) Nightly build on bristol ( x86_64, Fedora 11 ) Started at 2012-08-02 03:30:53 BST Ended at 2012-08-02 03:56:27 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 607 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/long_namespace_xml (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: <br...@ac...> - 2012-08-02 02:55:45
|
valgrind revision: 12810
VEX revision: 2454
C compiler: gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-3)
Assembler: GNU assembler 2.15.92.0.2 20040927
C library: GNU C Library stable release version 2.3.4
uname -mrs: Linux 2.6.9-42.EL s390x
Vendor version: Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
Nightly build on z10-ec ( s390x build on z10-EC )
Started at 2012-08-01 22:20:09 EDT
Ended at 2012-08-01 22:55:15 EDT
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 519 tests, 6 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
memcheck/tests/manuel3 (stderr)
memcheck/tests/partial_load_ok (stderr)
memcheck/tests/varinfo6 (stderr)
helgrind/tests/tc09_bad_unlock (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc20_verifywrap (stderr)
=================================================
./valgrind-new/helgrind/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2012-08-01 22:38:37.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-08-01 22:50:43.000000000 -0400
@@ -42,14 +42,6 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:49)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:49)
-
---------------------
----------------------------------------------------------------
@@ -110,16 +102,8 @@
----------------------------------------------------------------
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-----------------------------------------------------------------
-
Thread #x: Exiting thread still holds 1 lock
...
-ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc18_semabuse.stderr.diff
=================================================
--- tc18_semabuse.stderr.exp 2012-08-01 22:38:37.000000000 -0400
+++ tc18_semabuse.stderr.out 2012-08-01 22:50:52.000000000 -0400
@@ -18,13 +18,5 @@
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:34)
-----------------------------------------------------------------
-Thread #x's call to sem_post failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_post_WRK (hg_intercepts.c:...)
- by 0x........: sem_post (hg_intercepts.c:...)
- by 0x........: main (tc18_semabuse.c:37)
-
-
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc20_verifywrap.stderr.diff
=================================================
--- tc20_verifywrap.stderr.exp 2012-08-01 22:38:37.000000000 -0400
+++ tc20_verifywrap.stderr.out 2012-08-01 22:51:02.000000000 -0400
@@ -1,7 +1,7 @@
------- This is output for >= glibc 2.4 ------
+------ This is output for < glibc 2.4 ------
---------------- pthread_create/join ----------------
@@ -45,13 +45,6 @@
----------------------------------------------------------------
-Thread #x's call to pthread_mutex_init failed
- with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
- at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:92)
-
-----------------------------------------------------------------
-
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:102)
@@ -63,26 +56,8 @@
at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:102)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_lock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:108)
-
-----------------------------------------------------------------
-Thread #x's call to pthread_mutex_trylock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:116)
-
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_timedlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:121)
+make pthread_mutex_lock fail: skipped on glibc < 2.4
----------------------------------------------------------------
@@ -90,13 +65,6 @@
at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:125)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:125)
-
---------------- pthread_cond_wait et al ----------------
@@ -215,14 +183,6 @@
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:242)
-----------------------------------------------------------------
-
-Thread #x's call to sem_post failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_post_WRK (hg_intercepts.c:...)
- by 0x........: sem_post (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:245)
-
FIXME: can't figure out how to verify wrap of sem_post
@@ -235,4 +195,4 @@
...
-ERROR SUMMARY: 23 errors from 23 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 17 errors from 17 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/memcheck/tests/manuel3.stderr.diff
=================================================
--- manuel3.stderr.exp 2012-08-01 22:38:46.000000000 -0400
+++ manuel3.stderr.out 2012-08-01 22:45:33.000000000 -0400
@@ -1,4 +1,3 @@
Conditional jump or move depends on uninitialised value(s)
- at 0x........: gcc_cant_inline_me (manuel3.c:22)
- by 0x........: main (manuel3.c:14)
+ at 0x........: main (manuel3.c:12)
=================================================
./valgrind-new/memcheck/tests/partial_load_ok.stderr.diff
=================================================
--- partial_load_ok.stderr.exp 2012-08-01 22:38:46.000000000 -0400
+++ partial_load_ok.stderr.out 2012-08-01 22:46:04.000000000 -0400
@@ -1,7 +1,13 @@
-Invalid read of size 4
+Invalid read of size 1
+ at 0x........: main (partial_load.c:16)
+ Address 0x........ is 0 bytes after a block of size 7 alloc'd
+ at 0x........: calloc (vg_replace_malloc.c:...)
+ by 0x........: main (partial_load.c:14)
+
+Invalid read of size 8
at 0x........: main (partial_load.c:23)
- Address 0x........ is 1 bytes inside a block of size 4 alloc'd
+ Address 0x........ is 1 bytes inside a block of size 8 alloc'd
at 0x........: calloc (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:20)
@@ -11,9 +17,9 @@
at 0x........: calloc (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:28)
-Invalid read of size 4
+Invalid read of size 8
at 0x........: main (partial_load.c:37)
- Address 0x........ is 0 bytes inside a block of size 4 free'd
+ Address 0x........ is 0 bytes inside a block of size 8 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:36)
@@ -25,4 +31,4 @@
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/memcheck/tests/partial_load_ok.stderr.diff64
=================================================
--- partial_load_ok.stderr.exp64 2012-08-01 22:38:46.000000000 -0400
+++ partial_load_ok.stderr.out 2012-08-01 22:46:04.000000000 -0400
@@ -1,4 +1,10 @@
+Invalid read of size 1
+ at 0x........: main (partial_load.c:16)
+ Address 0x........ is 0 bytes after a block of size 7 alloc'd
+ at 0x........: calloc (vg_replace_malloc.c:...)
+ by 0x........: main (partial_load.c:14)
+
Invalid read of size 8
at 0x........: main (partial_load.c:23)
Address 0x........ is 1 bytes inside a block of size 8 alloc'd
@@ -25,4 +31,4 @@
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/memcheck/tests/varinfo6.stderr.diff
=================================================
--- varinfo6.stderr.exp 2012-08-01 22:38:46.000000000 -0400
+++ varinfo6.stderr.out 2012-08-01 22:47:04.000000000 -0400
@@ -7,8 +7,7 @@
by 0x........: BZ2_bzCompress (varinfo6.c:4860)
by 0x........: BZ2_bzBuffToBuffCompress (varinfo6.c:5667)
by 0x........: main (varinfo6.c:6517)
- Location 0x........ is 2 bytes inside local var "budget"
- declared at varinfo6.c:3115, in frame #2 of thread 1
+ Address 0x........ is on thread 1's stack
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo6.c:34)
=================================================
./valgrind-new/memcheck/tests/varinfo6.stderr.diff-ppc64
=================================================
--- varinfo6.stderr.exp-ppc64 2012-08-01 22:38:46.000000000 -0400
+++ varinfo6.stderr.out 2012-08-01 22:47:04.000000000 -0400
@@ -1,5 +1,5 @@
Uninitialised byte(s) found during client check request
- at 0x........: croak (varinfo6.c:35)
+ at 0x........: croak (varinfo6.c:34)
by 0x........: mainSort (varinfo6.c:2999)
by 0x........: BZ2_blockSort (varinfo6.c:3143)
by 0x........: BZ2_compressBlock (varinfo6.c:4072)
@@ -10,7 +10,7 @@
Address 0x........ is on thread 1's stack
Uninitialised byte(s) found during client check request
- at 0x........: croak (varinfo6.c:35)
+ at 0x........: croak (varinfo6.c:34)
by 0x........: BZ2_decompress (varinfo6.c:1699)
by 0x........: BZ2_bzDecompress (varinfo6.c:5230)
by 0x........: BZ2_bzBuffToBuffDecompress (varinfo6.c:5715)
=================================================
./valgrind-old/helgrind/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2012-08-01 22:20:56.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2012-08-01 22:33:52.000000000 -0400
@@ -42,14 +42,6 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:49)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:49)
-
---------------------
----------------------------------------------------------------
@@ -110,16 +102,8 @@
----------------------------------------------------------------
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: nearly_main (tc09_bad_unlock.c:41)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-----------------------------------------------------------------
-
Thread #x: Exiting thread still holds 1 lock
...
-ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc18_semabuse.stderr.diff
=================================================
--- tc18_semabuse.stderr.exp 2012-08-01 22:20:56.000000000 -0400
+++ tc18_semabuse.stderr.out 2012-08-01 22:34:01.000000000 -0400
@@ -18,13 +18,5 @@
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc18_semabuse.c:34)
-----------------------------------------------------------------
-Thread #x's call to sem_post failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_post_WRK (hg_intercepts.c:...)
- by 0x........: sem_post (hg_intercepts.c:...)
- by 0x........: main (tc18_semabuse.c:37)
-
-
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc20_verifywrap.stderr.diff
=================================================
--- tc20_verifywrap.stderr.exp 2012-08-01 22:20:56.000000000 -0400
+++ tc20_verifywrap.stderr.out 2012-08-01 22:34:10.000000000 -0400
@@ -1,7 +1,7 @@
------- This is output for >= glibc 2.4 ------
+------ This is output for < glibc 2.4 ------
---------------- pthread_create/join ----------------
@@ -45,13 +45,6 @@
----------------------------------------------------------------
-Thread #x's call to pthread_mutex_init failed
- with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint)
- at 0x........: pthread_mutex_init (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:92)
-
-----------------------------------------------------------------
-
Thread #x: pthread_mutex_destroy of a locked mutex
at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:102)
@@ -63,26 +56,8 @@
at 0x........: pthread_mutex_destroy (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:102)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_lock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:108)
-
-----------------------------------------------------------------
-Thread #x's call to pthread_mutex_trylock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_trylock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:116)
-
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_timedlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_timedlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:121)
+make pthread_mutex_lock fail: skipped on glibc < 2.4
----------------------------------------------------------------
@@ -90,13 +65,6 @@
at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:125)
-----------------------------------------------------------------
-
-Thread #x's call to pthread_mutex_unlock failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_mutex_unlock (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:125)
-
---------------- pthread_cond_wait et al ----------------
@@ -215,14 +183,6 @@
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:242)
-----------------------------------------------------------------
-
-Thread #x's call to sem_post failed
- with error code 22 (EINVAL: Invalid argument)
- at 0x........: sem_post_WRK (hg_intercepts.c:...)
- by 0x........: sem_post (hg_intercepts.c:...)
- by 0x........: main (tc20_verifywrap.c:245)
-
FIXME: can't figure out how to verify wrap of sem_post
@@ -235,4 +195,4 @@
...
-ERROR SUMMARY: 23 errors from 23 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 17 errors from 17 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/memcheck/tests/manuel3.stderr.diff
=================================================
--- manuel3.stderr.exp 2012-08-01 22:21:15.000000000 -0400
+++ manuel3.stderr.out 2012-08-01 22:28:43.000000000 -0400
@@ -1,4 +1,3 @@
Conditional jump or move depends on uninitialised value(s)
- at 0x........: gcc_cant_inline_me (manuel3.c:22)
- by 0x........: main (manuel3.c:14)
+ at 0x........: main (manuel3.c:12)
=================================================
./valgrind-old/memcheck/tests/partial_load_ok.stderr.diff
=================================================
--- partial_load_ok.stderr.exp 2012-08-01 22:21:15.000000000 -0400
+++ partial_load_ok.stderr.out 2012-08-01 22:29:14.000000000 -0400
@@ -1,7 +1,13 @@
-Invalid read of size 4
+Invalid read of size 1
+ at 0x........: main (partial_load.c:16)
+ Address 0x........ is 0 bytes after a block of size 7 alloc'd
+ at 0x........: calloc (vg_replace_malloc.c:...)
+ by 0x........: main (partial_load.c:14)
+
+Invalid read of size 8
at 0x........: main (partial_load.c:23)
- Address 0x........ is 1 bytes inside a block of size 4 alloc'd
+ Address 0x........ is 1 bytes inside a block of size 8 alloc'd
at 0x........: calloc (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:20)
@@ -11,9 +17,9 @@
at 0x........: calloc (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:28)
-Invalid read of size 4
+Invalid read of size 8
at 0x........: main (partial_load.c:37)
- Address 0x........ is 0 bytes inside a block of size 4 free'd
+ Address 0x........ is 0 bytes inside a block of size 8 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (partial_load.c:36)
@@ -25,4 +31,4 @@
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/memcheck/tests/partial_load_ok.stderr.diff64
=================================================
--- partial_load_ok.stderr.exp64 2012-08-01 22:21:15.000000000 -0400
+++ partial_load_ok.stderr.out 2012-08-01 22:29:14.000000000 -0400
@@ -1,4 +1,10 @@
+Invalid read of size 1
+ at 0x........: main (partial_load.c:16)
+ Address 0x........ is 0 bytes after a block of size 7 alloc'd
+ at 0x........: calloc (vg_replace_malloc.c:...)
+ by 0x........: main (partial_load.c:14)
+
Invalid read of size 8
at 0x........: main (partial_load.c:23)
Address 0x........ is 1 bytes inside a block of size 8 alloc'd
@@ -25,4 +31,4 @@
For a detailed leak analysis, rerun with: --leak-check=full
For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/memcheck/tests/varinfo6.stderr.diff
=================================================
--- varinfo6.stderr.exp 2012-08-01 22:21:15.000000000 -0400
+++ varinfo6.stderr.out 2012-08-01 22:30:14.000000000 -0400
@@ -7,8 +7,7 @@
by 0x........: BZ2_bzCompress (varinfo6.c:4860)
by 0x........: BZ2_bzBuffToBuffCompress (varinfo6.c:5667)
by 0x........: main (varinfo6.c:6517)
- Location 0x........ is 2 bytes inside local var "budget"
- declared at varinfo6.c:3115, in frame #2 of thread 1
+ Address 0x........ is on thread 1's stack
Uninitialised byte(s) found during client check request
at 0x........: croak (varinfo6.c:34)
=================================================
./valgrind-old/memcheck/tests/varinfo6.stderr.diff-ppc64
=================================================
--- varinfo6.stderr.exp-ppc64 2012-08-01 22:21:15.000000000 -0400
+++ varinfo6.stderr.out 2012-08-01 22:30:14.000000000 -0400
@@ -1,5 +1,5 @@
Uninitialised byte(s) found during client check request
- at 0x........: croak (varinfo6.c:35)
+ at 0x........: croak (varinfo6.c:34)
by 0x........: mainSort (varinfo6.c:2999)
by 0x........: BZ2_blockSort (varinfo6.c:3143)
by 0x........: BZ2_compressBlock (varinfo6.c:4072)
@@ -10,7 +10,7 @@
Address 0x........ is on thread 1's stack
Uninitialised byte(s) found during client check request
- at 0x........: croak (varinfo6.c:35)
+ at 0x........: croak (varinfo6.c:34)
by 0x........: BZ2_decompress (varinfo6.c:1699)
by 0x........: BZ2_bzDecompress (varinfo6.c:5230)
by 0x........: BZ2_bzBuffToBuffDecompress (varinfo6.c:5715)
|
|
From: Rich C. <rc...@wi...> - 2012-08-02 02:55:04
|
valgrind revision: 12810
VEX revision: 2454
C compiler: gcc (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]
Assembler: GNU assembler (GNU Binutils; openSUSE 11.4) 2.21
C library: GNU C Library stable release version 2.11.3 (20110203)
uname -mrs: Linux 2.6.37.6-0.7-desktop x86_64
Vendor version: Welcome to openSUSE 11.4 "Celadon" - Kernel %r (%t).
Nightly build on ultra ( gcc 4.5.1 Linux 2.6.37.6-0.7-desktop x86_64 )
Started at 2012-08-01 21:30:01 CDT
Ended at 2012-08-01 21:54:54 CDT
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 615 tests, 2 stderr failures, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcbreak (stderrB)
gdbserver_tests/mcclean_after_fork (stderrB)
gdbserver_tests/mcleak (stderrB)
gdbserver_tests/mcmain_pic (stderrB)
gdbserver_tests/mcvabits (stderrB)
gdbserver_tests/mssnapshot (stderrB)
memcheck/tests/linux/timerfd-syscall (stderr)
memcheck/tests/origin5-bz2 (stderr)
=================================================
./valgrind-new/gdbserver_tests/mcbreak.stderrB.diff
=================================================
--- mcbreak.stderrB.exp 2012-08-01 21:42:52.902319918 -0500
+++ mcbreak.stderrB.out 2012-08-01 21:46:02.842342124 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
vgdb-error value changed from 999999 to 0
n_errs_found 1 n_errs_shown 1 (vgdb-error 0)
vgdb-error value changed from 0 to 0
=================================================
./valgrind-new/gdbserver_tests/mcclean_after_fork.stderrB.diff
=================================================
--- mcclean_after_fork.stderrB.exp 2012-08-01 21:42:52.902319918 -0500
+++ mcclean_after_fork.stderrB.out 2012-08-01 21:46:04.553541011 -0500
@@ -1,4 +1,6 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
monitor command request to kill this process
Remote connection closed
=================================================
./valgrind-new/gdbserver_tests/mcleak.stderrB.diff
=================================================
--- mcleak.stderrB.exp 2012-08-01 21:42:52.899319570 -0500
+++ mcleak.stderrB.out 2012-08-01 21:46:22.939677957 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
10 bytes in 1 blocks are still reachable in loss record ... of ...
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: f (leak-delta.c:14)
=================================================
./valgrind-new/gdbserver_tests/mcmain_pic.stderrB.diff
=================================================
--- mcmain_pic.stderrB.exp 2012-08-01 21:42:52.905320266 -0500
+++ mcmain_pic.stderrB.out 2012-08-01 21:46:24.542864286 -0500
@@ -1,3 +1,5 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
Remote connection closed
=================================================
./valgrind-new/gdbserver_tests/mcvabits.stderrB.diff
=================================================
--- mcvabits.stderrB.exp 2012-08-01 21:42:52.906320382 -0500
+++ mcvabits.stderrB.out 2012-08-01 21:46:29.463436180 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
Address 0x........ len 10 addressable
Address 0x........ is 0 bytes inside data symbol "undefined"
Address 0x........ len 10 defined
=================================================
./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2012-08-01 21:42:52.905320266 -0500
+++ mssnapshot.stderrB.out 2012-08-01 21:46:32.535793263 -0500
@@ -1,5 +1,9 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=92ec8fe859846a62345f74696ab349721415587a"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-new/memcheck/tests/linux/timerfd-syscall.stderr.diff
=================================================
--- timerfd-syscall.stderr.exp 2012-08-01 21:42:53.382375482 -0500
+++ timerfd-syscall.stderr.out 2012-08-01 21:47:37.217310664 -0500
@@ -33,7 +33,7 @@
got timer ticks (1) after 0.5 s
absolute timer test (at 500 ms) ...
waiting timer ...
-got timer ticks (1) after 0.5 s
+got timer ticks (1) after 0.0 s
sequential timer test (100 ms clock) ...
sleeping one second ...
timerfd_gettime returned:
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2012-08-01 21:42:54.163465887 -0500
+++ origin5-bz2.stderr.out 2012-08-01 21:47:52.601098543 -0500
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2012-08-01 21:42:54.144463687 -0500
+++ origin5-bz2.stderr.out 2012-08-01 21:47:52.601098543 -0500
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2012-08-01 21:42:54.085456858 -0500
+++ origin5-bz2.stderr.out 2012-08-01 21:47:52.601098543 -0500
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2012-08-01 21:42:54.117460563 -0500
+++ origin5-bz2.stderr.out 2012-08-01 21:47:52.601098543 -0500
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2012-08-01 21:42:54.130462067 -0500
+++ origin5-bz2.stderr.out 2012-08-01 21:47:52.601098543 -0500
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
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........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
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........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
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........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
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........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
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........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
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........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
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........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
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........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
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........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
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
<truncated beyond 100 lines>
=================================================
./valgrind-old/gdbserver_tests/mcbreak.stderrB.diff
=================================================
--- mcbreak.stderrB.exp 2012-08-01 21:30:24.871738217 -0500
+++ mcbreak.stderrB.out 2012-08-01 21:33:59.967635310 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
vgdb-error value changed from 999999 to 0
n_errs_found 1 n_errs_shown 1 (vgdb-error 0)
vgdb-error value changed from 0 to 0
=================================================
./valgrind-old/gdbserver_tests/mcclean_after_fork.stderrB.diff
=================================================
--- mcclean_after_fork.stderrB.exp 2012-08-01 21:30:24.871738217 -0500
+++ mcclean_after_fork.stderrB.out 2012-08-01 21:34:01.657830946 -0500
@@ -1,4 +1,6 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
monitor command request to kill this process
Remote connection closed
=================================================
./valgrind-old/gdbserver_tests/mcleak.stderrB.diff
=================================================
--- mcleak.stderrB.exp 2012-08-01 21:30:24.867737755 -0500
+++ mcleak.stderrB.out 2012-08-01 21:34:20.618025543 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
10 bytes in 1 blocks are still reachable in loss record ... of ...
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: f (leak-delta.c:14)
=================================================
./valgrind-old/gdbserver_tests/mcmain_pic.stderrB.diff
=================================================
--- mcmain_pic.stderrB.exp 2012-08-01 21:30:24.874738565 -0500
+++ mcmain_pic.stderrB.out 2012-08-01 21:34:22.230212149 -0500
@@ -1,3 +1,5 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
Remote connection closed
=================================================
./valgrind-old/gdbserver_tests/mcvabits.stderrB.diff
=================================================
--- mcvabits.stderrB.exp 2012-08-01 21:30:24.875738681 -0500
+++ mcvabits.stderrB.out 2012-08-01 21:34:27.184785629 -0500
@@ -1,5 +1,7 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
Address 0x........ len 10 addressable
Address 0x........ is 0 bytes inside data symbol "undefined"
Address 0x........ len 10 defined
=================================================
./valgrind-old/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2012-08-01 21:30:24.874738565 -0500
+++ mssnapshot.stderrB.out 2012-08-01 21:34:30.362153401 -0500
@@ -1,5 +1,9 @@
relaying data between gdb and process ....
vgdb-error value changed from 0 to 999999
+
+
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=92ec8fe859846a62345f74696ab349721415587a"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-old/memcheck/tests/linux/timerfd-syscall.stderr.diff
=================================================
--- timerfd-syscall.stderr.exp 2012-08-01 21:30:26.063876207 -0500
+++ timerfd-syscall.stderr.out 2012-08-01 21:35:35.263665562 -0500
@@ -33,7 +33,7 @@
got timer ticks (1) after 0.5 s
absolute timer test (at 500 ms) ...
waiting timer ...
-got timer ticks (1) after 0.5 s
+got timer ticks (1) after 0.0 s
sequential timer test (100 ms clock) ...
sleeping one second ...
timerfd_gettime returned:
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2012-08-01 21:30:26.505927375 -0500
+++ origin5-bz2.stderr.out 2012-08-01 21:35:50.330409488 -0500
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2012-08-01 21:30:26.489925523 -0500
+++ origin5-bz2.stderr.out 2012-08-01 21:35:50.330409488 -0500
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2012-08-01 21:30:26.433919039 -0500
+++ origin5-bz2.stderr.out 2012-08-01 21:35:50.330409488 -0500
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2012-08-01 21:30:26.462922397 -0500
+++ origin5-bz2.stderr.out 2012-08-01 21:35:50.330409488 -0500
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2012-08-01 21:30:26.475923901 -0500
+++ origin5-bz2.stderr.out 2012-08-01 21:35:50.330409488 -0500
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
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........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
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........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
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........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
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........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
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........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
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........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
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........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
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........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
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........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
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
<truncated beyond 100 lines>
|
|
From: Tom H. <to...@co...> - 2012-08-02 02:49:34
|
valgrind revision: 12810 VEX revision: 2454 C compiler: gcc (GCC) 4.4.5 20101112 (Red Hat 4.4.5-2) Assembler: GNU assembler version 2.20.51.0.2-20.fc13 20091009 C library: GNU C Library stable release version 2.12.2 uname -mrs: Linux 3.4.0-1.fc17.x86_64 x86_64 Vendor version: Fedora release 13 (Goddard) Nightly build on bristol ( x86_64, Fedora 13 ) Started at 2012-08-02 03:22:04 BST Ended at 2012-08-02 03:49:25 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 607 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_barrier3 (stderr) |
|
From: Tom H. <to...@co...> - 2012-08-02 02:49:17
|
valgrind revision: 12810 VEX revision: 2454 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) Assembler: GNU assembler version 2.18.50.0.6-2 20080403 C library: GNU C Library stable release version 2.8 uname -mrs: Linux 3.4.0-1.fc17.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2012-08-02 03:41:24 BST Ended at 2012-08-02 03:49:03 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo avx-1.c:2120: Error: no such instruction: `vpclmulqdq $0x01,%xmm6,%xmm8,%xmm7' avx-1.c:2120: Error: no such instruction: `vpclmulqdq $0x01,(%rax),%xmm8,%xmm7' avx-1.c:2123: Error: no such instruction: `vpclmulqdq $0x10,%xmm6,%xmm8,%xmm7' avx-1.c:2123: Error: no such instruction: `vpclmulqdq $0x10,(%rax),%xmm8,%xmm7' avx-1.c:2126: Error: no such instruction: `vpclmulqdq $0x11,%xmm6,%xmm8,%xmm7' avx-1.c:2126: Error: no such instruction: `vpclmulqdq $0x11,(%rax),%xmm8,%xmm7' avx-1.c:2129: Error: no such instruction: `vpclmulqdq $0xFF,%xmm6,%xmm8,%xmm7' avx-1.c:2129: Error: no such instruction: `vpclmulqdq $0xFF,(%rax),%xmm8,%xmm7' make[5]: *** [avx-1.o] Error 1 rm insn_ssse3.c insn_sse3.c insn_sse.c insn_mmx.c insn_fpu.c insn_pclmulqdq.c insn_sse2.c insn_basic.c make[5]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-new/none/tests/amd64' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-new/none/tests/amd64' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-new/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-new/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-new' make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... failed Last 20 lines of verbose log follow echo avx-1.c:2120: Error: no such instruction: `vpclmulqdq $0x01,%xmm6,%xmm8,%xmm7' avx-1.c:2120: Error: no such instruction: `vpclmulqdq $0x01,(%rax),%xmm8,%xmm7' avx-1.c:2123: Error: no such instruction: `vpclmulqdq $0x10,%xmm6,%xmm8,%xmm7' avx-1.c:2123: Error: no such instruction: `vpclmulqdq $0x10,(%rax),%xmm8,%xmm7' avx-1.c:2126: Error: no such instruction: `vpclmulqdq $0x11,%xmm6,%xmm8,%xmm7' avx-1.c:2126: Error: no such instruction: `vpclmulqdq $0x11,(%rax),%xmm8,%xmm7' avx-1.c:2129: Error: no such instruction: `vpclmulqdq $0xFF,%xmm6,%xmm8,%xmm7' avx-1.c:2129: Error: no such instruction: `vpclmulqdq $0xFF,(%rax),%xmm8,%xmm7' make[5]: *** [avx-1.o] Error 1 rm insn_ssse3.c insn_sse3.c insn_sse.c insn_mmx.c insn_fpu.c insn_pclmulqdq.c insn_sse2.c insn_basic.c make[5]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-old/none/tests/amd64' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-old/none/tests/amd64' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-old/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-old/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-old' make: *** [check] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2012-08-02 03:45:22.377720554 +0100 --- new.short 2012-08-02 03:49:03.980100002 +0100 *************** *** 16,26 **** rm insn_ssse3.c insn_sse3.c insn_sse.c insn_mmx.c insn_fpu.c insn_pclmulqdq.c insn_sse2.c insn_basic.c ! make[5]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-old/none/tests/amd64' make[4]: *** [check-am] Error 2 ! make[4]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-old/none/tests/amd64' make[3]: *** [check-recursive] Error 1 ! make[3]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-old/none/tests' make[2]: *** [check-recursive] Error 1 ! make[2]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-old/none' make[1]: *** [check-recursive] Error 1 ! make[1]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-old' make: *** [check] Error 2 --- 16,26 ---- rm insn_ssse3.c insn_sse3.c insn_sse.c insn_mmx.c insn_fpu.c insn_pclmulqdq.c insn_sse2.c insn_basic.c ! make[5]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-new/none/tests/amd64' make[4]: *** [check-am] Error 2 ! make[4]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-new/none/tests/amd64' make[3]: *** [check-recursive] Error 1 ! make[3]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-new/none/tests' make[2]: *** [check-recursive] Error 1 ! make[2]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-new/none' make[1]: *** [check-recursive] Error 1 ! make[1]: Leaving directory `/tmp/vgtest-9123/2012-08-02/valgrind-new' make: *** [check] Error 2 |
|
From: Tom H. <to...@co...> - 2012-08-02 02:45:20
|
valgrind revision: 12810 VEX revision: 2454 C compiler: gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4) Assembler: GNU assembler version 2.20.51.0.7-8.fc14 20100318 C library: GNU C Library stable release version 2.13 uname -mrs: Linux 3.4.0-1.fc17.x86_64 x86_64 Vendor version: Fedora release 14 (Laughlin) Nightly build on bristol ( x86_64, Fedora 14 ) Started at 2012-08-02 03:11:41 BST Ended at 2012-08-02 03:45:07 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 622 tests, 1 stderr failure, 0 stdout failures, 1 stderrB failure, 2 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallWSRU (stderrB) gdbserver_tests/nlcontrolc (stdoutB) gdbserver_tests/nlpasssigalrm (stdoutB) memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2012-08-02 02:32:03
|
valgrind revision: 12810 VEX revision: 2454 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.4.0-1.fc17.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2012-08-02 03:02:15 BST Ended at 2012-08-02 03:31:50 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 624 tests, 2 stderr failures, 0 stdout failures, 1 stderrB failure, 2 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallWSRU (stderrB) gdbserver_tests/nlcontrolc (stdoutB) gdbserver_tests/nlpasssigalrm (stdoutB) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/overlap (stderr) |