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
(9) |
|
2
(24) |
3
(22) |
4
(16) |
5
(32) |
6
(19) |
7
(22) |
8
(30) |
|
9
(21) |
10
(21) |
11
(20) |
12
(13) |
13
(24) |
14
(23) |
15
(13) |
|
16
(11) |
17
(6) |
18
(12) |
19
(17) |
20
(26) |
21
(25) |
22
(37) |
|
23
(32) |
24
(21) |
25
(30) |
26
(22) |
27
(24) |
28
(19) |
29
(9) |
|
30
(5) |
31
(6) |
|
|
|
|
|
|
From: Florian K. <br...@ac...> - 2011-10-08 22:59:13
|
On 10/08/2011 06:22 PM, Philippe Waroquiers wrote: > So, I wrote a script which checks that all *.exp or *.vgtest or *.gdb > (and similar) are present in the Makefile.am. > > Now, I just need to not forget the run the script :). > > Maybe this check could be part of make regtest ? > (then nobody can forget anymore) > I for one would welcome the integration of your script in make regtest. Does it work both ways and remind me if a no longer existent file is still listed in Makefile.am ? Which typically will happen when renaming a file. Florian |
|
From: John R. <jr...@bi...> - 2011-10-08 22:40:47
|
LibBEX_Alloc is confused about 4- versus 8-alignment, and it matters
on some hardware such as ARM. (On most x86/x86_64 it works but costs
one extra cycle per access.)
On a 32-bit machine, the results of LibVEX_Alloc (VEX/pub/libvex.h)
are only 4-aligned:
Int ALIGN;
ALIGN = sizeof(void*)-1; // 3 for 32-bit, 7 for 64-bit
nbytes = (nbytes + ALIGN) & ~ALIGN;
curr = private_LibVEX_alloc_curr;
next = curr + nbytes;
if (next >= private_LibVEX_alloc_last)
private_LibVEX_alloc_OOM();
private_LibVEX_alloc_curr = next;
return curr;
yet the code in VEX/priv/main_util.c had intentions for 8-aligned:
static HChar temporary[N_TEMPORARY_BYTES] __attribute__((aligned(8)));
static HChar permanent[N_PERMANENT_BYTES] __attribute__((aligned(8)));
gcc-4.6 on armv5te (gcc -O) assumes 8-aligned, without proof of safety:
(gdb) x/23i IRStmt_IMark
0x380e8804 <IRStmt_IMark>: push {r4, r5, r6, lr}
0x380e8808 <IRStmt_IMark+4>: ldr r5, [pc, #56] ; &private_LibVEX_alloc_curr
0x380e880c <IRStmt_IMark+8>: ldr r4, [pc, #56] ; &private_LibVEX_alloc_last
0x380e8810 <IRStmt_IMark+12>: ldr r12, [r5] ; private_LibVEX_alloc_curr
0x380e8814 <IRStmt_IMark+16>: ldr r6, [r4] ; private_LibVEX_alloc_last
0x380e8818 <IRStmt_IMark+20>: add r4, r12, #24
0x380e881c <IRStmt_IMark+24>: cmp r4, r6
0x380e8820 <IRStmt_IMark+28>: bcs 0x380e8844 <IRStmt_IMark+64>
0x380e8824 <IRStmt_IMark+32>: strd r0, [r12, #8] ; garbage unless 8-aligned
On armv5te this works so far for memcheck (regression tests pass except for
minor errors in debug info, ldrex/strex atomics, floating point hardware,
mmap of fractional page [beginning of .data]), but fails miserably for callgrind.
I'm going to try forcing 8-alignment by:
ALIGN = 8 -1;
--
|
|
From: Philippe W. <phi...@sk...> - 2011-10-08 22:22:31
|
> I plead guilty. Sorry for that. I keep forgetting about make dist. > I'll try to be more careful. I also forgot to add such files in the past. So, I wrote a script which checks that all *.exp or *.vgtest or *.gdb (and similar) are present in the Makefile.am. Now, I just need to not forget the run the script :). Maybe this check could be part of make regtest ? (then nobody can forget anymore) Philippe |
|
From: <sv...@va...> - 2011-10-08 20:49:16
|
Author: sewardj Date: 2011-10-08 21:44:28 +0100 (Sat, 08 Oct 2011) New Revision: 2213 Log: A major overhaul to the amd64 instruction decoder. The purpose is to get to a situation where AVX instructions can be added relatively cleanly. The long chains of if-then-else-s previously used to identify instructions have are replaced by a shallow tree of switch statements. This is may or may not have the unintended but welcome side effect of making the whole JIT noticeably faster (seems like it, but I haven't measured properly yet). A few instructions (in, out variants, + others) have not yet been re-enabled, due to lack of test cases. Modified: branches/AVX/priv/guest_amd64_toIR.c [... diff too large to include ...] |
|
From: Christian B. <bor...@de...> - 2011-10-08 20:22:29
|
valgrind revision: 12125 VEX revision: 2211 GCC version: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] C library: GNU C Library stable release version 2.11.1 (20100118), by Roland McGrath et al. uname -mrs: Linux 2.6.32.45-0.3-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP1 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP1 gcc 4.3.4 on z196 (s390x) ) Started at 2011-10-08 21:45:01 CEST Ended at 2011-10-08 22:22:13 CEST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 499 tests, 5 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/linux/timerfd-syscall (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) drd/tests/tc04_free_lock (stderr) drd/tests/tc09_bad_unlock (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 499 tests, 5 stderr failures, 0 stdout failures, 8 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) gdbserver_tests/nlpasssigalrm (stderrB) gdbserver_tests/nlsigvgdb (stderrB) memcheck/tests/linux/timerfd-syscall (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) drd/tests/tc04_free_lock (stderr) drd/tests/tc09_bad_unlock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Oct 8 22:04:33 2011 --- new.short Sat Oct 8 22:22:13 2011 *************** *** 8,18 **** ! == 499 tests, 5 stderr failures, 0 stdout failures, 8 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) ! gdbserver_tests/nlpasssigalrm (stderrB) ! gdbserver_tests/nlsigvgdb (stderrB) memcheck/tests/linux/timerfd-syscall (stderr) --- 8,10 ---- ! == 499 tests, 5 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/linux/timerfd-syscall (stderr) |
|
From: <sv...@va...> - 2011-10-08 20:16:51
|
Author: sewardj Date: 2011-10-08 21:12:07 +0100 (Sat, 08 Oct 2011) New Revision: 12127 Log: Swizzle external. Modified: branches/AVX/ Property changes on: branches/AVX ___________________________________________________________________ Name: svn:externals - VEX svn://svn.valgrind.org/vex/trunk + VEX svn://svn.valgrind.org/vex/branches/AVX |
|
From: <sv...@va...> - 2011-10-08 20:14:44
|
Author: sewardj Date: 2011-10-08 21:09:59 +0100 (Sat, 08 Oct 2011) New Revision: 12126 Log: Create a new branch from copy of trunk r12125, for work on supporting AVX instructions. Added: branches/AVX/ Copied: branches/AVX (from rev 12125, trunk) |
|
From: <sv...@va...> - 2011-10-08 20:10:00
|
Author: sewardj Date: 2011-10-08 21:05:15 +0100 (Sat, 08 Oct 2011) New Revision: 2212 Log: Create a new branch from copy of trunk r2211, for work on supporting AVX instructions. Added: branches/AVX/ Copied: branches/AVX (from rev 2211, trunk) |
|
From: Christian B. <bor...@de...> - 2011-10-08 20:09:09
|
valgrind revision: 12125 VEX revision: 2211 GCC version: gcc (GCC) 4.5.3 20110121 (Red Hat 4.5.3-3) C library: GNU C Library stable release version 2.12.1, by Roland McGrath et al. uname -mrs: Linux 2.6.38-06555.ga44f99c.48.x.20110321-s390xgit s390x Vendor version: unknown Nightly build on fedora390 ( Fedora 13/14/15 mix with gcc 3.5.3 on z196 (s390x) ) Started at 2011-10-08 21:45:01 CEST Ended at 2011-10-08 22:09:23 CEST 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 == 498 tests, 5 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/linux/timerfd-syscall (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) drd/tests/tc04_free_lock (stderr) drd/tests/tc09_bad_unlock (stderr) |
|
From: John R. <jr...@bi...> - 2011-10-08 20:01:39
|
> With some modifications in the dispatcher (not understanding what I was doing :), > Valgrind could execute some more blocks (but fails quickly in the system linker > when loading the vg preload .so). Comment c4 on https://bugs.kde.org/show_bug.cgi?id=276897 patches a dispatcher which works for me in both ARM and Thumb modes on Linux. > Otherwise, any help to do some more validation of the patch in bug 283600 > on a (real) android system is welcome. I have noticed that gcc miscompiles more often for ARM than for x86. See my test case of bad DW_AT_location for local variable in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639818#10 -- |
|
From: Florian K. <br...@ac...> - 2011-10-08 17:10:27
|
On 10/07/2011 09:46 AM, Julian Seward wrote: > > It's great to see the regtests getting fixed up. > > Relatedly .. if you add/remove/rename svn-tracked files > (in this case, the various expected-output files), please be sure > to update EXTRA_DIST in the associated Makefile.am. If that > doesn't happen then either > > (a) "make dist" (building the tarball) fails, or > (b) make dist works, but running regression tests from a > tarball fails, because files are missing, or > (c) running regression tests from a tarball falsely causes some tests > on some platforms to fail when the same from-svn-tree would succeed, > because the necessary special-case .exp files are missing. > > (c) is particularly scary, because it's invisible most of the time. > > I just tried running 'make dist', and it fails with > make[2]: *** No rule to make target `badjump.stderr.exp-s390x', needed by > `distdir'. Stop. > > Looking back over the commits of the past few days, I see the following > which added/removed/renamed files, but have no Makefile.am changes: > > 12107 12103 12098 12097 12092 12091 12079 12077 > I plead guilty. Sorry for that. I keep forgetting about make dist. I'll try to be more careful. Florian |
|
From: Florian K. <br...@ac...> - 2011-10-08 16:52:44
|
On 10/08/2011 12:03 PM, Philippe Waroquiers wrote: >> Log: >> On systems where /proc/sys/kernel/yama/ptrace_scope exists we need to >> check its value to avoid testcase failure. > > What are the failure symptoms that are observed ? --- mcinvokeRU.stderrB.exp 2011-06-28 19:44:22.000000000 -0400 +++ mcinvokeRU.stderrB.out 2011-10-08 12:42:27.736839000 -0400 @@ -1,7 +1,25 @@ +syscall failed: Operation not permitted +attach main pid PTRACE_ATTACH pid 2456 -1 +error attach main pid 2456 +Note: your kernel restricts ptrace invoker using /proc/sys/kernel/yama/ptrace_scope +vgdb will only be able to attach to a Valgrind process +blocked in a system call *after* an initial successful attach sending command v.wait 0 to pid .... sending command v.wait 0 to pid .... sending command v.wait 0 to pid .... -sending command v.wait 0 to pid .... +syscall failed: Operation not permitted +attach main pid PTRACE_ATTACH pid 2456 -1 +error attach main pid 2456 +Note: your kernel restricts ptrace invoker using /proc/sys/kernel/yama/ptrace_scope +vgdb will only be able to attach to a Valgrind process +blocked in a system call *after* an initial successful attach +sending command v.wait 0 to pid .... +syscall failed: Operation not permitted +attach main pid PTRACE_ATTACH pid 2456 -1 +error attach main pid 2456 +Note: your kernel restricts ptrace invoker using /proc/sys/kernel/yama/ptrace_scope +vgdb will only be able to attach to a Valgrind process +blocked in a system call *after* an initial successful attach sending command v.wait 0 to pid .... sending command v.wait 0 to pid .... sending command v.wait 0 to pid .... > A working ptrace invoker is however needed in case a process is blocked > in a system call (see e.g. mcinvokeWS.vgtest). > I had seen the comment in the vgtest file but failed to locate vgdb.ptraceinvoker in my tree. And grepping the tree didn't reveal where it was created... So I wasn't sure what it was doing. I'm happy to use the same prereq as mcinvokeWS if that is the right thing to do. Let me know. Florian |
|
From: Philippe W. <phi...@sk...> - 2011-10-08 16:03:33
|
> Log: > On systems where /proc/sys/kernel/yama/ptrace_scope exists we need to > check its value to avoid testcase failure. What are the failure symptoms that are observed ? It is not clear to me why this needs to be checked. A comment in the vgtest file indicates that there is no need of ptrace invoker : as the process is always executing basic blocks, it will poll for vgdb as part of the scheduler loop, and so will allow vgdb to transmit its command even if ptrace is not implemented in vgdb or restricted by the kernel. A working ptrace invoker is however needed in case a process is blocked in a system call (see e.g. mcinvokeWS.vgtest). Otherwise, if really a working ptrace invoker is needed, other tests are checking that with the existence of the file vgdb.ptraceinvoker (see e.g. mcinvokeWS.vgtest). Philippe |
|
From: <sv...@va...> - 2011-10-08 16:03:12
|
Author: florian
Date: 2011-10-08 16:58:26 +0100 (Sat, 08 Oct 2011)
New Revision: 12125
Log:
Update exp file. Back trace changed due to r12108.
Modified:
trunk/exp-sgcheck/tests/bad_percentify.stderr.exp-glibc28-amd64
Modified: trunk/exp-sgcheck/tests/bad_percentify.stderr.exp-glibc28-amd64
===================================================================
--- trunk/exp-sgcheck/tests/bad_percentify.stderr.exp-glibc28-amd64 2011-10-08 15:27:36 UTC (rev 12124)
+++ trunk/exp-sgcheck/tests/bad_percentify.stderr.exp-glibc28-amd64 2011-10-08 15:58:26 UTC (rev 12125)
@@ -1,11 +1,11 @@
Invalid read of size 1
at 0x........: local_strlen (bad_percentify.c:138)
- by 0x........: VG_vsprintf (bad_percentify.c:531)
- by 0x........: VG_sprintf (bad_percentify.c:541)
- by 0x........: VG_percentify (bad_percentify.c:568)
- by 0x........: VG_print_translation_stats (bad_percentify.c:621)
- by 0x........: main (bad_percentify.c:641)
+ by 0x........: VG_vsprintf (bad_percentify.c:535)
+ by 0x........: VG_sprintf (bad_percentify.c:545)
+ by 0x........: VG_percentify (bad_percentify.c:572)
+ by 0x........: VG_print_translation_stats (bad_percentify.c:625)
+ by 0x........: main (bad_percentify.c:645)
Address 0x........ expected vs actual:
Expected: stack array "buf" of size 6 in frame 4 back from here
Actual: unknown
@@ -14,13 +14,13 @@
Invalid read of size 1
at 0x........: local_strlen (bad_percentify.c:138)
by 0x........: myvprintf_str (bad_percentify.c:187)
- by 0x........: VG_debugLog_vprintf (bad_percentify.c:479)
+ by 0x........: VG_debugLog_vprintf (bad_percentify.c:490)
by 0x........: vprintf_to_buf (bad_percentify.c:89)
by 0x........: vprintf_WRK (bad_percentify.c:102)
by 0x........: VG_vprintf (bad_percentify.c:115)
by 0x........: VG_printf (bad_percentify.c:124)
- by 0x........: VG_print_translation_stats (bad_percentify.c:622)
- by 0x........: main (bad_percentify.c:641)
+ by 0x........: VG_print_translation_stats (bad_percentify.c:626)
+ by 0x........: main (bad_percentify.c:645)
Address 0x........ expected vs actual:
Expected: stack array "buf" of size 6 in frame 7 back from here
Actual: unknown
|
|
From: <sv...@va...> - 2011-10-08 15:32:22
|
Author: florian Date: 2011-10-08 16:27:36 +0100 (Sat, 08 Oct 2011) New Revision: 12124 Log: On systems where /proc/sys/kernel/yama/ptrace_scope exists we need to check its value to avoid testcase failure. Modified: trunk/gdbserver_tests/mcinvokeRU.vgtest Modified: trunk/gdbserver_tests/mcinvokeRU.vgtest =================================================================== --- trunk/gdbserver_tests/mcinvokeRU.vgtest 2011-10-08 12:41:12 UTC (rev 12123) +++ trunk/gdbserver_tests/mcinvokeRU.vgtest 2011-10-08 15:27:36 UTC (rev 12124) @@ -1,5 +1,6 @@ # test that vgdb can invoke a process when all threads are in Runnable or Yielding mode # If the test goes wrong, it might consume CPU during a long time. +prereq: ! test -e "/proc/sys/kernel/yama/ptrace_scope" || [ "`cat /proc/sys/kernel/yama/ptrace_scope`" = "0" ] prog: sleepers args: 1 0 1000000000 B-B-B-B- vgopts: --tool=memcheck --vgdb=yes --vgdb-prefix=./vgdb-prefix-mcinvokeRU |
|
From: Philippe W. <phi...@sk...> - 2011-10-08 15:06:45
|
I have done the changes needed to have vgdb compiling and working on Android (see https://bugs.kde.org/show_bug.cgi?id=283600 ). As I have no android system, I used the Android emulator part of the SDK to test. However, this emulator emulates an armv5 (so not a cortex a8). To obtain a Valgrind on Android, I followed README.android (there is only one typo in this: need to replace nexus_t by nexus_s IIUC). In terms of source patching, I started by applying the patches c2 and c3 from https://bugs.kde.org/show_bug.cgi?id=276897 (without these patches, the trunk does not compile for armv5). With the patches, this gave a dispatcher that could not execute more than one block : infinite loop producing FASTMISS output lines when enabling the scheduler tracing). With some modifications in the dispatcher (not understanding what I was doing :), Valgrind could execute some more blocks (but fails quickly in the system linker when loading the vg preload .so). With the above, Valgrind executes enough blocks that I could do some manual testing of a gdb running on a fedora/x86 and connecting to the Valgrind gdbserver running on Android emulator. At first sight, gdb+Valgrind gdbserver on Android seems ok. If someone has a patch to obtain a working Valgrind on the Android emulator armv5, I am interested :). Otherwise, any help to do some more validation of the patch in bug 283600 on a (real) android system is welcome. Philippe |
|
From: Philippe W. <phi...@sk...> - 2011-10-08 14:50:07
|
> The regression tests on POWER7/SLES 11 SP1 (using Oct 6, 2011 SVN) actually compare quite favorably to Valgrind 3.6.1 on a POWER5 > (POWER7 support did not yet exist in 3.6.1 timeframe). For reference, here are the results: The attached diff files also contains differences for mcbreak, but mcbreak is not in the below list ??? > gdbserver_tests/mcinfcallRU (stderr) > gdbserver_tests/mcinfcallWSRU (stderr) > gdbserver_tests/mcinfcallWSRU (stderrB) These 3 failures+the mcbreak seems linked to problems to do an inferior function call. (see below). > gdbserver_tests/mcsignopass (stderr) > gdbserver_tests/mcsignopass (stdoutB) > gdbserver_tests/mcsigpass (stderr) > gdbserver_tests/mcsigpass (stdoutB) The above tests are based on none/tests/faultstatus which also fails. I think that if faultstatus is fixed, these should also work. > gdbserver_tests/nlcontrolc (stdoutB) > gdbserver_tests/nlpasssigalrm (stdoutB) These two are failing as the filter script does not properly remove or transform the power7 specific line: from /lib64/power7/libc.so.6 and 0x........ in .__GI_kill () from /lib64/power7/libc.so.6 The (already horrible) gdbserver_tests/filter_gdb should be further enhanced to filter or transform these. ... > Unfortunately, POWER5/SLES 10 SP3 (current SVN) compared much worse to Valgrind 3.6.1 -- lots of callgrind and helgrind failures. > Whereas results from an April 15 snapshot of SVN was almost identical to the 3.6.1 results (with just two extra callgrind > testcases failing). > Also, some gdbserver tests usually hang the regtest on this processor; thus, I have to remove the gdbserver/*vgtest files in order > to get > 'make regtest' to complete. I have seen occasional hangs of gdbserver tests on POWER7, too, but not often. Hanging tests are often caused by inferior function calls not working properly. A possible technique to investigate this is to compare the behaviour of the "standard" gdbserver with the valgrind gdbserver (see gdbserver_tests/README_DEVELOPERS). Philippe |
|
From: Florian K. <br...@ac...> - 2011-10-08 13:33:17
|
On my x86 netbook the tests none/tests/x86/insn_ssse3 none/tests/x86/insn_ssse3_misaligned are failing because configure and x86_amd64_features do not agree about the presence of SSSE3. configure thinks it is not supported, x86_amd64_features returns 0 thereby indicating support. I think that x86_amd64_features is right. See /proc/cpuinfo below. During "make regtest" the make process attempts to execute e.g insn_ssse3 which does not exist. Curious... Is this the way it is supposed to work? I mean if it has been determined (during configury) that the test cannot run and therefore the executable has not been built, why trying to invoke it? Florian processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 28 model name : Intel(R) Atom(TM) CPU N270 @ 1.60GHz stepping : 2 cpu MHz : 800.000 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht t m pbe nx constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm dts bogomips : 3200.32 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 32 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 28 model name : Intel(R) Atom(TM) CPU N270 @ 1.60GHz stepping : 2 cpu MHz : 800.000 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 1 initial apicid : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht t m pbe nx constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm dts bogomips : 3199.99 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 32 bits virtual power management: |
|
From: Florian K. <br...@ac...> - 2011-10-08 12:47:34
|
On 10/06/2011 11:11 AM, Christian Borntraeger wrote: >> --- gdbserver_tests/filter_vgdb (revision 12106) >> +++ gdbserver_tests/filter_vgdb (working copy) >> @@ -14,4 +14,7 @@ >> sed -e 's/\(relaying data between gdb and process \)[0-9][0-9]*/\1..../' \ >> -e 's/\(sending command .* to pid \)[0-9][0-9]*/\1..../' \ >> -e '/Cannot access memory at address 0x......../d' \ >> - -e '/^[1-9][0-9]* \.\.\/sysdeps\/powerpc\/powerpc32\/dl-start\.S: No such file or directory\./d' >> + -e '/^[1-9][0-9]* \.\.\/sysdeps\/powerpc\/powerpc32\/dl-start\.S: No such file or directory\./d' | >> + >> +# filter some debuginfo problems with ld.so and SLES11 >> +sed -e '/^1 rtld.c: No such file or directory\./d' >> > > Any chance to apply that, to see if that works tonight? > Done in r12123. Sorry for the delay. I'm travelling and my thinkpad died.... Florian |
|
From: <sv...@va...> - 2011-10-08 12:45:58
|
Author: florian
Date: 2011-10-08 13:41:12 +0100 (Sat, 08 Oct 2011)
New Revision: 12123
Log:
Filter around some debuginfo problems with ld.so on SLES11
Patch by Christian Borntraeger (bor...@de...).
Modified:
trunk/gdbserver_tests/filter_vgdb
Modified: trunk/gdbserver_tests/filter_vgdb
===================================================================
--- trunk/gdbserver_tests/filter_vgdb 2011-10-08 08:56:27 UTC (rev 12122)
+++ trunk/gdbserver_tests/filter_vgdb 2011-10-08 12:41:12 UTC (rev 12123)
@@ -14,4 +14,7 @@
sed -e 's/\(relaying data between gdb and process \)[0-9][0-9]*/\1..../' \
-e 's/\(sending command .* to pid \)[0-9][0-9]*/\1..../' \
-e '/Cannot access memory at address 0x......../d' \
- -e '/^[1-9][0-9]* \.\.\/sysdeps\/powerpc\/powerpc32\/dl-start\.S: No such file or directory\./d'
+ -e '/^[1-9][0-9]* \.\.\/sysdeps\/powerpc\/powerpc32\/dl-start\.S: No such file or directory\./d' |
+
+# filter some debuginfo problems with ld.so and SLES11
+sed -e '/^1 rtld.c: No such file or directory\./d'
|
|
From: <sv...@va...> - 2011-10-08 09:01:13
|
Author: bart
Date: 2011-10-08 09:56:27 +0100 (Sat, 08 Oct 2011)
New Revision: 12122
Log:
drd: Use Vg_DebugMsg for debug messages
Modified:
trunk/drd/drd_semaphore.c
Modified: trunk/drd/drd_semaphore.c
===================================================================
--- trunk/drd/drd_semaphore.c 2011-10-08 08:54:57 UTC (rev 12121)
+++ trunk/drd/drd_semaphore.c 2011-10-08 08:56:27 UTC (rev 12122)
@@ -56,7 +56,7 @@
tl_assert(sg);
n = VG_(addToXA)(p->last_sem_post_seg, &sg);
#if 0
- VG_(message)(Vg_UserMsg, "0x%lx push: added at position %ld/%ld",
+ VG_(message)(Vg_DebugMsg, "0x%lx push: added at position %ld/%ld",
p->a1, n, VG_(sizeXA)(p->last_sem_post_seg));
#endif
tl_assert(*(Segment**)VG_(indexXA)(p->last_sem_post_seg, n) == sg);
@@ -70,7 +70,7 @@
sz = VG_(sizeXA)(p->last_sem_post_seg);
#if 0
- VG_(message)(Vg_UserMsg, "0x%lx pop: removed from position %ld/%ld",
+ VG_(message)(Vg_DebugMsg, "0x%lx pop: removed from position %ld/%ld",
p->a1, sz - 1, sz);
#endif
sg = 0;
|
|
From: <sv...@va...> - 2011-10-08 08:59:43
|
Author: bart
Date: 2011-10-08 09:54:57 +0100 (Sat, 08 Oct 2011)
New Revision: 12121
Log:
drd: Convert a few VG_(message)() calls into VG_(maybe_record_error)() calls
Modified:
trunk/drd/drd_barrier.c
trunk/drd/drd_load_store.c
trunk/drd/drd_mutex.c
trunk/drd/drd_rwlock.c
trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin-amd64
trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin-x86
trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-x86
Modified: trunk/drd/drd_barrier.c
===================================================================
--- trunk/drd/drd_barrier.c 2011-10-08 08:29:29 UTC (rev 12120)
+++ trunk/drd/drd_barrier.c 2011-10-08 08:54:57 UTC (rev 12121)
@@ -335,20 +335,20 @@
OSet* oset;
p = DRD_(barrier_get)(barrier);
- if (p == 0 && barrier_type == gomp_barrier)
- {
+ if (p == 0 && barrier_type == gomp_barrier) {
/*
* gomp_barrier_wait() call has been intercepted but gomp_barrier_init()
* not. The only cause I know of that can trigger this is that libgomp.so
* has been compiled with --enable-linux-futex.
*/
- VG_(message)(Vg_UserMsg, "\n");
- VG_(message)(Vg_UserMsg,
- "Please verify whether gcc has been configured"
- " with option --disable-linux-futex.\n");
- VG_(message)(Vg_UserMsg,
- "See also the section about OpenMP in the DRD manual.\n");
- VG_(message)(Vg_UserMsg, "\n");
+ BarrierErrInfo bei = { DRD_(thread_get_running_tid)(), 0, 0, 0 };
+ VG_(maybe_record_error)(VG_(get_running_tid)(),
+ BarrierErr,
+ VG_(get_IP)(VG_(get_running_tid)()),
+ "Please verify whether gcc has been configured"
+ " with option --disable-linux-futex. See also"
+ " the section about OpenMP in the DRD manual.",
+ &bei);
}
tl_assert(p);
Modified: trunk/drd/drd_load_store.c
===================================================================
--- trunk/drd/drd_load_store.c 2011-10-08 08:29:29 UTC (rev 12120)
+++ trunk/drd/drd_load_store.c 2011-10-08 08:54:57 UTC (rev 12121)
@@ -129,7 +129,7 @@
VG_(maybe_record_error)(VG_(get_running_tid)(),
DataRaceErr,
VG_(get_IP)(VG_(get_running_tid)()),
- "Conflicting accesses",
+ "Conflicting access",
&drei);
if (s_first_race_only)
Modified: trunk/drd/drd_mutex.c
===================================================================
--- trunk/drd/drd_mutex.c 2011-10-08 08:29:29 UTC (rev 12120)
+++ trunk/drd/drd_mutex.c 2011-10-08 08:54:57 UTC (rev 12121)
@@ -28,13 +28,13 @@
#include "drd_error.h"
#include "drd_mutex.h"
#include "pub_tool_vki.h"
-#include "pub_tool_errormgr.h" // VG_(maybe_record_error)()
-#include "pub_tool_libcassert.h" // tl_assert()
-#include "pub_tool_libcbase.h" // VG_(strlen)
-#include "pub_tool_libcprint.h" // VG_(message)()
-#include "pub_tool_libcproc.h" // VG_(read_millisecond_timer)()
-#include "pub_tool_machine.h" // VG_(get_IP)()
-#include "pub_tool_threadstate.h" // VG_(get_running_tid)()
+#include "pub_tool_errormgr.h" /* VG_(maybe_record_error)() */
+#include "pub_tool_libcassert.h" /* tl_assert() */
+#include "pub_tool_libcbase.h" /* VG_(strlen) */
+#include "pub_tool_libcprint.h" /* VG_(message)() */
+#include "pub_tool_libcproc.h" /* VG_(read_millisecond_timer)() */
+#include "pub_tool_machine.h" /* VG_(get_IP)() */
+#include "pub_tool_threadstate.h" /* VG_(get_running_tid)() */
/* Local functions. */
@@ -302,8 +302,7 @@
if (! p || ! took_lock)
return;
- if (p->recursion_count == 0)
- {
+ if (p->recursion_count == 0) {
if (p->owner != drd_tid && p->owner != DRD_INVALID_THREADID)
{
tl_assert(p->last_locked_segment);
@@ -320,14 +319,16 @@
p->acquiry_time_ms = VG_(read_millisecond_timer)();
p->acquired_at = VG_(record_ExeContext)(VG_(get_running_tid)(), 0);
s_mutex_lock_count++;
- }
- else if (p->owner != drd_tid)
- {
- VG_(message)(Vg_UserMsg,
- "The impossible happened: mutex 0x%lx is locked"
- " simultaneously by two threads (recursion count %d,"
- " owners %d and %d) !\n",
- p->a1, p->recursion_count, p->owner, drd_tid);
+ } else if (p->owner != drd_tid) {
+ const ThreadId vg_tid = VG_(get_running_tid)();
+ MutexErrInfo MEI = { DRD_(thread_get_running_tid)(),
+ p->a1, p->recursion_count, p->owner };
+ VG_(maybe_record_error)(vg_tid,
+ MutexErr,
+ VG_(get_IP)(vg_tid),
+ "The impossible happened: mutex is locked"
+ " simultaneously by two threads",
+ &MEI);
p->owner = drd_tid;
}
p->recursion_count++;
@@ -379,10 +380,11 @@
}
tl_assert(p);
- if (p->mutex_type != mutex_type)
- {
- VG_(message)(Vg_UserMsg, "??? mutex 0x%lx: type changed from %d into %d\n",
- p->a1, p->mutex_type, mutex_type);
+ if (p->mutex_type != mutex_type) {
+ MutexErrInfo MEI = { DRD_(thread_get_running_tid)(),
+ p->a1, p->recursion_count, p->owner };
+ VG_(maybe_record_error)(vg_tid, MutexErr, VG_(get_IP)(vg_tid),
+ "Mutex type changed", &MEI);
}
tl_assert(p->mutex_type == mutex_type);
tl_assert(p->owner != DRD_INVALID_THREADID);
Modified: trunk/drd/drd_rwlock.c
===================================================================
--- trunk/drd/drd_rwlock.c 2011-10-08 08:29:29 UTC (rev 12120)
+++ trunk/drd/drd_rwlock.c 2011-10-08 08:54:57 UTC (rev 12121)
@@ -387,12 +387,13 @@
p = DRD_(rwlock_get_or_allocate)(rwlock, rwlock_type);
tl_assert(p);
- if (DRD_(rwlock_is_wrlocked_by)(p, DRD_(thread_get_running_tid)()))
- {
- VG_(message)(Vg_UserMsg,
- "reader-writer lock 0x%lx is already locked for"
- " writing by calling thread\n",
- p->a1);
+ if (DRD_(rwlock_is_wrlocked_by)(p, DRD_(thread_get_running_tid)())) {
+ RwlockErrInfo REI = { DRD_(thread_get_running_tid)(), p->a1 };
+ VG_(maybe_record_error)(VG_(get_running_tid)(),
+ RwlockErr,
+ VG_(get_IP)(VG_(get_running_tid)()),
+ "Already locked for writing by calling thread",
+ &REI);
}
}
Modified: trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin-amd64
===================================================================
--- trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin-amd64 2011-10-08 08:29:29 UTC (rev 12120)
+++ trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin-amd64 2011-10-08 08:54:57 UTC (rev 12121)
@@ -49,7 +49,14 @@
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:53)
-The impossible happened: mutex 0x........ is locked simultaneously by two threads (recursion count 1, owners 2 and 1) !
+Thread 1:
+The impossible happened: mutex is locked simultaneously by two threads: mutex 0x........, recursion count 1, owner 2.
+ at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc23_bogus_condwait.c:78)
+mutex 0x........ was first observed at:
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc23_bogus_condwait.c:53)
+
Thread 2:
Mutex not locked by calling thread: mutex 0x........, recursion count 2, owner 1.
at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
@@ -66,4 +73,4 @@
by 0x........: __assert_rtn (in /...libc...)
by 0x........: main (tc23_bogus_condwait.c:86)
-ERROR SUMMARY: 9 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 10 errors from 8 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin-x86
===================================================================
--- trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin-x86 2011-10-08 08:29:29 UTC (rev 12120)
+++ trunk/drd/tests/tc23_bogus_condwait.stderr.exp-darwin-x86 2011-10-08 08:54:57 UTC (rev 12121)
@@ -49,7 +49,14 @@
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:53)
-The impossible happened: mutex 0x........ is locked simultaneously by two threads (recursion count 1, owners 2 and 1) !
+Thread 1:
+The impossible happened: mutex is locked simultaneously by two threads: mutex 0x........, recursion count 1, owner 2.
+ at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc23_bogus_condwait.c:78)
+mutex 0x........ was first observed at:
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc23_bogus_condwait.c:53)
+
Thread 2:
Mutex not locked by calling thread: mutex 0x........, recursion count 2, owner 1.
at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
@@ -60,4 +67,4 @@
by 0x........: main (tc23_bogus_condwait.c:53)
-ERROR SUMMARY: 9 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 10 errors from 8 contexts (suppressed: 0 from 0)
Modified: trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-x86
===================================================================
--- trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-x86 2011-10-08 08:29:29 UTC (rev 12120)
+++ trunk/drd/tests/tc23_bogus_condwait.stderr.exp-linux-x86 2011-10-08 08:54:57 UTC (rev 12121)
@@ -72,7 +72,14 @@
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc23_bogus_condwait.c:53)
-The impossible happened: mutex 0x........ is locked simultaneously by two threads (recursion count 1, owners 2 and 1) !
+Thread 1:
+The impossible happened: mutex is locked simultaneously by two threads: mutex 0x........, recursion count 1, owner 2.
+ at 0x........: pthread_cond_wait (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc23_bogus_condwait.c:78)
+mutex 0x........ was first observed at:
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
+ by 0x........: main (tc23_bogus_condwait.c:53)
+
Thread 2:
Mutex not locked by calling thread: mutex 0x........, recursion count 2, owner 1.
at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
@@ -83,4 +90,4 @@
by 0x........: main (tc23_bogus_condwait.c:53)
-ERROR SUMMARY: 11 errors from 9 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 12 errors from 10 contexts (suppressed: 0 from 0)
|
|
From: <sv...@va...> - 2011-10-08 08:34:15
|
Author: bart
Date: 2011-10-08 09:29:29 +0100 (Sat, 08 Oct 2011)
New Revision: 12120
Log:
DRD, refactoring: Introduce DRD_(trace_msg)()
Modified:
trunk/drd/drd_barrier.c
trunk/drd/drd_clientobj.c
trunk/drd/drd_cond.c
trunk/drd/drd_error.c
trunk/drd/drd_error.h
trunk/drd/drd_hb.c
trunk/drd/drd_load_store.c
trunk/drd/drd_main.c
trunk/drd/drd_mutex.c
trunk/drd/drd_rwlock.c
trunk/drd/drd_semaphore.c
trunk/drd/drd_thread.c
Modified: trunk/drd/drd_barrier.c
===================================================================
--- trunk/drd/drd_barrier.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_barrier.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -258,26 +258,16 @@
p = DRD_(barrier_get_or_allocate)(barrier, barrier_type, count);
- if (s_trace_barrier)
- {
+ if (s_trace_barrier) {
if (reinitialization)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] barrier_reinit %s 0x%lx count %ld -> %ld\n",
- DRD_(thread_get_running_tid)(),
- barrier_get_typename(p),
- barrier,
- p->count,
- count);
- }
+ DRD_(trace_msg)("[%d] barrier_reinit %s 0x%lx count %ld -> %ld\n",
+ DRD_(thread_get_running_tid)(),
+ barrier_get_typename(p), barrier, p->count, count);
else
- {
- VG_(message)(Vg_UserMsg,
- "[%d] barrier_init %s 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- barrier_get_typename(p),
- barrier);
- }
+ DRD_(trace_msg)("[%d] barrier_init %s 0x%lx\n",
+ DRD_(thread_get_running_tid)(),
+ barrier_get_typename(p),
+ barrier);
}
if (reinitialization && p->count != count)
@@ -304,13 +294,9 @@
p = DRD_(barrier_get)(barrier);
if (s_trace_barrier)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] barrier_destroy %s 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- barrier_get_typename(p),
- barrier);
- }
+ DRD_(trace_msg)("[%d] barrier_destroy %s 0x%lx\n",
+ DRD_(thread_get_running_tid)(),
+ barrier_get_typename(p), barrier);
if (p == 0)
{
@@ -367,14 +353,9 @@
tl_assert(p);
if (s_trace_barrier)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] barrier_pre_wait %s 0x%lx iteration %ld\n",
- DRD_(thread_get_running_tid)(),
- barrier_get_typename(p),
- barrier,
- p->pre_iteration);
- }
+ DRD_(trace_msg)("[%d] barrier_pre_wait %s 0x%lx iteration %ld\n",
+ DRD_(thread_get_running_tid)(),
+ barrier_get_typename(p), barrier, p->pre_iteration);
/* Clean up nodes associated with finished threads. */
oset = p->oset[p->pre_iteration & 1];
@@ -433,15 +414,10 @@
p = DRD_(barrier_get)(barrier);
if (s_trace_barrier)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] barrier_post_wait %s 0x%lx iteration %ld%s\n",
- tid,
- p ? barrier_get_typename(p) : "(?)",
- barrier,
- p ? p->post_iteration : -1,
- serializing ? " (serializing)" : "");
- }
+ DRD_(trace_msg)("[%d] barrier_post_wait %s 0x%lx iteration %ld%s\n",
+ tid, p ? barrier_get_typename(p) : "(?)",
+ barrier, p ? p->post_iteration : -1,
+ serializing ? " (serializing)" : "");
/*
* If p == 0, this means that the barrier has been destroyed after
Modified: trunk/drd/drd_clientobj.c
===================================================================
--- trunk/drd/drd_clientobj.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_clientobj.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -24,6 +24,7 @@
#include "drd_clientobj.h"
+#include "drd_error.h"
#include "drd_suppression.h"
#include "pub_tool_basics.h"
#include "pub_tool_libcassert.h"
@@ -133,9 +134,7 @@
tl_assert(VG_(OSetGen_Lookup)(s_clientobj_set, &a1) == 0);
if (s_trace_clientobj)
- {
- VG_(message)(Vg_UserMsg, "Adding client object 0x%lx of type %d\n", a1, t);
- }
+ DRD_(trace_msg)("Adding client object 0x%lx of type %d\n", a1, t);
p = VG_(OSetGen_AllocNode)(s_clientobj_set, sizeof(*p));
VG_(memset)(p, 0, sizeof(*p));
@@ -180,10 +179,9 @@
{
tl_assert(p);
- if (s_trace_clientobj)
- {
- VG_(message)(Vg_UserMsg, "Removing client object 0x%lx of type %d\n",
- p->any.a1, p->any.type);
+ if (s_trace_clientobj) {
+ DRD_(trace_msg)("Removing client object 0x%lx of type %d\n", p->any.a1,
+ p->any.type);
#if 0
VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(),
VG_(clo_backtrace_size));
Modified: trunk/drd/drd_cond.c
===================================================================
--- trunk/drd/drd_cond.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_cond.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -148,12 +148,8 @@
struct cond_info* p;
if (DRD_(s_trace_cond))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] cond_init cond 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- cond);
- }
+ DRD_(trace_msg)("[%d] cond_init cond 0x%lx\n",
+ DRD_(thread_get_running_tid)(), cond);
p = DRD_(cond_get)(cond);
@@ -176,12 +172,8 @@
struct cond_info* p;
if (DRD_(s_trace_cond))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] cond_destroy cond 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- cond);
- }
+ DRD_(trace_msg)("[%d] cond_destroy cond 0x%lx\n",
+ DRD_(thread_get_running_tid)(), cond);
p = DRD_(cond_get)(cond);
if (p == 0)
@@ -219,12 +211,8 @@
struct mutex_info* q;
if (DRD_(s_trace_cond))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] cond_pre_wait cond 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- cond);
- }
+ DRD_(trace_msg)("[%d] cond_pre_wait cond 0x%lx\n",
+ DRD_(thread_get_running_tid)(), cond);
p = cond_get_or_allocate(cond);
if (!p)
@@ -284,12 +272,8 @@
struct cond_info* p;
if (DRD_(s_trace_cond))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] cond_post_wait cond 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- cond);
- }
+ DRD_(trace_msg)("[%d] cond_post_wait cond 0x%lx\n",
+ DRD_(thread_get_running_tid)(), cond);
p = DRD_(cond_get)(cond);
if (!p)
@@ -369,12 +353,8 @@
p = DRD_(cond_get)(cond);
if (DRD_(s_trace_cond))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] cond_signal cond 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- cond);
- }
+ DRD_(trace_msg)("[%d] cond_signal cond 0x%lx\n",
+ DRD_(thread_get_running_tid)(), cond);
tl_assert(DRD_(pthread_cond_initializer));
if (!p && VG_(memcmp)((void*)cond, (void*)DRD_(pthread_cond_initializer),
@@ -396,12 +376,8 @@
struct cond_info* p;
if (DRD_(s_trace_cond))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] cond_broadcast cond 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- cond);
- }
+ DRD_(trace_msg)("[%d] cond_broadcast cond 0x%lx\n",
+ DRD_(thread_get_running_tid)(), cond);
p = DRD_(cond_get)(cond);
tl_assert(DRD_(pthread_cond_initializer));
Modified: trunk/drd/drd_error.c
===================================================================
--- trunk/drd/drd_error.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_error.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -37,6 +37,7 @@
#include "pub_tool_libcprint.h" /* VG_(printf)() */
#include "pub_tool_machine.h"
#include "pub_tool_mallocfree.h" /* VG_(malloc), VG_(free) */
+#include "pub_tool_options.h" /* VG_(clo_xml) */
#include "pub_tool_threadstate.h" /* VG_(get_pthread_id)() */
#include "pub_tool_tooliface.h" /* VG_(needs_tool_errors)() */
@@ -51,6 +52,14 @@
s_show_conflicting_segments = scs;
}
+void DRD_(trace_msg)(const char* format, ...)
+{
+ va_list vargs;
+ va_start(vargs, format);
+ VG_(vmessage)(Vg_UserMsg, format, vargs);
+ va_end(vargs);
+}
+
/**
* Describe the client address a as good as possible, putting the result in ai.
*/
Modified: trunk/drd/drd_error.h
===================================================================
--- trunk/drd/drd_error.h 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_error.h 2011-10-08 08:29:29 UTC (rev 12120)
@@ -180,6 +180,7 @@
void DRD_(set_show_conflicting_segments)(const Bool scs);
void DRD_(register_error_handlers)(void);
+void DRD_(trace_msg)(const char* format, ...) PRINTF_CHECK(1, 2);
#endif /* __DRD_ERROR_H */
Modified: trunk/drd/drd_hb.c
===================================================================
--- trunk/drd/drd_hb.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_hb.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -165,12 +165,8 @@
p = DRD_(hb_get_or_allocate)(hb);
if (DRD_(s_trace_hb))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] happens_before 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- hb);
- }
+ DRD_(trace_msg)("[%d] happens_before 0x%lx\n",
+ DRD_(thread_get_running_tid)(), hb);
if (!p)
return;
@@ -203,10 +199,8 @@
p = DRD_(hb_get_or_allocate)(hb);
if (DRD_(s_trace_hb))
- {
- VG_(message)(Vg_UserMsg, "[%d] happens_after 0x%lx\n",
- DRD_(thread_get_running_tid)(), hb);
- }
+ DRD_(trace_msg)("[%d] happens_after 0x%lx\n",
+ DRD_(thread_get_running_tid)(), hb);
if (!p)
return;
@@ -237,10 +231,8 @@
struct hb_info* p;
if (DRD_(s_trace_hb))
- {
- VG_(message)(Vg_UserMsg, "[%d] happens_done 0x%lx\n",
- DRD_(thread_get_running_tid)(), hb);
- }
+ DRD_(trace_msg)("[%d] happens_done 0x%lx\n",
+ DRD_(thread_get_running_tid)(), hb);
p = DRD_(hb_get)(hb);
if (!p)
Modified: trunk/drd/drd_load_store.c
===================================================================
--- trunk/drd/drd_load_store.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_load_store.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -93,21 +93,12 @@
char* vc;
vc = DRD_(vc_aprint)(DRD_(thread_get_vc)(DRD_(thread_get_running_tid)()));
- VG_(message)(Vg_UserMsg,
- "%s 0x%lx size %ld (thread %d / vc %s)\n",
- access_type == eLoad
- ? "load "
- : access_type == eStore
- ? "store"
- : access_type == eStart
- ? "start"
- : access_type == eEnd
- ? "end "
- : "????",
- addr,
- size,
- DRD_(thread_get_running_tid)(),
- vc);
+ DRD_(trace_msg)("%s 0x%lx size %ld (thread %d / vc %s)\n",
+ access_type == eLoad ? "load "
+ : access_type == eStore ? "store"
+ : access_type == eStart ? "start"
+ : access_type == eEnd ? "end " : "????",
+ addr, size, DRD_(thread_get_running_tid)(), vc);
VG_(free)(vc);
VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(),
VG_(clo_backtrace_size));
Modified: trunk/drd/drd_main.c
===================================================================
--- trunk/drd/drd_main.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_main.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -311,9 +311,9 @@
tl_assert(a1 <= a2);
if (!is_stack_mem && s_trace_alloc)
- VG_(message)(Vg_UserMsg, "Started using memory range 0x%lx + %ld%s\n",
- a1, len, DRD_(running_thread_inside_pthread_create)()
- ? " (inside pthread_create())" : "");
+ DRD_(trace_msg)("Started using memory range 0x%lx + %ld%s\n",
+ a1, len, DRD_(running_thread_inside_pthread_create)()
+ ? " (inside pthread_create())" : "");
if (!is_stack_mem && DRD_(g_free_is_write))
DRD_(thread_stop_using_mem)(a1, a2);
@@ -355,8 +355,8 @@
DRD_(trace_mem_access)(a1, len, eEnd);
if (!is_stack_mem && s_trace_alloc)
- VG_(message)(Vg_UserMsg, "Stopped using memory range 0x%lx + %ld\n",
- a1, len);
+ DRD_(trace_msg)("Stopped using memory range 0x%lx + %ld\n",
+ a1, len);
if (!is_stack_mem || DRD_(get_check_stack_accesses)())
{
Modified: trunk/drd/drd_mutex.c
===================================================================
--- trunk/drd/drd_mutex.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_mutex.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -89,15 +89,11 @@
tl_assert(p);
if (s_trace_mutex)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] mutex_destroy %s 0x%lx rc %d owner %d\n",
- DRD_(thread_get_running_tid)(),
- DRD_(mutex_get_typename)(p),
- p->a1,
- p ? p->recursion_count : -1,
- p ? p->owner : DRD_INVALID_THREADID);
- }
+ DRD_(trace_msg)("[%d] mutex_destroy %s 0x%lx rc %d owner %d\n",
+ DRD_(thread_get_running_tid)(),
+ DRD_(mutex_get_typename)(p), p->a1,
+ p ? p->recursion_count : -1,
+ p ? p->owner : DRD_INVALID_THREADID);
if (mutex_is_locked(p))
{
@@ -184,13 +180,10 @@
struct mutex_info* p;
if (s_trace_mutex)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] mutex_init %s 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- DRD_(mutex_type_name)(mutex_type),
- mutex);
- }
+ DRD_(trace_msg)("[%d] mutex_init %s 0x%lx\n",
+ DRD_(thread_get_running_tid)(),
+ DRD_(mutex_type_name)(mutex_type),
+ mutex);
if (mutex_type == mutex_type_invalid_mutex)
{
@@ -248,16 +241,12 @@
mutex_type = p->mutex_type;
if (s_trace_mutex)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] %s %s 0x%lx rc %d owner %d\n",
- DRD_(thread_get_running_tid)(),
- trylock ? "pre_mutex_lock " : "mutex_trylock ",
- p ? DRD_(mutex_get_typename)(p) : "(?)",
- mutex,
- p ? p->recursion_count : -1,
- p ? p->owner : DRD_INVALID_THREADID);
- }
+ DRD_(trace_msg)("[%d] %s %s 0x%lx rc %d owner %d\n",
+ DRD_(thread_get_running_tid)(),
+ trylock ? "pre_mutex_lock " : "mutex_trylock ",
+ p ? DRD_(mutex_get_typename)(p) : "(?)",
+ mutex, p ? p->recursion_count : -1,
+ p ? p->owner : DRD_INVALID_THREADID);
if (p == 0)
{
@@ -302,17 +291,13 @@
p = DRD_(mutex_get)(mutex);
if (s_trace_mutex)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] %s %s 0x%lx rc %d owner %d%s\n",
- drd_tid,
- post_cond_wait ? "cond_post_wait " : "post_mutex_lock",
- p ? DRD_(mutex_get_typename)(p) : "(?)",
- mutex,
- p ? p->recursion_count : 0,
- p ? p->owner : VG_INVALID_THREADID,
- took_lock ? "" : " (locking failed)");
- }
+ DRD_(trace_msg)("[%d] %s %s 0x%lx rc %d owner %d%s\n",
+ drd_tid,
+ post_cond_wait ? "cond_post_wait " : "post_mutex_lock",
+ p ? DRD_(mutex_get_typename)(p) : "(?)",
+ mutex, p ? p->recursion_count : 0,
+ p ? p->owner : VG_INVALID_THREADID,
+ took_lock ? "" : " (locking failed)");
if (! p || ! took_lock)
return;
@@ -369,14 +354,10 @@
if (p && mutex_type == mutex_type_unknown)
mutex_type = p->mutex_type;
- if (s_trace_mutex)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] mutex_unlock %s 0x%lx rc %d\n",
- drd_tid,
- p ? DRD_(mutex_get_typename)(p) : "(?)",
- mutex,
- p ? p->recursion_count : 0);
+ if (s_trace_mutex) {
+ DRD_(trace_msg)("[%d] mutex_unlock %s 0x%lx rc %d\n",
+ drd_tid, p ? DRD_(mutex_get_typename)(p) : "(?)",
+ mutex, p ? p->recursion_count : 0);
}
if (p == 0 || mutex_type == mutex_type_invalid_mutex)
Modified: trunk/drd/drd_rwlock.c
===================================================================
--- trunk/drd/drd_rwlock.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_rwlock.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -251,12 +251,8 @@
tl_assert(p);
if (DRD_(s_trace_rwlock))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] rwlock_destroy 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- p->a1);
- }
+ DRD_(trace_msg)("[%d] rwlock_destroy 0x%lx\n",
+ DRD_(thread_get_running_tid)(), p->a1);
if (DRD_(rwlock_is_locked)(p))
{
@@ -324,12 +320,8 @@
struct rwlock_info* p;
if (DRD_(s_trace_rwlock))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] rwlock_init 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- rwlock);
- }
+ DRD_(trace_msg)("[%d] rwlock_init 0x%lx\n",
+ DRD_(thread_get_running_tid)(), rwlock);
p = DRD_(rwlock_get)(rwlock);
@@ -389,12 +381,8 @@
struct rwlock_info* p;
if (DRD_(s_trace_rwlock))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] pre_rwlock_rdlock 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- rwlock);
- }
+ DRD_(trace_msg)("[%d] pre_rwlock_rdlock 0x%lx\n",
+ DRD_(thread_get_running_tid)(), rwlock);
p = DRD_(rwlock_get_or_allocate)(rwlock, rwlock_type);
tl_assert(p);
@@ -421,12 +409,7 @@
struct rwlock_thread_info* q;
if (DRD_(s_trace_rwlock))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] post_rwlock_rdlock 0x%lx\n",
- drd_tid,
- rwlock);
- }
+ DRD_(trace_msg)("[%d] post_rwlock_rdlock 0x%lx\n", drd_tid, rwlock);
p = DRD_(rwlock_get)(rwlock);
@@ -460,12 +443,8 @@
p = DRD_(rwlock_get)(rwlock);
if (DRD_(s_trace_rwlock))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] pre_rwlock_wrlock 0x%lx\n",
- DRD_(thread_get_running_tid)(),
- rwlock);
- }
+ DRD_(trace_msg)("[%d] pre_rwlock_wrlock 0x%lx\n",
+ DRD_(thread_get_running_tid)(), rwlock);
if (p == 0)
p = DRD_(rwlock_get_or_allocate)(rwlock, rwlock_type);
@@ -498,12 +477,7 @@
p = DRD_(rwlock_get)(rwlock);
if (DRD_(s_trace_rwlock))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] post_rwlock_wrlock 0x%lx\n",
- drd_tid,
- rwlock);
- }
+ DRD_(trace_msg)("[%d] post_rwlock_wrlock 0x%lx\n", drd_tid, rwlock);
if (! p || ! took_lock)
return;
@@ -538,12 +512,7 @@
struct rwlock_thread_info* q;
if (DRD_(s_trace_rwlock))
- {
- VG_(message)(Vg_UserMsg,
- "[%d] rwlock_unlock 0x%lx\n",
- drd_tid,
- rwlock);
- }
+ DRD_(trace_msg)("[%d] rwlock_unlock 0x%lx\n", drd_tid, rwlock);
p = DRD_(rwlock_get)(rwlock);
if (p == 0)
Modified: trunk/drd/drd_semaphore.c
===================================================================
--- trunk/drd/drd_semaphore.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_semaphore.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -175,13 +175,9 @@
Segment* sg;
if (s_trace_semaphore)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] sem_init 0x%lx value %u\n",
- DRD_(thread_get_running_tid)(),
- semaphore,
- value);
- }
+ DRD_(trace_msg)("[%d] sem_init 0x%lx value %u\n",
+ DRD_(thread_get_running_tid)(), semaphore, value);
+
p = semaphore_get(semaphore);
if (p)
{
@@ -227,13 +223,9 @@
p = semaphore_get(semaphore);
if (s_trace_semaphore)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] sem_destroy 0x%lx value %u\n",
- DRD_(thread_get_running_tid)(),
- semaphore,
- p ? p->value : 0);
- }
+ DRD_(trace_msg)("[%d] sem_destroy 0x%lx value %u\n",
+ DRD_(thread_get_running_tid)(), semaphore,
+ p ? p->value : 0);
if (p == 0)
{
@@ -261,13 +253,10 @@
Segment* sg;
if (s_trace_semaphore)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] sem_open 0x%lx name %s"
- " oflag %#lx mode %#lo value %u\n",
- DRD_(thread_get_running_tid)(),
- semaphore, name, oflag, mode, value);
- }
+ DRD_(trace_msg)("[%d] sem_open 0x%lx name %s"
+ " oflag %#lx mode %#lo value %u\n",
+ DRD_(thread_get_running_tid)(),
+ semaphore, name, oflag, mode, value);
/* Return if the sem_open() call failed. */
if (! semaphore)
@@ -307,13 +296,9 @@
p = semaphore_get(semaphore);
if (s_trace_semaphore)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] sem_close 0x%lx value %u\n",
- DRD_(thread_get_running_tid)(),
- semaphore,
- p ? p->value : 0);
- }
+ DRD_(trace_msg)("[%d] sem_close 0x%lx value %u\n",
+ DRD_(thread_get_running_tid)(), semaphore,
+ p ? p->value : 0);
if (p == 0)
{
@@ -366,14 +351,9 @@
p = semaphore_get(semaphore);
if (s_trace_semaphore)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] sem_wait 0x%lx value %u -> %u\n",
- DRD_(thread_get_running_tid)(),
- semaphore,
- p ? p->value : 0,
- p ? p->value - 1 : 0);
- }
+ DRD_(trace_msg)("[%d] sem_wait 0x%lx value %u -> %u\n",
+ DRD_(thread_get_running_tid)(), semaphore,
+ p ? p->value : 0, p ? p->value - 1 : 0);
if (p)
{
@@ -427,13 +407,9 @@
p->value++;
if (s_trace_semaphore)
- {
- VG_(message)(Vg_UserMsg,
- "[%d] sem_post 0x%lx value %u -> %u\n",
- DRD_(thread_get_running_tid)(),
- semaphore,
- p->value - 1, p->value);
- }
+ DRD_(trace_msg)("[%d] sem_post 0x%lx value %u -> %u\n",
+ DRD_(thread_get_running_tid)(),
+ semaphore, p->value - 1, p->value);
p->last_sem_post_tid = tid;
sg = 0;
Modified: trunk/drd/drd_thread.c
===================================================================
--- trunk/drd/drd_thread.c 2011-10-07 12:45:49 UTC (rev 12119)
+++ trunk/drd/drd_thread.c 2011-10-08 08:29:29 UTC (rev 12120)
@@ -390,7 +390,7 @@
", new vc: %s", vc);
VG_(free)(vc);
}
- VG_(message)(Vg_DebugMsg, "%s\n", msg);
+ DRD_(trace_msg)("%s\n", msg);
VG_(free)(msg);
}
@@ -564,8 +564,8 @@
tl_assert(DRD_(g_threadinfo)[tid].pt_threadid != INVALID_POSIX_THREADID);
if (DRD_(thread_get_trace_fork_join)())
- VG_(message)(Vg_UserMsg, "[%d] drd_thread_pre_cancel %d\n",
- DRD_(g_drd_running_tid), tid);
+ DRD_(trace_msg)("[%d] drd_thread_pre_cancel %d\n",
+ DRD_(g_drd_running_tid), tid);
}
/**
|
|
From: <br...@ac...> - 2011-10-08 08:21:47
|
valgrind revision: 12119
VEX revision: 2211
GCC version: gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-3)
C library: GNU C Library stable release version 2.3.4, by Roland McGrath et al.
uname -mrs: Linux 2.6.9-42.EL s390x
Vendor version: Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
Nightly build on z900 ( s390x build on z900 )
Started at 2011-10-08 01:42:23 EDT
Ended at 2011-10-08 04:28:19 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
== 465 tests, 9 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/tc14_laog_dinphils (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc20_verifywrap (stderr)
drd/tests/tc04_free_lock (stderr)
drd/tests/tc09_bad_unlock (stderr)
=================================================
./valgrind-new/drd/tests/tc04_free_lock.stderr.diff
=================================================
--- tc04_free_lock.stderr.exp 2011-10-08 03:05:57.000000000 -0400
+++ tc04_free_lock.stderr.out 2011-10-08 04:25:29.000000000 -0400
@@ -8,7 +8,8 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: bar (tc04_free_lock.c:40)
- by 0x........: main (tc04_free_lock.c:26)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
by 0x........: bar (tc04_free_lock.c:38)
@@ -16,19 +17,12 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: foo (tc04_free_lock.c:49)
- by 0x........: main (tc04_free_lock.c:27)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: foo (tc04_free_lock.c:46)
by 0x........: main (tc04_free_lock.c:27)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: bar (tc04_free_lock.c:40)
- by 0x........: main (tc04_free_lock.c:28)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
- by 0x........: bar (tc04_free_lock.c:38)
- by 0x........: main (tc04_free_lock.c:28)
-
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 3 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2011-10-08 03:05:57.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2011-10-08 04:25:53.000000000 -0400
@@ -26,7 +26,7 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: main (tc09_bad_unlock.c:49)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
@@ -47,13 +47,5 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: main (tc09_bad_unlock.c:50)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: nearly_main (tc09_bad_unlock.c:31)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/tc09_bad_unlock.stderr.diff-glibc2.8
=================================================
--- tc09_bad_unlock.stderr.exp-glibc2.8 2011-10-08 03:05:57.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2011-10-08 04:25:53.000000000 -0400
@@ -26,7 +26,7 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: (below main)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
@@ -47,13 +47,5 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: (below main)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: nearly_main (tc09_bad_unlock.c:31)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2011-10-08 03:05:14.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2011-10-08 04:06:25.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/tc14_laog_dinphils.stderr.diff
=================================================
--- tc14_laog_dinphils.stderr.exp 2011-10-08 03:05:14.000000000 -0400
+++ tc14_laog_dinphils.stderr.out 2011-10-08 04:06:55.000000000 -0400
@@ -20,5 +20,47 @@
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
+---Thread-Announcement------------------------------------------
-ERROR SUMMARY: 1000 errors from 1 contexts (suppressed: 0 from 0)
+Thread #x was created
+ ...
+ by 0x........: pthread_create_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_create@* (hg_intercepts.c:...)
+ by 0x........: main (tc14_laog_dinphils.c:34)
+
+----------------------------------------------------------------
+
+Thread #x: lock order "0x........ before 0x........" violated
+
+Observed (incorrect) order is: acquisition of lock at 0x........
+ (stack unavailable)
+
+ followed by a later acquisition of lock at 0x........
+ at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
+ by 0x........: dine (tc14_laog_dinphils.c:19)
+ by 0x........: mythread_wrapper (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 (tc14_laog_dinphils.c:34)
+
+----------------------------------------------------------------
+
+Thread #x: lock order "0x........ before 0x........" violated
+
+Observed (incorrect) order is: acquisition of lock at 0x........
+ (stack unavailable)
+
+ followed by a later acquisition of lock at 0x........
+ at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
+ by 0x........: dine (tc14_laog_dinphils.c:19)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+
+
+ERROR SUMMARY: 1096 errors from 3 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc18_semabuse.stderr.diff
=================================================
--- tc18_semabuse.stderr.exp 2011-10-08 03:05:14.000000000 -0400
+++ tc18_semabuse.stderr.out 2011-10-08 04:07:17.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 2011-10-08 03:05:14.000000000 -0400
+++ tc20_verifywrap.stderr.out 2011-10-08 04:08:22.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 2011-10-08 03:05:27.000000000 -0400
+++ manuel3.stderr.out 2011-10-08 03:36:45.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 2011-10-08 03:05:26.000000000 -0400
+++ partial_load_ok.stderr.out 2011-10-08 03:41:18.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 2011-10-08 03:05:26.000000000 -0400
+++ partial_load_ok.stderr.out 2011-10-08 03:41:18.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 2011-10-08 03:05:26.000000000 -0400
+++ varinfo6.stderr.out 2011-10-08 03:48:45.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 2011-10-08 03:05:26.000000000 -0400
+++ varinfo6.stderr.out 2011-10-08 03:48:45.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/drd/tests/tc04_free_lock.stderr.diff
=================================================
--- tc04_free_lock.stderr.exp 2011-10-08 01:43:30.000000000 -0400
+++ tc04_free_lock.stderr.out 2011-10-08 03:02:19.000000000 -0400
@@ -8,7 +8,8 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: bar (tc04_free_lock.c:40)
- by 0x........: main (tc04_free_lock.c:26)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
by 0x........: bar (tc04_free_lock.c:38)
@@ -16,19 +17,12 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: foo (tc04_free_lock.c:49)
- by 0x........: main (tc04_free_lock.c:27)
+ by 0x........: process_dl_debug (in /lib64/ld-2.3.4.so)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: foo (tc04_free_lock.c:46)
by 0x........: main (tc04_free_lock.c:27)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: bar (tc04_free_lock.c:40)
- by 0x........: main (tc04_free_lock.c:28)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
- by 0x........: bar (tc04_free_lock.c:38)
- by 0x........: main (tc04_free_lock.c:28)
-
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 3 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/drd/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2011-10-08 01:43:30.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2011-10-08 03:02:44.000000000 -0400
@@ -26,7 +26,7 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: main (tc09_bad_unlock.c:49)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
@@ -47,13 +47,5 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: main (tc09_bad_unlock.c:50)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: nearly_main (tc09_bad_unlock.c:31)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/drd/tests/tc09_bad_unlock.stderr.diff-glibc2.8
=================================================
--- tc09_bad_unlock.stderr.exp-glibc2.8 2011-10-08 01:43:30.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2011-10-08 03:02:44.000000000 -0400
@@ -26,7 +26,7 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: (below main)
+ by 0x........: ???
mutex 0x........ was first observed at:
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: nearly_main (tc09_bad_unlock.c:31)
@@ -47,13 +47,5 @@
by 0x........: nearly_main (tc09_bad_unlock.c:41)
by 0x........: main (tc09_bad_unlock.c:50)
-Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
- at 0x........: nearly_main (tc09_bad_unlock.c:45)
- by 0x........: (below main)
-mutex 0x........ was first observed at:
- at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
- by 0x........: nearly_main (tc09_bad_unlock.c:31)
- by 0x........: main (tc09_bad_unlock.c:50)
-
-ERROR SUMMARY: 8 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 6 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc09_bad_unlock.stderr.diff
=================================================
--- tc09_bad_unlock.stderr.exp 2011-10-08 01:42:37.000000000 -0400
+++ tc09_bad_unlock.stderr.out 2011-10-08 02:43:16.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/tc14_laog_dinphils.stderr.diff
=================================================
--- tc14_laog_dinphils.stderr.exp 2011-10-08 01:42:36.000000000 -0400
+++ tc14_laog_dinphils.stderr.out 2011-10-08 02:43:44.000000000 -0400
@@ -20,5 +20,47 @@
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
+---Thread-Announcement------------------------------------------
-ERROR SUMMARY: 1000 errors from 1 contexts (suppressed: 0 from 0)
+Thread #x was created
+ ...
+ by 0x........: pthread_create_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_create@* (hg_intercepts.c:...)
+ by 0x........: main (tc14_laog_dinphils.c:34)
+
+----------------------------------------------------------------
+
+Thread #x: lock order "0x........ before 0x........" violated
+
+Observed (incorrect) order is: acquisition of lock at 0x........
+ (stack unavailable)
+
+ followed by a later acquisition of lock at 0x........
+ at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
+ by 0x........: dine (tc14_laog_dinphils.c:19)
+ by 0x........: mythread_wrapper (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 (tc14_laog_dinphils.c:34)
+
+----------------------------------------------------------------
+
+Thread #x: lock order "0x........ before 0x........" violated
+
+Observed (incorrect) order is: acquisition of lock at 0x........
+ (stack unavailable)
+
+ followed by a later acquisition of lock at 0x........
+ at 0x........: pthread_mutex_lock (hg_intercepts.c:...)
+ by 0x........: dine (tc14_laog_dinphils.c:19)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+
+
+ERROR SUMMARY: 1096 errors from 3 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc18_semabuse.stderr.diff
=================================================
--- tc18_semabuse.stderr.exp 2011-10-08 01:42:36.000000000 -0400
+++ tc18_semabuse.stderr.out 2011-10-08 02:44:06.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 2011-10-08 01:42:36.000000000 -0400
+++ tc20_verifywrap.stderr.out 2011-10-08 02:45:12.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 2011-10-08 01:43:01.000000000 -0400
+++ manuel3.stderr.out 2011-10-08 02:14:24.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 2011-10-08 01:43:00.000000000 -0400
+++ partial_load_ok.stderr.out 2011-10-08 02:18:58.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 2011-10-08 01:43:00.000000000 -0400
+++ partial_load_ok.stderr.out 2011-10-08 02:18:58.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 2011-10-08 01:43:00.000000000 -0400
+++ varinfo6.stderr.out 2011-10-08 02:26:24.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 2011-10-08 01:43:00.000000000 -0400
+++ varinfo6.stderr.out 2011-10-08 02:26:24.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: Tom H. <th...@cy...> - 2011-10-08 03:22:12
|
valgrind revision: 12119 VEX revision: 2211 GCC version: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) C library: GNU C Library stable release version 2.8, by Roland McGrath et al. uname -mrs: Linux 2.6.40-4.fc15.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2011-10-08 03:41:51 BST Ended at 2011-10-08 04:21:55 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 574 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/bad_percentify (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 574 tests, 1 stderr failure, 4 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == none/tests/amd64/bug132918 (stdout) none/tests/amd64/fxtract (stdout) none/tests/amd64/sse4-64 (stdout) none/tests/x86/fxtract (stdout) exp-sgcheck/tests/bad_percentify (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Oct 8 04:00:24 2011 --- new.short Sat Oct 8 04:21:55 2011 *************** *** 8,14 **** ! == 574 tests, 1 stderr failure, 4 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! none/tests/amd64/bug132918 (stdout) ! none/tests/amd64/fxtract (stdout) ! none/tests/amd64/sse4-64 (stdout) ! none/tests/x86/fxtract (stdout) exp-sgcheck/tests/bad_percentify (stderr) --- 8,10 ---- ! == 574 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/bad_percentify (stderr) |