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
(2) |
2
(7) |
3
(1) |
4
(9) |
5
|
|
6
(7) |
7
(10) |
8
(23) |
9
(19) |
10
(21) |
11
(14) |
12
(15) |
|
13
(11) |
14
(7) |
15
(20) |
16
(21) |
17
(20) |
18
(20) |
19
(19) |
|
20
(24) |
21
(22) |
22
(19) |
23
(17) |
24
(26) |
25
(15) |
26
(16) |
|
27
(8) |
28
(10) |
29
(24) |
30
(21) |
31
(19) |
|
|
|
From: <sv...@va...> - 2013-01-20 23:13:26
|
petarj 2013-01-20 23:13:14 +0000 (Sun, 20 Jan 2013)
New Revision: 2649
Log:
mips: fixing issues spotted by a static code analysis tool
Florian ran a static code analysis tool and found the issues.
Cleaning out old cruft now.
Modified files:
trunk/priv/host_mips_defs.c
Modified: trunk/priv/host_mips_defs.c (+4 -42)
===================================================================
--- trunk/priv/host_mips_defs.c 2013-01-20 18:16:45 +00:00 (rev 2648)
+++ trunk/priv/host_mips_defs.c 2013-01-20 23:13:14 +00:00 (rev 2649)
@@ -2256,7 +2256,7 @@
static UInt iregNo(HReg r, Bool mode64)
{
UInt n;
- vassert(hregClass(r) == mode64 ? HRcInt64 : HRcInt32);
+ vassert(hregClass(r) == (mode64 ? HRcInt64 : HRcInt32));
vassert(!hregIsVirtual(r));
n = hregNumber(r);
vassert(n <= 32);
@@ -2266,7 +2266,7 @@
static UChar fregNo(HReg r, Bool mode64)
{
UInt n;
- vassert(hregClass(r) == mode64 ? HRcFlt64 : HRcFlt32);
+ vassert(hregClass(r) == (mode64 ? HRcFlt64 : HRcFlt32));
vassert(!hregIsVirtual(r));
n = hregNumber(r);
vassert(n <= 31);
@@ -2587,31 +2587,12 @@
UInt reg, MIPSAMode* am, Bool mode64 )
{
if (isLoad) { /* load */
- UInt opc1, sz = mode64 ? 8 : 4;
switch (am->tag) {
case Mam_IR:
if (mode64) {
vassert(0 == (am->Mam.IR.index & 3));
}
- switch (sz) {
- case 1:
- opc1 = 32;
- break;
- case 2:
- opc1 = 33;
- break;
- case 4:
- opc1 = 35;
- break;
- case 8:
- opc1 = 55;
- vassert(mode64);
- break;
- default:
- vassert(0);
- break;
- }
- p = doAMode_IR(p, opc1, reg, am, mode64);
+ p = doAMode_IR(p, mode64 ? 55 : 35, reg, am, mode64);
break;
case Mam_RR:
/* we could handle this case, but we don't expect to ever
@@ -2623,31 +2604,12 @@
break;
}
} else /* store */ {
- UInt opc1, sz = mode64 ? 8 : 4;
switch (am->tag) {
case Mam_IR:
if (mode64) {
vassert(0 == (am->Mam.IR.index & 3));
}
- switch (sz) {
- case 1:
- opc1 = 40;
- break;
- case 2:
- opc1 = 41;
- break;
- case 4:
- opc1 = 43;
- break;
- case 8:
- vassert(mode64);
- opc1 = 63;
- break;
- default:
- vassert(0);
- break;
- }
- p = doAMode_IR(p, opc1, reg, am, mode64);
+ p = doAMode_IR(p, mode64 ? 63 : 43, reg, am, mode64);
break;
case Mam_RR:
/* we could handle this case, but we don't expect to ever
|
|
From: <sv...@va...> - 2013-01-20 18:27:47
|
petarj 2013-01-20 18:27:39 +0000 (Sun, 20 Jan 2013)
New Revision: 13248
Log:
mips: additional test case for fix in VEX r2648
Test program that triggers different corner cases related to position of
branch instruction and max size of a translation block (60 instructions).
Fix for these issues has been submitted in r2648.
Added files:
trunk/none/tests/mips32/block_size.c
trunk/none/tests/mips32/block_size.stderr.exp
trunk/none/tests/mips32/block_size.stdout.exp
trunk/none/tests/mips32/block_size.vgtest
Modified files:
trunk/none/tests/mips32/Makefile.am
Added: trunk/none/tests/mips32/block_size.c (+71 -0)
===================================================================
--- trunk/none/tests/mips32/block_size.c 2013-01-20 17:46:19 +00:00 (rev 13247)
+++ trunk/none/tests/mips32/block_size.c 2013-01-20 18:27:39 +00:00 (rev 13248)
@@ -0,0 +1,71 @@
+#include <stdio.h>
+
+__attribute__((noinline)) int test_block_size1 ()
+{
+ int result = 1;
+ __asm__ __volatile__(
+ ".set noreorder" "\n\t"
+ ".set nomacro" "\n\t"
+ "b begin1" "\n\t"
+ "nop" "\n\t"
+ "begin1:" "\n\t"
+ ".rept 56" "\n\t"
+ ".word 0" "\n\t"
+ ".endr" "\n\t"
+ "li $4, 0" "\n\t"
+ "j end1" "\n\t"
+ "nop" "\n\t"
+ "b label1" "\n\t"
+ "nop" "\n\t"
+ "label1:" "\n\t"
+ "li $4, 1" "\n\t"
+ "end1:" "\n\t"
+ "move %0, $4" "\n\t"
+ ".set reorder" "\n\t"
+ ".set macro" "\n\t"
+ : /*out*/ "=r" (result)
+ : /*in*/
+ : /*trash*/ "$4");
+ return result;
+}
+
+__attribute__((noinline)) int test_block_size2 ()
+{
+ int result = 1;
+ __asm__ __volatile__(
+ ".set noreorder" "\n\t"
+ ".set nomacro" "\n\t"
+ "b begin2" "\n\t"
+ "nop" "\n\t"
+ "begin2:" "\n\t"
+ ".rept 58" "\n\t"
+ ".word 0" "\n\t"
+ ".endr" "\n\t"
+ "li $4, 1" "\n\t"
+ "j end2" "\n\t"
+ "li $4, 0" "\n\t"
+ "end2:" "\n\t"
+ "move %0, $4" "\n\t"
+ ".set reorder" "\n\t"
+ ".set macro" "\n\t"
+ : /*out*/ "=r" (result)
+ : /*in*/
+ : /*trash*/ "$4");
+ return result;
+}
+
+int main ()
+{
+ /*******************TEST1*******************/
+ if (test_block_size1() == 0)
+ printf("test1 - PASS\n");
+ else
+ printf("test1 - FAIL\n");
+
+ /*******************TEST2*******************/
+ if (test_block_size2() == 0)
+ printf("test2 - PASS\n");
+ else
+ printf("test2 - FAIL\n");
+ return 0;
+}
Added: trunk/none/tests/mips32/block_size.stderr.exp (+0 -0)
===================================================================
Added: trunk/none/tests/mips32/block_size.vgtest (+2 -0)
===================================================================
--- trunk/none/tests/mips32/block_size.vgtest 2013-01-20 17:46:19 +00:00 (rev 13247)
+++ trunk/none/tests/mips32/block_size.vgtest 2013-01-20 18:27:39 +00:00 (rev 13248)
@@ -0,0 +1,2 @@
+prog: block_size
+vgopts: -q
Modified: trunk/none/tests/mips32/Makefile.am (+2 -0)
===================================================================
--- trunk/none/tests/mips32/Makefile.am 2013-01-20 17:46:19 +00:00 (rev 13247)
+++ trunk/none/tests/mips32/Makefile.am 2013-01-20 18:27:39 +00:00 (rev 13248)
@@ -4,6 +4,7 @@
dist_noinst_SCRIPTS = filter_stderr
EXTRA_DIST = \
+ block_size.stdout.exp block_size.stderr.exp block_size.vgtest \
branches.stdout.exp branches.stderr.exp branches.vgtest \
FPUarithmetic.stdout.exp FPUarithmetic.stdout.exp-mips32 \
FPUarithmetic.stderr.exp FPUarithmetic.vgtest \
@@ -22,6 +23,7 @@
check_PROGRAMS = \
allexec \
+ block_size \
branches \
FPUarithmetic \
LoadStore \
Added: trunk/none/tests/mips32/block_size.stdout.exp (+2 -0)
===================================================================
--- trunk/none/tests/mips32/block_size.stdout.exp 2013-01-20 17:46:19 +00:00 (rev 13247)
+++ trunk/none/tests/mips32/block_size.stdout.exp 2013-01-20 18:27:39 +00:00 (rev 13248)
@@ -0,0 +1,2 @@
+test1 - PASS
+test2 - PASS
|
|
From: <sv...@va...> - 2013-01-20 18:16:53
|
petarj 2013-01-20 18:16:45 +0000 (Sun, 20 Jan 2013)
New Revision: 2648
Log:
mips: fix for mips-disassembler when branch is at block_size-2 position
Check if the last instruction in the block is a branch or jump instruction
should happen only if the disassembler was not already stopped.
Incorrect conditional led to a boundary case in which jumps/branches were not
executed when placed on "max_insns - 2" position in the block.
none/tests/mips32/block_size test will be added to Valgrind to describe the case
and check for regressions in future.
Modified files:
trunk/priv/guest_mips_toIR.c
Modified: trunk/priv/guest_mips_toIR.c (+3 -2)
===================================================================
--- trunk/priv/guest_mips_toIR.c 2013-01-20 11:39:52 +00:00 (rev 2647)
+++ trunk/priv/guest_mips_toIR.c 2013-01-20 18:16:45 +00:00 (rev 2648)
@@ -3622,12 +3622,13 @@
// On MIPS we need to check if the last instruction
// in block is branch or jump
- if ((vex_control.guest_max_insns - 1) == (delta+4)/4)
+ if (((vex_control.guest_max_insns - 1) == (delta + 4) / 4)
+ && (dres.whatNext != Dis_StopHere))
if (branch_or_jump(guest_code + delta + 4)) {
dres.whatNext = Dis_StopHere;
dres.jk_StopHere = Ijk_Boring;
putPC(mkU32(guest_PC_curr_instr + 4));
- }
+ }
dres.len = 4;
DIP("\n");
|
|
From: <sv...@va...> - 2013-01-20 17:46:26
|
philippe 2013-01-20 17:46:19 +0000 (Sun, 20 Jan 2013)
New Revision: 13247
Log:
Add documentation for VALGRIND_MONITOR_COMMAND client request
Modified files:
trunk/docs/xml/manual-core-adv.xml
Modified: trunk/docs/xml/manual-core-adv.xml (+26 -4)
===================================================================
--- trunk/docs/xml/manual-core-adv.xml 2013-01-20 17:11:58 +00:00 (rev 13246)
+++ trunk/docs/xml/manual-core-adv.xml 2013-01-20 17:46:19 +00:00 (rev 13247)
@@ -224,6 +224,23 @@
</varlistentry>
<varlistentry>
+ <term><command><computeroutput>VALGRIND_MONITOR_COMMAND(command)</computeroutput>:</command></term>
+ <listitem>
+ <para>Execute the given monitor command (a string).
+ Returns 0 if command is recognised. Returns 1 if command is not recognised.
+ Note that some monitor commands provide access to a functionality
+ also accessible via a specific client request. For example,
+ memcheck leak search can be requested from the client program
+ using VALGRIND_DO_LEAK_CHECK or via the monitor command "leak_search".
+ Note that the syntax of the command string is only verified at
+ run-time. So, if it exists, it is preferrable to use a specific
+ client request to have better compile time verifications of the
+ arguments.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><command><computeroutput>VALGRIND_STACK_REGISTER(start, end)</computeroutput>:</command></term>
<listitem>
<para>Registers a new stack. Informs Valgrind that the memory range
@@ -566,10 +583,12 @@
<para> The Valgrind gdbserver provides additional Valgrind-specific
functionality via "monitor commands". Such monitor commands can be
-sent from the GDB command line or from the shell command line. See
+sent from the GDB command line or from the shell command line or
+requested by the client program using the VALGRIND_MONITOR_COMMAND
+client request. See
<xref linkend="manual-core-adv.valgrind-monitor-commands"/> for the
-list of the Valgrind core monitor commands available regardless of
-the Valgrind tool selected.
+list of the Valgrind core monitor commands available regardless of the
+Valgrind tool selected.
</para>
<para>The following tools provide tool-specific monitor commands:
@@ -1247,7 +1266,10 @@
<para> The monitor commands can be sent either from a shell command line, by using a
standalone vgdb, or from GDB, by using GDB's "monitor"
-command (see <xref linkend="manual-core-adv.gdbserver-commandhandling"/>). </para>
+command (see <xref linkend="manual-core-adv.gdbserver-commandhandling"/>).
+They can also be launched by the client program, using the VALGRIND_MONITOR_COMMAND
+client request.
+</para>
<itemizedlist>
<listitem>
|
|
From: Philippe W. <phi...@sk...> - 2013-01-20 17:21:12
|
On Sun, 2013-01-20 at 17:12 +0000, sv...@va... wrote: > Log: > Implement --merge-recursive-frames + provide VALGRIND_MONITOR_COMMAND client req. Note that this is touching platform specific code in m_stacktrace.c It has been tested on x86/amd64/ppc32/ppc64. Changes are quite trivial, so it should compile and work on the non tested platforms. Otherwise, will fix asap. Philippe |
|
From: <sv...@va...> - 2013-01-20 17:12:16
|
philippe 2013-01-20 17:11:58 +0000 (Sun, 20 Jan 2013)
New Revision: 13246
Log:
Implement --merge-recursive-frames + provide VALGRIND_MONITOR_COMMAND client req.
In a big applications, some recursive algorithms have created
hundreds of thousands of stacktraces, taking a lot of memory.
Option --merge-recursive-frames=<number> tells Valgrind to
detect and merge (collapse) recursive calls when recording stack traces.
The value is changeable using the monitor command
'v.set merge-recursive-frames'.
Also, this provides a new client request: VALGRIND_MONITOR_COMMAND
allowing to execute a gdbsrv monitor command from the client
program.
Added files:
trunk/memcheck/tests/recursive-merge.c
trunk/memcheck/tests/recursive-merge.stderr.exp
trunk/memcheck/tests/recursive-merge.vgtest
Modified files:
trunk/NEWS
trunk/coregrind/m_gdbserver/remote-utils.c
trunk/coregrind/m_gdbserver/server.c
trunk/coregrind/m_gdbserver/server.h
trunk/coregrind/m_main.c
trunk/coregrind/m_options.c
trunk/coregrind/m_scheduler/scheduler.c
trunk/coregrind/m_stacktrace.c
trunk/coregrind/pub_core_gdbserver.h
trunk/coregrind/pub_core_options.h
trunk/docs/xml/manual-core.xml
trunk/gdbserver_tests/mchelp.stdoutB.exp
trunk/gdbserver_tests/mssnapshot.stderrB.exp
trunk/include/valgrind.h
trunk/memcheck/tests/Makefile.am
trunk/none/tests/cmdline1.stdout.exp
trunk/none/tests/cmdline2.stdout.exp
Added: trunk/memcheck/tests/recursive-merge.stderr.exp (+263 -0)
===================================================================
--- trunk/memcheck/tests/recursive-merge.stderr.exp 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/memcheck/tests/recursive-merge.stderr.exp 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -0,0 +1,263 @@
+test a
+a at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:56)
+test aa
+aa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:56)
+test aaa
+aaa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:56)
+test aaaa
+aaaa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:56)
+test abab
+abab at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:56)
+test abca
+abca at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_c (recursive-merge.c:31)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:56)
+test abcda
+abcda at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_d (recursive-merge.c:34)
+ by 0x........: f_c (recursive-merge.c:31)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:56)
+merge-recursive-frames value changed from 1 to 3
+test a
+a at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:59)
+test aa
+aa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:59)
+test aaa
+aaa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:59)
+test aaaa
+aaaa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:59)
+test abab
+abab at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:59)
+test abca
+abca at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:59)
+test abcda
+abcda at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_d (recursive-merge.c:34)
+ by 0x........: f_c (recursive-merge.c:31)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:59)
+merge-recursive-frames value changed from 3 to 2
+test a
+a at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:62)
+test aa
+aa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:62)
+test aaa
+aaa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:62)
+test aaaa
+aaaa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:62)
+test abab
+abab at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:62)
+test abca
+abca at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_c (recursive-merge.c:31)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:62)
+test abcda
+abcda at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_d (recursive-merge.c:34)
+ by 0x........: f_c (recursive-merge.c:31)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:62)
+merge-recursive-frames value changed from 2 to 1
+test a
+a at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:65)
+test aa
+aa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:65)
+test aaa
+aaa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:65)
+test aaaa
+aaaa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:65)
+test abab
+abab at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:65)
+test abca
+abca at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_c (recursive-merge.c:31)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:65)
+test abcda
+abcda at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_d (recursive-merge.c:34)
+ by 0x........: f_c (recursive-merge.c:31)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:65)
+merge-recursive-frames value changed from 1 to 0
+test a
+a at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:68)
+test aa
+aa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:68)
+test aaa
+aaa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:68)
+test aaaa
+aaaa at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:68)
+test abab
+abab at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:68)
+test abca
+abca at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_c (recursive-merge.c:31)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:68)
+test abcda
+abcda at 0x........: VALGRIND_PRINTF_BACKTRACE (valgrind.h:...)
+ by 0x........: stacktrace (recursive-merge.c:17)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: f_d (recursive-merge.c:34)
+ by 0x........: f_c (recursive-merge.c:31)
+ by 0x........: f_b (recursive-merge.c:28)
+ by 0x........: f_a (recursive-merge.c:25)
+ by 0x........: doit (recursive-merge.c:43)
+ by 0x........: main (recursive-merge.c:68)
Modified: trunk/gdbserver_tests/mssnapshot.stderrB.exp (+1 -0)
===================================================================
--- trunk/gdbserver_tests/mssnapshot.stderrB.exp 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/gdbserver_tests/mssnapshot.stderrB.exp 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -11,6 +11,7 @@
v.set gdb_output : set valgrind output to gdb
v.set log_output : set valgrind output to log
v.set mixed_output : set valgrind output to log, interactive output to gdb
+ v.set merge-recursive-frames <num> : merge recursive calls in max <num> frames
v.set vgdb-error <errornr> : debug me at error >= <errornr>
massif monitor commands:
Modified: trunk/include/valgrind.h (+12 -2)
===================================================================
--- trunk/include/valgrind.h 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/include/valgrind.h 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -4464,8 +4464,8 @@
errors. */
VG_USERREQ__COUNT_ERRORS = 0x1201,
- /* Allows a string (gdb monitor command) to be passed to the tool
- Used for interaction with vgdb/gdb */
+ /* Allows the client program and/or gdbserver to execute a monitor
+ command. */
VG_USERREQ__GDB_MONITOR_COMMAND = 0x1202,
/* These are useful and can be interpreted by any tool that
@@ -4893,6 +4893,16 @@
VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__CHANGE_ERR_DISABLEMENT, \
-1, 0, 0, 0, 0)
+/* Execute a monitor command from the client program.
+ If a connection is opened with GDB, the output will be sent
+ according to the output mode set for vgdb.
+ If no connection is opened, output will go to the log output.
+ Returns 1 if command not recognised, 0 otherwise. */
+#define VALGRIND_MONITOR_COMMAND(command) \
+ VALGRIND_DO_CLIENT_REQUEST_EXPR(0, VG_USERREQ__GDB_MONITOR_COMMAND, \
+ command, 0, 0, 0, 0)
+
+
#undef PLAT_x86_darwin
#undef PLAT_amd64_darwin
#undef PLAT_x86_win32
Modified: trunk/coregrind/pub_core_options.h (+8 -0)
===================================================================
--- trunk/coregrind/pub_core_options.h 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/coregrind/pub_core_options.h 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -252,6 +252,14 @@
be? */
extern Word VG_(clo_main_stacksize);
+/* If the same IP is found twice in a backtrace in a sequence of max
+ VG_(clo_merge_recursive_frames) frames, then the recursive call
+ is merged in the backtrace.
+ Note also that the merge is done during unwinding, to obtain
+ an much as possible significant backtrace.
+ Note that the value is changeable by a gdbsrv command. */
+extern Int VG_(clo_merge_recursive_frames);
+
/* Delay startup to allow GDB to be attached? Default: NO */
extern Bool VG_(clo_wait_for_gdb);
Added: trunk/memcheck/tests/recursive-merge.vgtest (+3 -0)
===================================================================
--- trunk/memcheck/tests/recursive-merge.vgtest 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/memcheck/tests/recursive-merge.vgtest 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -0,0 +1,3 @@
+prog: recursive-merge
+args: a aa aaa aaaa abab abca abcda
+vgopts: -q --leak-check=full --merge-recursive-frames=1
Modified: trunk/coregrind/pub_core_gdbserver.h (+5 -0)
===================================================================
--- trunk/coregrind/pub_core_gdbserver.h 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/coregrind/pub_core_gdbserver.h 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -88,6 +88,11 @@
// guest program.
extern Bool VG_(gdbserver_report_signal) (Int signo, ThreadId tid);
+/* Entry point invoked by scheduler.c to execute the request
+ VALGRIND_CLIENT_MONITOR_COMMAND.
+ Returns True if command was not recognised. */
+extern Bool VG_(client_monitor_command) (HChar* cmd);
+
/* software_breakpoint, single step and jump support ------------------------*/
/* VG_(instrument_for_gdbserver_if_needed) allows to do "standard and easy"
instrumentation for gdbserver.
Modified: trunk/coregrind/m_gdbserver/server.h (+6 -1)
===================================================================
--- trunk/coregrind/m_gdbserver/server.h 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/coregrind/m_gdbserver/server.h 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -63,7 +63,7 @@
/* Output string s to the gdb debugging this process or to vgdb.
- Do not call this directly. Rather use VG_(monitor_print)
+ Do not call this directly. Rather use VG_(gdb_printf)
to output something to gdb, use normal valgrind messaging
(e.g. VG_(umsg)) to send output that can either go
to gdb or to log. */
@@ -94,6 +94,11 @@
and does VG_(umsg). If info != NULL, info added in VG_(usmg). */
extern void reset_valgrind_sink(const char* info);
+// VG_(gdb_printf) by default writes to vgdb/gdb.
+// If there is no connection, it will rather write to the initial (log)
+// valgrind fd using the below.
+extern void print_to_initial_valgrind_sink (const char *msg);
+
/* For ARM usage.
Guesses if pc is a thumb pc.
In this case, returns pc with the thumb bit set (bit0)
Modified: trunk/coregrind/m_gdbserver/server.c (+39 -4)
===================================================================
--- trunk/coregrind/m_gdbserver/server.c 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/coregrind/m_gdbserver/server.c 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -106,6 +106,13 @@
}
}
+void print_to_initial_valgrind_sink (const char *msg)
+{
+ vg_assert (initial_valgrind_sink_saved);
+ VG_(write) (initial_valgrind_sink.fd, msg, strlen(msg));
+}
+
+
static
void kill_request (const char *msg)
{
@@ -172,6 +179,7 @@
" v.set gdb_output : set valgrind output to gdb\n"
" v.set log_output : set valgrind output to log\n"
" v.set mixed_output : set valgrind output to log, interactive output to gdb\n"
+" v.set merge-recursive-frames <num> : merge recursive calls in max <num> frames\n"
" v.set vgdb-error <errornr> : debug me at error >= <errornr> \n");
if (int_value) { VG_(gdb_printf) (
"debugging valgrind internals monitor commands:\n"
@@ -190,13 +198,15 @@
ret = 1;
wcmd = strtok_r (NULL, " ", &ssaveptr);
switch (kwdid = VG_(keyword_id)
- ("vgdb-error debuglog gdb_output log_output mixed_output",
+ ("vgdb-error debuglog merge-recursive-frames"
+ " gdb_output log_output mixed_output",
wcmd, kwd_report_all)) {
case -2:
case -1:
break;
case 0: /* vgdb-error */
case 1: /* debuglog */
+ case 2: /* merge-recursive-frames */
wcmd = strtok_r (NULL, " ", &ssaveptr);
if (wcmd == NULL) {
int_value = 0;
@@ -216,21 +226,26 @@
VG_(gdb_printf) ("debuglog value changed from %d to %d\n",
VG_(debugLog_getLevel)(), int_value);
VG_(debugLog_startup) (int_value, "gdbsrv");
+ } else if (kwdid == 2) {
+ VG_(gdb_printf)
+ ("merge-recursive-frames value changed from %d to %d\n",
+ VG_(clo_merge_recursive_frames), int_value);
+ VG_(clo_merge_recursive_frames) = int_value;
} else {
vg_assert (0);
}
break;
- case 2: /* gdb_output */
+ case 3: /* gdb_output */
(*sink_wanted_at_return).fd = -2;
command_output_to_log = False;
VG_(gdb_printf) ("valgrind output will go to gdb\n");
break;
- case 3: /* log_output */
+ case 4: /* log_output */
(*sink_wanted_at_return).fd = initial_valgrind_sink.fd;
command_output_to_log = True;
VG_(gdb_printf) ("valgrind output will go to log\n");
break;
- case 4: /* mixed output */
+ case 5: /* mixed output */
(*sink_wanted_at_return).fd = initial_valgrind_sink.fd;
command_output_to_log = False;
VG_(gdb_printf)
@@ -459,6 +474,26 @@
arg_own_buf[0] = 0;
}
+Bool VG_(client_monitor_command) (HChar* cmd)
+{
+ const Bool connected = remote_connected();
+ const int saved_command_output_to_log = command_output_to_log;
+ Bool handled;
+
+ if (!connected)
+ command_output_to_log = True;
+ handled = handle_gdb_monitor_command (cmd);
+ if (!connected) {
+ // reset the log output unless cmd changed it.
+ if (command_output_to_log)
+ command_output_to_log = saved_command_output_to_log;
+ }
+ if (handled)
+ return False; // recognised
+ else
+ return True; // not recognised
+}
+
/* Handle all of the extended 'q' packets. */
static
void handle_query (char *arg_own_buf, int *new_packet_len_p)
Modified: trunk/none/tests/cmdline2.stdout.exp (+2 -0)
===================================================================
--- trunk/none/tests/cmdline2.stdout.exp 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/none/tests/cmdline2.stdout.exp 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -81,6 +81,8 @@
--fair-sched=no|yes|try schedule threads fairly on multicore systems [no]
--kernel-variant=variant1,variant2,... known variants: bproc [none]
handle non-standard kernel variants
+ --merge-recursive-frames=<number> merge frames between identical
+ program counters in max <number> frames) [0]
--show-emwarns=no|yes show warnings about emulation limits? [no]
--require-text-symbol=:sonamepattern:symbolpattern abort run if the
stated shared object doesn't have the stated
Modified: trunk/none/tests/cmdline1.stdout.exp (+2 -0)
===================================================================
--- trunk/none/tests/cmdline1.stdout.exp 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/none/tests/cmdline1.stdout.exp 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -81,6 +81,8 @@
--fair-sched=no|yes|try schedule threads fairly on multicore systems [no]
--kernel-variant=variant1,variant2,... known variants: bproc [none]
handle non-standard kernel variants
+ --merge-recursive-frames=<number> merge frames between identical
+ program counters in max <number> frames) [0]
--show-emwarns=no|yes show warnings about emulation limits? [no]
--require-text-symbol=:sonamepattern:symbolpattern abort run if the
stated shared object doesn't have the stated
Modified: trunk/coregrind/m_gdbserver/remote-utils.c (+16 -12)
===================================================================
--- trunk/coregrind/m_gdbserver/remote-utils.c 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/coregrind/m_gdbserver/remote-utils.c 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -771,19 +771,23 @@
void monitor_output (char *s)
{
- const int len = strlen(s);
- char *buf = malloc(1 + 2*len + 1);
-
- buf[0] = 'O';
- hexify(buf+1, s, len);
- if (putpkt (buf) < 0) {
- /* We probably have lost the connection with vgdb. */
- reset_valgrind_sink("Error writing monitor output");
- /* write again after reset */
- VG_(printf) ("%s", s);
+ if (remote_connected()) {
+ const int len = strlen(s);
+ char *buf = malloc(1 + 2*len + 1);
+
+ buf[0] = 'O';
+ hexify(buf+1, s, len);
+ if (putpkt (buf) < 0) {
+ /* We probably have lost the connection with vgdb. */
+ reset_valgrind_sink("Error writing monitor output");
+ /* write again after reset */
+ VG_(printf) ("%s", s);
+ }
+
+ free (buf);
+ } else {
+ print_to_initial_valgrind_sink (s);
}
-
- free (buf);
}
/* Returns next char from remote GDB. -1 if error. */
Modified: trunk/memcheck/tests/Makefile.am (+2 -0)
===================================================================
--- trunk/memcheck/tests/Makefile.am 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/memcheck/tests/Makefile.am 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -184,6 +184,7 @@
realloc1.stderr.exp realloc1.vgtest \
realloc2.stderr.exp realloc2.vgtest \
realloc3.stderr.exp realloc3.vgtest \
+ recursive-merge.stderr.exp recursive-merge.vgtest \
sbfragment.stdout.exp sbfragment.stderr.exp sbfragment.vgtest \
sem.stderr.exp sem.vgtest \
sh-mem.stderr.exp sh-mem.vgtest \
@@ -289,6 +290,7 @@
pipe pointer-trace \
post-syscall \
realloc1 realloc2 realloc3 \
+ recursive-merge \
sbfragment \
sh-mem sh-mem-random \
sigaltstack signal2 sigprocmask static_malloc sigkill \
Modified: trunk/gdbserver_tests/mchelp.stdoutB.exp (+2 -0)
===================================================================
--- trunk/gdbserver_tests/mchelp.stdoutB.exp 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/gdbserver_tests/mchelp.stdoutB.exp 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -9,6 +9,7 @@
v.set gdb_output : set valgrind output to gdb
v.set log_output : set valgrind output to log
v.set mixed_output : set valgrind output to log, interactive output to gdb
+ v.set merge-recursive-frames <num> : merge recursive calls in max <num> frames
v.set vgdb-error <errornr> : debug me at error >= <errornr>
memcheck monitor commands:
@@ -50,6 +51,7 @@
v.set gdb_output : set valgrind output to gdb
v.set log_output : set valgrind output to log
v.set mixed_output : set valgrind output to log, interactive output to gdb
+ v.set merge-recursive-frames <num> : merge recursive calls in max <num> frames
v.set vgdb-error <errornr> : debug me at error >= <errornr>
debugging valgrind internals monitor commands:
v.info gdbserver_status : show gdbserver status
Modified: trunk/docs/xml/manual-core.xml (+33 -0)
===================================================================
--- trunk/docs/xml/manual-core.xml 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/docs/xml/manual-core.xml 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -1809,6 +1809,39 @@
</listitem>
</varlistentry>
+ <varlistentry id="opt.merge-recursive-frames" xreflabel="--merge-recursive-frames">
+ <term>
+ <option><![CDATA[--merge-recursive-frames=<number> [default: 0] ]]></option>
+ </term>
+ <listitem>
+ <para>Some recursive algorithms (such as balanced binary tree
+ implementations) have the property to create many different
+ stack traces, containing cycles of calls. A cycle is defined by
+ two identical program counters separated by 0 or more other
+ program counters. Valgrind might then use a lot of memory to
+ record these stack traces, containing repeated uninteresting
+ recursive calls instead of more interesting information such as
+ the function that has initiated the recursive call.
+ </para>
+ <para>The option <option>--merge-recursive-frames=<number></option>
+ instructs Valgrind to detect and merge recursive call cycles
+ having a size of up to <option><number></option>
+ frames. When such a cycle is detected, Valgrind records the
+ cycle in the stack trace as a unique program counter.
+ </para>
+ <para>
+ The value 0 (the default) causes no recursive call merging.
+ A value of 1 will cause stack traces of simple recursive algorithms
+ (for example, a factorial implementation) to be collapsed.
+ A value of 2 will usually be needed to collapsed stack traces produced
+ by recursive algorithms such binary trees, quick sort, ...
+ Higher values might be needed for more complex recursive algorithms.
+ </para>
+ <para>Note: recursive calls are detected based on program counters.
+ The cycles are not detected based on function names. </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="opt.show-emwarns" xreflabel="--show-emwarns">
<term>
<option><![CDATA[--show-emwarns=<yes|no> [default: no] ]]></option>
Modified: trunk/coregrind/m_options.c (+1 -0)
===================================================================
--- trunk/coregrind/m_options.c 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/coregrind/m_options.c 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -105,6 +105,7 @@
Int VG_(clo_redzone_size) = -1;
Int VG_(clo_dump_error) = 0;
Int VG_(clo_backtrace_size) = 12;
+Int VG_(clo_merge_recursive_frames) = 0; // default value: no merge
const HChar* VG_(clo_sim_hints) = NULL;
Bool VG_(clo_sym_offsets) = False;
Bool VG_(clo_read_var_info) = False;
Modified: trunk/coregrind/m_main.c (+5 -0)
===================================================================
--- trunk/coregrind/m_main.c 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/coregrind/m_main.c 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -193,6 +193,8 @@
" --fair-sched=no|yes|try schedule threads fairly on multicore systems [no]\n"
" --kernel-variant=variant1,variant2,... known variants: bproc [none]\n"
" handle non-standard kernel variants\n"
+" --merge-recursive-frames=<number> merge frames between identical\n"
+" program counters in max <number> frames) [0]\n"
" --show-emwarns=no|yes show warnings about emulation limits? [no]\n"
" --require-text-symbol=:sonamepattern:symbolpattern abort run if the\n"
" stated shared object doesn't have the stated\n"
@@ -599,6 +601,9 @@
else if VG_INT_CLO (arg, "--sanity-level", VG_(clo_sanity_level)) {}
else if VG_BINT_CLO(arg, "--num-callers", VG_(clo_backtrace_size), 1,
VG_DEEPEST_BACKTRACE) {}
+ else if VG_BINT_CLO(arg, "--merge-recursive-frames",
+ VG_(clo_merge_recursive_frames), 0,
+ VG_DEEPEST_BACKTRACE) {}
else if VG_XACT_CLO(arg, "--smc-check=none", VG_(clo_smc_check),
Vg_SmcNone);
Modified: trunk/NEWS (+12 -0)
===================================================================
--- trunk/NEWS 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/NEWS 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -30,6 +30,18 @@
This can be used to analyse one possible cause of Valgrind high
memory usage for some programs.
+ - Option --merge-recursive-frames=<number> tells Valgrind to
+ detect and merge (collapse) recursive calls when recording stack traces.
+ When your program has recursive algorithms, this limits
+ the memory used by Valgrind for recorded stack traces and avoid
+ recording uninteresting repeated calls.
+ The value is changeable using the monitor command
+ 'v.set merge-recursive-frames'.
+
+ - valgrind.h has a new request VALGRIND_MONITOR_COMMAND.
+ This can be used to execute gdbserver monitor commands from
+ the client program.
+
* ==================== FIXED BUGS ====================
The following bugs have been fixed or resolved. Note that "n-i-bz"
Modified: trunk/coregrind/m_stacktrace.c (+36 -0)
===================================================================
--- trunk/coregrind/m_stacktrace.c 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/coregrind/m_stacktrace.c 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -62,6 +62,21 @@
traces on ppc64-linux and has no effect on other platforms.
*/
+/* Do frame merging in the _i frames in _ips array of recursive cycles
+ of up to _nframes. The merge is done during stack unwinding
+ (i.e. in platform specific unwinders) to collect as many
+ "interesting" stack traces as possible. */
+#define RECURSIVE_MERGE(_nframes,_ips,_i){ \
+ Int dist; \
+ for (dist = 1; dist <= _nframes && dist < (Int)_i; dist++) { \
+ if (_ips[_i-1] == _ips[_i-1-dist]) { \
+ _i = _i - dist; \
+ break; \
+ } \
+ } \
+}
+
+
/* ------------------------ x86 ------------------------- */
#if defined(VGP_x86_linux) || defined(VGP_x86_darwin)
@@ -76,6 +91,7 @@
Int i;
Addr fp_max;
UInt n_found = 0;
+ const Int cmrf = VG_(clo_merge_recursive_frames);
vg_assert(sizeof(Addr) == sizeof(UWord));
vg_assert(sizeof(Addr) == sizeof(void*));
@@ -178,6 +194,7 @@
VG_(printf)(" ipsF[%d]=0x%08lx\n", i-1, ips[i-1]);
uregs.xip = uregs.xip - 1;
/* as per comment at the head of this loop */
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
@@ -192,6 +209,7 @@
VG_(printf)(" ipsC[%d]=0x%08lx\n", i-1, ips[i-1]);
uregs.xip = uregs.xip - 1;
/* as per comment at the head of this loop */
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
@@ -205,6 +223,7 @@
if (debug)
VG_(printf)(" ipsC[%d]=0x%08lx\n", i-1, ips[i-1]);
uregs.xip = uregs.xip - 1;
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
@@ -232,6 +251,7 @@
Int i;
Addr fp_max;
UInt n_found = 0;
+ const Int cmrf = VG_(clo_merge_recursive_frames);
vg_assert(sizeof(Addr) == sizeof(UWord));
vg_assert(sizeof(Addr) == sizeof(void*));
@@ -314,6 +334,7 @@
if (debug)
VG_(printf)(" ipsC[%d]=%#08lx\n", i-1, ips[i-1]);
uregs.xip = uregs.xip - 1; /* as per comment at the head of this loop */
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
@@ -342,6 +363,7 @@
if (debug)
VG_(printf)(" ipsF[%d]=%#08lx\n", i-1, ips[i-1]);
uregs.xip = uregs.xip - 1; /* as per comment at the head of this loop */
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
@@ -371,6 +393,7 @@
VG_(printf)(" ipsH[%d]=%#08lx\n", i-1, ips[i-1]);
uregs.xip = uregs.xip - 1; /* as per comment at the head of this loop */
uregs.xsp += 8;
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
@@ -399,6 +422,7 @@
Word redir_stack_size = 0;
Word redirs_used = 0;
# endif
+ const Int cmrf = VG_(clo_merge_recursive_frames);
Bool debug = False;
Int i;
@@ -557,6 +581,7 @@
ip = ip - 1; /* ip is probably dead at this point, but
play safe, a la x86/amd64 above. See
extensive comments above. */
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
@@ -666,6 +691,7 @@
Int i;
Addr fp_max;
UInt n_found = 0;
+ const Int cmrf = VG_(clo_merge_recursive_frames);
vg_assert(sizeof(Addr) == sizeof(UWord));
vg_assert(sizeof(Addr) == sizeof(void*));
@@ -737,6 +763,7 @@
VG_(printf)("USING CFI: r15: 0x%lx, r13: 0x%lx\n",
uregs.r15, uregs.r13);
uregs.r15 = (uregs.r15 & 0xFFFFFFFE) - 1;
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
/* No luck. We have to give up. */
@@ -759,6 +786,7 @@
if (sps) sps[i] = 0;
if (fps) fps[i] = 0;
ips[i++] = cand;
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
nByStackScan++;
}
}
@@ -775,6 +803,7 @@
if (sps) sps[i] = 0;
if (fps) fps[i] = 0;
ips[i++] = cand;
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
if (++nByStackScan >= 5) break;
}
}
@@ -802,6 +831,7 @@
Int i;
Addr fp_max;
UInt n_found = 0;
+ const Int cmrf = VG_(clo_merge_recursive_frames);
vg_assert(sizeof(Addr) == sizeof(UWord));
vg_assert(sizeof(Addr) == sizeof(void*));
@@ -841,6 +871,7 @@
if (fps) fps[i] = uregs.fp;
ips[i++] = uregs.ia - 1;
uregs.ia = uregs.ia - 1;
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
/* A problem on the first frame? Lets assume it was a bad jump.
@@ -857,6 +888,7 @@
}
uregs.ia = uregs.lr - 1;
ips[i++] = uregs.lr - 1;
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
@@ -884,6 +916,7 @@
Int i;
Addr fp_max;
UInt n_found = 0;
+ const Int cmrf = VG_(clo_merge_recursive_frames);
vg_assert(sizeof(Addr) == sizeof(UWord));
vg_assert(sizeof(Addr) == sizeof(void*));
@@ -935,6 +968,7 @@
if (fps) fps[i] = uregs.fp;
ips[i++] = uregs.pc - 4;
uregs.pc = uregs.pc - 4;
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
} else
uregs = uregs_copy;
@@ -993,6 +1027,7 @@
if (0 == uregs.ra || 1 == uregs.ra) break;
uregs.pc = uregs.ra - 8;
ips[i++] = uregs.ra - 8;
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
@@ -1008,6 +1043,7 @@
if (0 == uregs.ra || 1 == uregs.ra) break;
uregs.pc = uregs.ra - 8;
ips[i++] = uregs.ra - 8;
+ if (UNLIKELY(cmrf > 0)) {RECURSIVE_MERGE(cmrf,ips,i);};
continue;
}
/* No luck. We have to give up. */
Added: trunk/memcheck/tests/recursive-merge.c (+71 -0)
===================================================================
--- trunk/memcheck/tests/recursive-merge.c 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/memcheck/tests/recursive-merge.c 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -0,0 +1,71 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <valgrind.h>
+
+void (*fnptr[256])(char*, char*);
+
+#define BODY(f) \
+{ \
+ fprintf(stderr, f); \
+ calls++; \
+ (*fnptr[(int)*calls])(calls,seq); \
+}
+
+void stacktrace(char*last, char* callsequence)
+{
+ fprintf(stderr, "\n");
+ VALGRIND_PRINTF_BACKTRACE (callsequence);
+}
+__attribute__((noinline)) void f_a(char *calls, char*seq);
+__attribute__((noinline)) void f_b(char *calls, char*seq);
+__attribute__((noinline)) void f_c(char *calls, char*seq);
+__attribute__((noinline)) void f_d(char *calls, char*seq);
+
+__attribute__((noinline)) void f_a(char *calls, char*seq)
+BODY("a")
+
+__attribute__((noinline)) void f_b(char *calls, char*seq)
+BODY("b")
+
+__attribute__((noinline)) void f_c(char *calls, char*seq)
+BODY("c");
+
+__attribute__((noinline)) void f_d(char *calls, char*seq)
+BODY("d");
+
+void doit (int argc, char**argv)
+{
+ int i;
+ for (i = 1; i < argc; i++) {
+ char* calls = argv[i];
+ char* seq = argv[i];
+ calls--;
+ BODY("test ")
+ }
+}
+
+int main(int argc, char**argv)
+{
+
+ fnptr[0] = stacktrace;
+ fnptr['a'] = f_a;
+ fnptr['b'] = f_b;
+ fnptr['c'] = f_c;
+ fnptr['d'] = f_d;
+
+ doit(argc, argv); // with default value of our argument.
+
+ VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 3");
+ doit(argc, argv);
+
+ VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 2");
+ doit(argc, argv);
+
+ VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 1");
+ doit(argc, argv);
+
+ VALGRIND_MONITOR_COMMAND("v.set merge-recursive-frames 0");
+ doit(argc, argv);
+
+ return 0;
+}
Modified: trunk/coregrind/m_scheduler/scheduler.c (+7 -0)
===================================================================
--- trunk/coregrind/m_scheduler/scheduler.c 2013-01-19 21:08:27 +00:00 (rev 13245)
+++ trunk/coregrind/m_scheduler/scheduler.c 2013-01-20 17:11:58 +00:00 (rev 13246)
@@ -1881,6 +1881,13 @@
break;
}
+ case VG_USERREQ__GDB_MONITOR_COMMAND: {
+ UWord ret;
+ ret = (UWord) VG_(client_monitor_command) ((HChar*)arg[1]);
+ SET_CLREQ_RETVAL(tid, ret);
+ break;
+ }
+
case VG_USERREQ__MALLOCLIKE_BLOCK:
case VG_USERREQ__RESIZEINPLACE_BLOCK:
case VG_USERREQ__FREELIKE_BLOCK:
|
|
From: <sv...@va...> - 2013-01-20 11:39:59
|
sewardj 2013-01-20 11:39:52 +0000 (Sun, 20 Jan 2013)
New Revision: 2647
Log:
Fold out an expression which is always False. Spotted by Florian using Coverity.
Modified files:
trunk/priv/guest_amd64_toIR.c
Modified: trunk/priv/guest_amd64_toIR.c (+1 -1)
===================================================================
--- trunk/priv/guest_amd64_toIR.c 2013-01-20 11:38:43 +00:00 (rev 2646)
+++ trunk/priv/guest_amd64_toIR.c 2013-01-20 11:39:52 +00:00 (rev 2647)
@@ -1187,7 +1187,7 @@
return unop(Iop_64to32,
IRExpr_Get(
offsetIReg( sz, lo3bits | (getRexB(pfx) << 3),
- toBool(sz==1 && !haveREX(pfx)) ),
+ False/*!irregular*/ ),
szToITy(sz)
)
);
|
|
From: <sv...@va...> - 2013-01-20 11:38:54
|
sewardj 2013-01-20 11:38:43 +0000 (Sun, 20 Jan 2013)
New Revision: 2646
Log:
Remove a bit of dead code, spotted by Florian using Coverity.
Modified files:
trunk/priv/host_x86_isel.c
Modified: trunk/priv/host_x86_isel.c (+2 -2)
===================================================================
--- trunk/priv/host_x86_isel.c 2013-01-20 03:51:04 +00:00 (rev 2645)
+++ trunk/priv/host_x86_isel.c 2013-01-20 11:38:43 +00:00 (rev 2646)
@@ -3094,8 +3094,8 @@
HReg res = newVRegF(env);
HReg src = iselDblExpr(env, e->Iex.Unop.arg);
addInstr(env, X86Instr_FpUnary(fpop,src,res));
- if (fpop != Xfp_NEG && fpop != Xfp_ABS)
- roundToF64(env, res);
+ /* No need to do roundToF64(env,res) for Xfp_NEG or Xfp_ABS,
+ but might need to do that for other unary ops. */
return res;
}
}
|
|
From: Tom H. <to...@co...> - 2013-01-20 08:45:12
|
valgrind revision: 13245 VEX revision: 2643 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) Assembler: GNU assembler version 2.23.51.0.1-3.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2013-01-20 02:33:34 GMT Ended at 2013-01-20 08:44:58 GMT 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 == 646 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (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 == 646 tests, 4 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-20 08:22:52.838513289 +0000 --- new.short 2013-01-20 08:44:58.932677256 +0000 *************** *** 8,14 **** ! == 646 tests, 4 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) - none/tests/fdleak_ipv4 (stdout) - none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) --- 8,12 ---- ! == 646 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) exp-sgcheck/tests/preen_invars (stdout) |
|
From: Tom H. <to...@co...> - 2013-01-20 08:45:09
|
valgrind revision: 13245 VEX revision: 2643 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2013-01-20 02:41:58 GMT Ended at 2013-01-20 08:44:50 GMT 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 == 646 tests, 7 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (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 == 646 tests, 7 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-20 08:22:50.505558822 +0000 --- new.short 2013-01-20 08:44:50.833836290 +0000 *************** *** 8,10 **** ! == 646 tests, 7 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) --- 8,10 ---- ! == 646 tests, 7 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) *************** *** 14,15 **** --- 14,16 ---- memcheck/tests/origin5-bz2 (stderr) + none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-20 08:44:45
|
valgrind revision: 13245 VEX revision: 2643 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2013-01-20 02:52:31 GMT Ended at 2013-01-20 08:44:31 GMT 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 == 646 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-20 08:44:40
|
valgrind revision: 13245 VEX revision: 2643 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2013-01-20 03:03:42 GMT Ended at 2013-01-20 08:44:26 GMT 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 == 646 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) none/tests/fdleak_ipv4 (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 == 646 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-20 08:22:45.457657228 +0000 --- new.short 2013-01-20 08:44:26.300318258 +0000 *************** *** 8,13 **** ! == 646 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) - none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (stderr) --- 8,12 ---- ! == 646 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) none/tests/fdleak_ipv4 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-20 08:43:57
|
valgrind revision: 13245 VEX revision: 2644 C compiler: gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4) Assembler: GNU assembler version 2.20.51.0.7-8.fc14 20100318 C library: GNU C Library stable release version 2.13 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 14 (Laughlin) Nightly build on bristol ( x86_64, Fedora 14 ) Started at 2013-01-20 03:12:36 GMT Ended at 2013-01-20 08:43:43 GMT 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 == 644 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (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 == 644 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-20 08:22:04.294461726 +0000 --- new.short 2013-01-20 08:43:43.289165374 +0000 *************** *** 8,14 **** ! == 644 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) - none/tests/fdleak_ipv4 (stdout) - none/tests/fdleak_ipv4 (stderr) --- 8,12 ---- ! == 644 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-20 08:43:26
|
valgrind revision: 13245 VEX revision: 2643 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-9) Assembler: GNU assembler version 2.23.51.0.8-3.fc19 20121218 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 19 (Rawhide) Nightly build on bristol ( x86_64, Fedora 19 ) Started at 2013-01-20 02:23:11 GMT Ended at 2013-01-20 08:39:59 GMT 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 == 646 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-20 08:43:24
|
valgrind revision: 13245 VEX revision: 2644 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) Assembler: GNU assembler version 2.18.50.0.6-2 20080403 C library: GNU C Library stable release version 2.8 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2013-01-20 03:44:19 GMT Ended at 2013-01-20 08:41:35 GMT 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 == 622 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) memcheck/tests/err_disable4 (stderr) none/tests/amd64/sse4-64 (stdout) ================================================= == 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 == 622 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) memcheck/tests/err_disable4 (stderr) none/tests/amd64/sse4-64 (stdout) none/tests/fdleak_ipv4 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-20 08:21:34.353054943 +0000 --- new.short 2013-01-20 08:41:34.878732541 +0000 *************** *** 8,10 **** ! == 622 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) --- 8,10 ---- ! == 622 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) *************** *** 12,14 **** none/tests/amd64/sse4-64 (stdout) - none/tests/fdleak_ipv4 (stderr) --- 12,13 ---- |
|
From: Tom H. <to...@co...> - 2013-01-20 08:43:22
|
valgrind revision: 13245 VEX revision: 2644 C compiler: gcc (GCC) 4.4.5 20101112 (Red Hat 4.4.5-2) Assembler: GNU assembler version 2.20.51.0.2-20.fc13 20091009 C library: GNU C Library stable release version 2.12.2 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 13 (Goddard) Nightly build on bristol ( x86_64, Fedora 13 ) Started at 2013-01-20 03:22:08 GMT Ended at 2013-01-20 08:43:08 GMT 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 == 626 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) helgrind/tests/pth_barrier3 (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 == 626 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) none/tests/fdleak_ipv4 (stderr) helgrind/tests/pth_barrier3 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2013-01-20 08:22:01.106524953 +0000 --- new.short 2013-01-20 08:43:08.658853426 +0000 *************** *** 8,12 **** ! == 626 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) - none/tests/fdleak_ipv4 (stderr) helgrind/tests/pth_barrier3 (stderr) --- 8,11 ---- ! == 626 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) helgrind/tests/pth_barrier3 (stderr) |
|
From: Tom H. <to...@co...> - 2013-01-20 08:43:21
|
valgrind revision: 13245 VEX revision: 2644 C compiler: gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2) Assembler: GNU assembler version 2.19.51.0.14-3.fc11 20090722 C library: GNU C Library stable release version 2.10.2 uname -mrs: Linux 3.7.1-5.fc18.x86_64 x86_64 Vendor version: Fedora release 11 (Leonidas) Nightly build on bristol ( x86_64, Fedora 11 ) Started at 2013-01-20 03:31:17 GMT Ended at 2013-01-20 08:41:59 GMT 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 == 626 tests, 2 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/long_namespace_xml (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: Rich C. <rc...@wi...> - 2013-01-20 07:09:13
|
valgrind revision: 13245
VEX revision: 2645
C compiler: i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
Assembler:
C library: unknown
uname -mrs: Darwin 10.8.0 i386
Vendor version: unknown
Nightly build on macx86 ( Darwin 10.8.0 i386 )
Started at 2013-01-19 23:35:00 CST
Ended at 2013-01-20 01:08:56 CST
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
== 508 tests, 149 stderr failures, 4 stdout failures, 3 stderrB failures, 3 stdoutB failures, 1 post failure ==
gdbserver_tests/mchelp (stdoutB)
gdbserver_tests/mchelp (stderrB)
gdbserver_tests/mcinvokeRU (stdoutB)
gdbserver_tests/mcinvokeRU (stderrB)
gdbserver_tests/mcinvokeWS (stdoutB)
gdbserver_tests/mcinvokeWS (stderrB)
memcheck/tests/accounting (stderr)
memcheck/tests/badpoll (stderr)
memcheck/tests/big_blocks_freed_list (stderr)
memcheck/tests/bug287260 (stderr)
memcheck/tests/darwin/aio (stderr)
memcheck/tests/darwin/pth-supp (stderr)
memcheck/tests/darwin/scalar (stderr)
memcheck/tests/deep-backtrace (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/leak-delta (stderr)
memcheck/tests/leak-segv-jmp (stderr)
memcheck/tests/lks (stderr)
memcheck/tests/memcmptest (stderr)
memcheck/tests/mismatches (stderr)
memcheck/tests/null_socket (stdout)
memcheck/tests/origin5-bz2 (stderr)
memcheck/tests/overlap (stdout)
memcheck/tests/overlap (stderr)
memcheck/tests/sem (stderr)
memcheck/tests/strchr (stderr)
memcheck/tests/test-plo-no (stderr)
memcheck/tests/varinfo3 (stderr)
memcheck/tests/varinfo5 (stderr)
memcheck/tests/vbit-test/vbit-test (stderr)
memcheck/tests/vcpu_fnfns (stdout)
memcheck/tests/writev1 (stderr)
massif/tests/big-alloc (post)
massif/tests/pages_as_heap (stderr)
none/tests/allexec32 (stderr)
none/tests/allexec64 (stderr)
none/tests/async-sigs (stderr)
none/tests/cmdline5 (stderr)
none/tests/execve (stderr)
none/tests/faultstatus (stderr)
none/tests/mmap_fcntl_bug (stderr)
none/tests/nodir (stderr)
none/tests/pth_blockedsig (stderr)
none/tests/require-text-symbol-2 (stderr)
none/tests/rlimit64_nofile (stderr)
none/tests/shell_nosuchfile (stderr)
none/tests/x86/cse_fail (stdout)
helgrind/tests/annotate_hbefore (stderr)
helgrind/tests/annotate_rwlock (stderr)
helgrind/tests/annotate_smart_pointer (stderr)
helgrind/tests/cond_timedwait_invalid (stderr)
helgrind/tests/free_is_write (stderr)
helgrind/tests/hg01_all_ok (stderr)
helgrind/tests/hg02_deadlock (stderr)
helgrind/tests/hg03_inherit (stderr)
helgrind/tests/hg04_race (stderr)
helgrind/tests/hg05_race2 (stderr)
helgrind/tests/hg06_readshared (stderr)
helgrind/tests/locked_vs_unlocked1_fwd (stderr)
helgrind/tests/locked_vs_unlocked1_rev (stderr)
helgrind/tests/locked_vs_unlocked2 (stderr)
helgrind/tests/locked_vs_unlocked3 (stderr)
helgrind/tests/pth_destroy_cond (stderr)
helgrind/tests/rwlock_race (stderr)
helgrind/tests/rwlock_test (stderr)
helgrind/tests/t2t_laog (stderr)
helgrind/tests/tc01_simple_race (stderr)
helgrind/tests/tc02_simple_tls (stderr)
helgrind/tests/tc03_re_excl (stderr)
helgrind/tests/tc04_free_lock (stderr)
helgrind/tests/tc05_simple_race (stderr)
helgrind/tests/tc06_two_races (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
helgrind/tests/tc07_hbl1 (stderr)
helgrind/tests/tc08_hbl2 (stderr)
helgrind/tests/tc09_bad_unlock (stderr)
helgrind/tests/tc10_rec_lock (stderr)
helgrind/tests/tc11_XCHG (stderr)
helgrind/tests/tc12_rwl_trivial (stderr)
helgrind/tests/tc13_laog1 (stderr)
helgrind/tests/tc14_laog_dinphils (stderr)
helgrind/tests/tc15_laog_lockdel (stderr)
helgrind/tests/tc16_byterace (stderr)
helgrind/tests/tc17_sembar (stderr)
helgrind/tests/tc18_semabuse (stderr)
helgrind/tests/tc19_shadowmem (stderr)
helgrind/tests/tc21_pthonce (stderr)
helgrind/tests/tc23_bogus_condwait (stderr)
helgrind/tests/tc24_nonzero_sem (stderr)
drd/tests/annotate_barrier (stderr)
drd/tests/annotate_barrier_xml (stderr)
drd/tests/annotate_hb_race (stderr)
drd/tests/annotate_hbefore (stderr)
drd/tests/annotate_ignore_read (stderr)
drd/tests/annotate_ignore_rw (stderr)
drd/tests/annotate_ignore_rw2 (stderr)
drd/tests/annotate_ignore_write (stderr)
drd/tests/annotate_ignore_write2 (stderr)
drd/tests/annotate_order_1 (stderr)
drd/tests/annotate_order_2 (stderr)
drd/tests/annotate_order_3 (stderr)
drd/tests/annotate_rwlock (stderr)
drd/tests/annotate_smart_pointer (stderr)
drd/tests/annotate_smart_pointer2 (stderr)
drd/tests/annotate_spinlock (stderr)
drd/tests/annotate_static (stderr)
drd/tests/atomic_var (stderr)
drd/tests/bug-235681 (stderr)
drd/tests/circular_buffer (stderr)
drd/tests/fp_race (stderr)
drd/tests/fp_race2 (stderr)
drd/tests/fp_race_xml (stderr)
drd/tests/free_is_write (stderr)
drd/tests/free_is_write2 (stderr)
drd/tests/hg01_all_ok (stderr)
drd/tests/hg02_deadlock (stderr)
drd/tests/hg03_inherit (stderr)
drd/tests/hg04_race (stderr)
drd/tests/hg05_race2 (stderr)
drd/tests/hg06_readshared (stderr)
drd/tests/linuxthreads_det (stderr)
drd/tests/monitor_example (stderr)
drd/tests/pth_broadcast (stderr)
drd/tests/pth_cleanup_handler (stderr)
drd/tests/pth_cond_destroy_busy (stderr)
drd/tests/pth_cond_race (stderr)
drd/tests/pth_cond_race2 (stderr)
drd/tests/pth_cond_race3 (stderr)
drd/tests/pth_create_chain (stderr)
drd/tests/pth_detached3 (stderr)
drd/tests/pth_inconsistent_cond_wait (stderr)
drd/tests/pth_once (stderr)
drd/tests/read_and_free_race (stderr)
drd/tests/rwlock_race (stderr)
drd/tests/rwlock_test (stderr)
drd/tests/sem_open (stderr)
drd/tests/sem_open2 (stderr)
drd/tests/sem_open3 (stderr)
drd/tests/sem_open_traced (stderr)
drd/tests/sem_wait (stderr)
drd/tests/sigalrm (stderr)
drd/tests/tc01_simple_race (stderr)
drd/tests/tc02_simple_tls (stderr)
drd/tests/tc03_re_excl (stderr)
drd/tests/tc05_simple_race (stderr)
drd/tests/tc06_two_races (stderr)
drd/tests/tc07_hbl1 (stderr)
drd/tests/tc08_hbl2 (stderr)
drd/tests/tc09_bad_unlock (stderr)
drd/tests/tc11_XCHG (stderr)
drd/tests/tc16_byterace (stderr)
drd/tests/tc17_sembar (stderr)
drd/tests/tc19_shadowmem (stderr)
drd/tests/tc21_pthonce (stderr)
drd/tests/tc23_bogus_condwait (stderr)
drd/tests/thread_name (stderr)
drd/tests/thread_name_xml (stderr)
drd/tests/threaded-fork (stderr)
drd/tests/unit_bitmap (stderr)
drd/tests/unit_vc (stderr)
=================================================
./valgrind-new/drd/tests/annotate_barrier.stderr.diff
=================================================
--- annotate_barrier.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_barrier.stderr.out 2013-01-20 01:05:46.000000000 -0600
@@ -37,6 +37,117 @@
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
Thread 1:
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Address 0x........ is at offset 8 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Address 0x........ is at offset 8 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
<truncated beyond 100 lines>
=================================================
./valgrind-new/drd/tests/annotate_barrier_xml.stderr.diff
=================================================
--- annotate_barrier_xml.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_barrier_xml.stderr.out 2013-01-20 01:05:47.000000000 -0600
@@ -188,7 +188,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>start_thread</fn>
+ <fn>_pthread_start</fn>
</frame>
</stack>
<auxwhat>Address 0x........ is at offset 0 from 0x.........</auxwhat>
@@ -258,6 +258,575 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$UNIX2003</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$*</fn>
+ <dir>...</dir>
+ <file>drd_pthread_intercepts.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Allocation context: Data section of /usr/lib/libSystem.B.dylib</auxwhat>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$UNIX2003</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$*</fn>
+ <dir>...</dir>
+ <file>drd_pthread_intercepts.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Allocation context: Data section of /usr/lib/libSystem.B.dylib</auxwhat>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>new_sem_from_pool</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$UNIX2003</fn>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>pthread_join$*</fn>
+ <dir>...</dir>
+ <file>drd_pthread_intercepts.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Allocation context: Data section of /usr/lib/libSystem.B.dylib</auxwhat>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread 1 at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
<truncated beyond 100 lines>
=================================================
./valgrind-new/drd/tests/annotate_hb_race.stderr.diff
=================================================
--- annotate_hb_race.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_hb_race.stderr.out 2013-01-20 01:05:49.000000000 -0600
@@ -3,6 +3,60 @@
at 0x........: main (annotate_hb_race.c:?)
Allocation context: BSS section of annotate_hb_race
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hb_race.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Done.
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_hbefore.stderr.diff
=================================================
--- annotate_hbefore.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_hbefore.stderr.out 2013-01-20 01:05:51.000000000 -0600
@@ -1,3 +1,44 @@
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_hbefore.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_read.stderr.diff
=================================================
--- annotate_ignore_read.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_ignore_read.stderr.out 2013-01-20 01:05:52.000000000 -0600
@@ -1,6 +1,159 @@
FLAGS [phb=1, fm=0]
test69: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Address 0x........ is at offset 12 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test69::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
<truncated beyond 100 lines>
=================================================
./valgrind-new/drd/tests/annotate_ignore_rw.stderr.diff
=================================================
--- annotate_ignore_rw.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_ignore_rw.stderr.out 2013-01-20 01:05:54.000000000 -0600
@@ -4,6 +4,60 @@
Location 0x........ is 0 bytes inside global var "s_c"
declared at annotate_ignore_rw.c:12
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_rw2.stderr.diff
=================================================
--- annotate_ignore_rw2.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_ignore_rw2.stderr.out 2013-01-20 01:05:56.000000000 -0600
@@ -14,6 +14,60 @@
Location 0x........ is 0 bytes inside global var "s_c"
declared at annotate_ignore_rw.c:12
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_rw.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_write.stderr.diff
=================================================
--- annotate_ignore_write.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_ignore_write.stderr.out 2013-01-20 01:05:57.000000000 -0600
@@ -14,6 +14,60 @@
Location 0x........ is 0 bytes inside global var "s_a"
declared at annotate_ignore_write.c:10
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_ignore_write2.stderr.diff
=================================================
--- annotate_ignore_write2.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_ignore_write2.stderr.out 2013-01-20 01:05:58.000000000 -0600
@@ -19,6 +19,60 @@
Location 0x........ is 0 bytes inside global var "s_a"
declared at annotate_ignore_write.c:10
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Address 0x........ is at offset 0 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_ignore_write.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 11 errors from 11 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_order_1.stderr.diff
=================================================
--- annotate_order_1.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_order_1.stderr.out 2013-01-20 01:05:59.000000000 -0600
@@ -1,6 +1,18 @@
FLAGS [phb=1, fm=0]
test03: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: ThreadPool::~ThreadPool() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: test03::Waiter() (tsan_unittest.cpp:?)
+ by 0x........: test03::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
GLOB=2
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_order_2.stderr.diff
=================================================
--- annotate_order_2.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_order_2.stderr.out 2013-01-20 01:06:02.000000000 -0600
@@ -1,6 +1,71 @@
FLAGS [phb=1, fm=0]
test30: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Address 0x........ is at offset 12 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test30::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
GLOB=47
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_order_3.stderr.diff
=================================================
--- annotate_order_3.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_order_3.stderr.out 2013-01-20 01:06:03.000000000 -0600
@@ -1,6 +1,71 @@
FLAGS [phb=1, fm=0]
test31: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Address 0x........ is at offset 4 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test31::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
GLOB=48
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_rwlock.stderr.diff
=================================================
--- annotate_rwlock.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_rwlock.stderr.out 2013-01-20 01:06:08.000000000 -0600
@@ -1,4 +1,58 @@
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Address 0x........ is at offset 36 from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: main (annotate_rwlock.c:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Finished.
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_smart_pointer.stderr.diff
=================================================
--- annotate_smart_pointer.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_smart_pointer.stderr.out 2013-01-20 01:06:19.000000000 -0600
@@ -1,4 +1,64 @@
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Address 0x........ is at offset 196 from 0x......... Allocation context:
+ at 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Done.
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_smart_pointer2.stderr.diff
=================================================
--- annotate_smart_pointer2.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_smart_pointer2.stderr.out 2013-01-20 01:06:20.000000000 -0600
@@ -5,9 +5,71 @@
by 0x........: smart_ptr<counter>::operator=(counter*) (annotate_smart_pointer.cpp:?)
by 0x........: main (annotate_smart_pointer.cpp:?)
Address 0x........ is at offset ... from 0x......... Allocation context:
- at 0x........: ...operator new... (vg_replace_malloc.c:...)
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: operator new(unsigned long) (in /usr/lib/libstdc++.6.0.9.dylib)
by 0x........: main (annotate_smart_pointer.cpp:?)
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting store by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Address 0x........ is at offset ... from 0x......... Allocation context:
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: new_sem_from_pool (in /...libc...)
+ by 0x........: _pthread_exit (in /...libc...)
+ by 0x........: thread_start (in /...libc...)
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: Thread::Join() (annotate_smart_pointer.cpp:?)
+ by 0x........: main (annotate_smart_pointer.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
Done.
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/drd/tests/annotate_spinlock.stderr.diff
=================================================
--- annotate_spinlock.stderr.exp 2013-01-20 00:47:35.000000000 -0600
+++ annotate_spinlock.stderr.out 2013-01-20 01:06:21.000000000 -0600
@@ -1,6 +1,88 @@
FLAGS [phb=1, fm=0]
test27: negative
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test27::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: ???
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: pthread_join (drd_pthread_intercepts.c:?)
+ by 0x........: MyThread::Join() (tsan_thread_wrappers_pthread.h:?)
+ by 0x........: MyThreadArray::Join() (tsan_unittest.cpp:?)
+ by 0x........: test27::Run() (tsan_unittest.cpp:?)
+ by 0x........: Test::Run() (tsan_unittest.cpp:?)
+ by 0x........: main (tsan_unittest.cpp:?)
+Allocation context: Data section of /usr/lib/libSystem.B.dylib
+
+Conflicting load by thread x at 0x........ size 4
+ at 0x........: restore_sem_to_pool (in /...libc...)
+ by 0x........: pthread_join$UNIX2003 (in /...libc...)
+ by 0x........: ...
[truncated message content] |
|
From: Philippe W. <phi...@sk...> - 2013-01-20 05:47:58
|
valgrind revision: 13245 VEX revision: 2645 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.3.1-3.fc16.ppc64 ppc64 Vendor version: Fedora release 16 (Verne) Nightly build on gcc110 ( Fedora release 16 (Verne), ppc64 ) Started at 2013-01-19 20:00:15 PST Ended at 2013-01-19 21:46:08 PST 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 == 547 tests, 10 stderr failures, 5 stdout failures, 1 stderrB failure, 1 stdoutB failure, 2 post failures == gdbserver_tests/mcmain_pic (stdout) gdbserver_tests/mcmain_pic (stderr) gdbserver_tests/mcmain_pic (stdoutB) gdbserver_tests/mcmain_pic (stderrB) memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/test_dfp2 (stdout) none/tests/ppc32/test_dfp2 (stderr) none/tests/ppc64/test_dfp2 (stdout) none/tests/ppc64/test_dfp2 (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) |
|
From: Rich C. <rc...@wi...> - 2013-01-20 04:40:52
|
valgrind revision: 13245
VEX revision: 2644
C compiler: gcc (SUSE Linux) 4.7.1 20120723 [gcc-4_7-branch revision 189773]
Assembler: GNU assembler (GNU Binutils; openSUSE 12.2) 2.22
C library: GNU C Library stable release version 2.15 (20120628)
uname -mrs: Linux 3.4.11-2.16-desktop x86_64
Vendor version: Welcome to openSUSE 12.2 "Mantis" - Kernel %r (%t).
Nightly build on ultra ( gcc 4.5.1 Linux 3.4.11-2.16-desktop x86_64 )
Started at 2013-01-19 21:30:01 CST
Ended at 2013-01-19 22:40:42 CST
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
== 639 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mcinfcallRU (stderr)
gdbserver_tests/mcinfcallWSRU (stderr)
memcheck/tests/origin5-bz2 (stderr)
=================================================
./valgrind-new/gdbserver_tests/mcinfcallRU.stderr.diff
=================================================
--- mcinfcallRU.stderr.exp 2013-01-19 21:59:17.068276518 -0600
+++ mcinfcallRU.stderr.out 2013-01-19 22:31:46.298904152 -0600
@@ -1,4 +1,12 @@
loops/sleep_ms/burn/threads_spec: 1 0 2000000000 ------B-
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... inferior call pushed from gdb in mcinfcallRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-new/gdbserver_tests/mcinfcallWSRU.stderr.diff
=================================================
--- mcinfcallWSRU.stderr.exp 2013-01-19 21:59:17.070276462 -0600
+++ mcinfcallWSRU.stderr.out 2013-01-19 22:31:48.784834838 -0600
@@ -3,5 +3,13 @@
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... thread 1 inferior call pushed from gdb in mcinfcallWSRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2013-01-19 22:02:06.529548240 -0600
+++ origin5-bz2.stderr.out 2013-01-19 22:33:39.078759617 -0600
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2013-01-19 22:01:49.072035413 -0600
+++ origin5-bz2.stderr.out 2013-01-19 22:33:39.078759617 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2013-01-19 21:59:27.708979785 -0600
+++ origin5-bz2.stderr.out 2013-01-19 22:33:39.078759617 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2013-01-19 22:01:29.284587614 -0600
+++ origin5-bz2.stderr.out 2013-01-19 22:33:39.078759617 -0600
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2013-01-19 22:01:38.371334032 -0600
+++ origin5-bz2.stderr.out 2013-01-19 22:33:39.078759617 -0600
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
=================================================
./valgrind-old/gdbserver_tests/mcinfcallRU.stderr.diff
=================================================
--- mcinfcallRU.stderr.exp 2013-01-19 21:34:48.114074888 -0600
+++ mcinfcallRU.stderr.out 2013-01-19 21:46:07.071310948 -0600
@@ -1,4 +1,12 @@
loops/sleep_ms/burn/threads_spec: 1 0 2000000000 ------B-
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... inferior call pushed from gdb in mcinfcallRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-old/gdbserver_tests/mcinfcallWSRU.stderr.diff
=================================================
--- mcinfcallWSRU.stderr.exp 2013-01-19 21:34:48.116074833 -0600
+++ mcinfcallWSRU.stderr.out 2013-01-19 21:46:09.669238474 -0600
@@ -3,5 +3,13 @@
London ready to sleep and/or burn
Petaouchnok ready to sleep and/or burn
main ready to sleep and/or burn
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
pid .... Thread .... thread 1 inferior call pushed from gdb in mcinfcallWSRU.stdinB.gdb
+vex amd64->IR: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........ 0x........
+vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
+vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x........ ESC=NONE
+vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0
Reset valgrind output to log (orderly_finish)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2013-01-19 21:36:39.653009810 -0600
+++ origin5-bz2.stderr.out 2013-01-19 21:48:00.803138252 -0600
@@ -75,17 +75,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -131,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2013-01-19 21:36:11.617780317 -0600
+++ origin5-bz2.stderr.out 2013-01-19 21:48:00.803138252 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2013-01-19 21:35:19.336217017 -0600
+++ origin5-bz2.stderr.out 2013-01-19 21:48:00.803138252 -0600
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2013-01-19 21:35:57.163177557 -0600
+++ origin5-bz2.stderr.out 2013-01-19 21:48:00.803138252 -0600
@@ -12,7 +12,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -21,7 +21,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
by 0x........: handle_compress (origin5-bz2.c:4750)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -30,7 +30,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -41,7 +41,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -52,7 +52,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -63,7 +63,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -74,7 +74,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -85,7 +85,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -96,7 +96,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -107,7 +107,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -120,6 +120,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2013-01-19 21:36:04.465976864 -0600
+++ origin5-bz2.stderr.out 2013-01-19 21:48:00.803138252 -0600
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -10,7 +10,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -19,7 +19,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
@@ -28,7 +28,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -39,7 +39,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -50,7 +50,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -61,7 +61,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -72,7 +72,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -83,7 +83,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -94,7 +94,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -105,7 +105,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
|
|
From: <sv...@va...> - 2013-01-20 03:54:24
|
florian 2013-01-20 03:51:04 +0000 (Sun, 20 Jan 2013)
New Revision: 2645
Log:
Improve the tree builder in IR optimisation. Allow load expressions to be
moved past Put/I statements and dirty helpers, when it is safe to do so.
It is safe, when the statement does not require exact memory exceptions.
New functions stmt_modifies_guest_state and dirty_helper_puts have been
added to determine the side effect on the guest state.
This optimisation enables the use of memory-to-memory insns on
architectures that have those.
Modified files:
trunk/priv/ir_opt.c
trunk/priv/ir_opt.h
trunk/priv/main_main.c
Modified: trunk/priv/ir_opt.h (+1 -1)
===================================================================
--- trunk/priv/ir_opt.h 2013-01-20 03:08:04 +00:00 (rev 2644)
+++ trunk/priv/ir_opt.h 2013-01-20 03:51:04 +00:00 (rev 2645)
@@ -64,7 +64,7 @@
the guest address of the highest addressed byte from any insn in
this block, or Addr64_MAX if unknown (can that ever happen?) */
extern
-Addr64 ado_treebuild_BB ( IRSB* bb );
+Addr64 ado_treebuild_BB ( IRSB* bb, Bool (*preciseMemExnsFn)(Int,Int) );
#endif /* ndef __VEX_IR_OPT_H */
Modified: trunk/priv/ir_opt.c (+77 -16)
===================================================================
--- trunk/priv/ir_opt.c 2013-01-20 03:08:04 +00:00 (rev 2644)
+++ trunk/priv/ir_opt.c 2013-01-20 03:51:04 +00:00 (rev 2645)
@@ -5300,25 +5300,84 @@
}
inline
-static Bool dirty_helper_puts ( const IRDirty *d )
+static Bool dirty_helper_puts ( const IRDirty *d,
+ Bool (*preciseMemExnsFn)(Int, Int),
+ Bool *requiresPreciseMemExns )
{
Int i;
/* Passing the guest state pointer opens the door to modifying the
guest state under the covers. It's not allowed, but let's be
extra conservative and assume the worst. */
- if (d->needsBBP) return True;
+ if (d->needsBBP) {
+ *requiresPreciseMemExns = True;
+ return True;
+ }
/* Check the side effects on the guest state */
+ Bool ret = False;
+ *requiresPreciseMemExns = False;
+
for (i = 0; i < d->nFxState; ++i) {
- if (d->fxState[i].fx != Ifx_Read) return True;
+ if (d->fxState[i].fx != Ifx_Read) {
+ Int offset = d->fxState[i].offset;
+ Int size = d->fxState[i].size;
+ Int nRepeats = d->fxState[i].nRepeats;
+ Int repeatLen = d->fxState[i].repeatLen;
+
+ if (preciseMemExnsFn(offset, offset + nRepeats * repeatLen + size - 1)) {
+ *requiresPreciseMemExns = True;
+ return True;
+ }
+ ret = True;
+ }
}
- return False;
+ return ret;
}
-/* notstatic */ Addr64 ado_treebuild_BB ( IRSB* bb )
+/* Return true if st modifies the guest state. Via requiresPreciseMemExns
+ return whether or not that modification requires precise exceptions. */
+static Bool stmt_modifies_guest_state ( IRSB *bb, const IRStmt *st,
+ Bool (*preciseMemExnsFn)(Int,Int),
+ Bool *requiresPreciseMemExns )
{
+ switch (st->tag) {
+ case Ist_Put: {
+ Int offset = st->Ist.Put.offset;
+ Int size = sizeofIRType(typeOfIRExpr(bb->tyenv, st->Ist.Put.data));
+
+ *requiresPreciseMemExns = preciseMemExnsFn(offset, offset + size - 1);
+ return True;
+ }
+
+ case Ist_PutI: {
+ IRRegArray *descr = st->Ist.PutI.details->descr;
+ Int offset = descr->base;
+ Int size = sizeofIRType(descr->elemTy);
+
+ /* We quietly assume here that all segments are contiguous and there
+ are no holes. This is to avoid a loop. The assumption is conservative
+ in the sense that we might report that precise memory exceptions are
+ needed when in fact they are not. */
+ *requiresPreciseMemExns =
+ preciseMemExnsFn(offset, offset + descr->nElems * size - 1);
+ return True;
+ }
+
+ case Ist_Dirty:
+ return dirty_helper_puts(st->Ist.Dirty.details, preciseMemExnsFn,
+ requiresPreciseMemExns);
+
+ default:
+ *requiresPreciseMemExns = False;
+ return False;
+ }
+}
+
+/* notstatic */ Addr64 ado_treebuild_BB ( IRSB* bb,
+ Bool (*preciseMemExnsFn)(Int,Int) )
+{
Int i, j, k, m;
Bool stmtPuts, stmtStores, invalidateMe;
IRStmt* st;
@@ -5453,12 +5512,11 @@
/* stmtPuts/stmtStores characterise what the stmt under
consideration does, or might do (sidely safe @ True). */
- stmtPuts
- = toBool( st->tag == Ist_Put
- || st->tag == Ist_PutI
- || (st->tag == Ist_Dirty
- && dirty_helper_puts(st->Ist.Dirty.details)));
+ Bool putRequiresPreciseMemExns;
+ stmtPuts = stmt_modifies_guest_state( bb, st, preciseMemExnsFn,
+ &putRequiresPreciseMemExns);
+
/* be True if this stmt writes memory or might do (==> we don't
want to reorder other loads or stores relative to it). Also,
both LL and SC fall under this classification, since we
@@ -5482,12 +5540,15 @@
(env[k].doesLoad && stmtStores)
/* a put invalidates get'd data */
|| (env[k].doesGet && stmtPuts)
- /* a put invalidates loaded data. Note, we could do
- much better here in the sense that we only need to
- invalidate trees containing loads if the Put in
- question is marked as requiring precise
- exceptions. */
- || (env[k].doesLoad && stmtPuts)
+ /* a put invalidates loaded data. That means, in essense, that
+ a load expression cannot be substituted into a statement
+ that follows the put. But there is nothing wrong doing so
+ except when the put statement requries precise exceptions.
+ Think of a load that is moved past a put where the put
+ updates the IP in the guest state. If the load generates
+ a segfault, the wrong address (line number) would be
+ reported. */
+ || (env[k].doesLoad && stmtPuts && putRequiresPreciseMemExns)
/* probably overly conservative: a memory bus event
invalidates absolutely everything, so that all
computation prior to it is forced to complete before
Modified: trunk/priv/main_main.c (+1 -1)
===================================================================
--- trunk/priv/main_main.c 2013-01-20 03:08:04 +00:00 (rev 2644)
+++ trunk/priv/main_main.c 2013-01-20 03:51:04 +00:00 (rev 2645)
@@ -724,7 +724,7 @@
/* Turn it into virtual-registerised code. Build trees -- this
also throws away any dead bindings. */
- max_ga = ado_treebuild_BB( irsb );
+ max_ga = ado_treebuild_BB( irsb, preciseMemExnsFn );
if (vta->finaltidy) {
irsb = vta->finaltidy(irsb);
|
|
From: Christian B. <bor...@de...> - 2013-01-20 03:13:42
|
valgrind revision: 13245 VEX revision: 2643 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.21.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.42-0.7-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP2 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP1 gcc 4.3.4 on z196 (s390x) ) Started at 2013-01-20 03:45:01 CET Ended at 2013-01-20 04:13:31 CET Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 624 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: <sv...@va...> - 2013-01-20 03:11:00
|
florian 2013-01-20 03:08:04 +0000 (Sun, 20 Jan 2013)
New Revision: 2644
Log:
s390: Fix a type mixup spotted by IBM's BEAM checker.
Modified files:
trunk/priv/host_s390_isel.c
Modified: trunk/priv/host_s390_isel.c (+10 -8)
===================================================================
--- trunk/priv/host_s390_isel.c 2013-01-18 06:15:44 +00:00 (rev 2643)
+++ trunk/priv/host_s390_isel.c 2013-01-20 03:08:04 +00:00 (rev 2644)
@@ -991,6 +991,7 @@
IRType ty = typeOfIRExpr(env->type_env, expr);
UChar size;
s390_bfp_conv_t conv;
+ s390_dfp_conv_t dconv;
vassert(ty == Ity_I8 || ty == Ity_I16 || ty == Ity_I32 || ty == Ity_I64);
@@ -1128,13 +1129,14 @@
case Iop_F128toI64S: conv = S390_BFP_F128_TO_I64; goto do_convert_128;
case Iop_F128toI32U: conv = S390_BFP_F128_TO_U32; goto do_convert_128;
case Iop_F128toI64U: conv = S390_BFP_F128_TO_U64; goto do_convert_128;
- case Iop_D64toI32S: conv = S390_DFP_D64_TO_I32; goto do_convert_dfp;
- case Iop_D64toI32U: conv = S390_DFP_D64_TO_U32; goto do_convert_dfp;
- case Iop_D64toI64U: conv = S390_DFP_D64_TO_U64; goto do_convert_dfp;
- case Iop_D128toI32S: conv = S390_DFP_D128_TO_I32; goto do_convert_dfp128;
- case Iop_D128toI32U: conv = S390_DFP_D128_TO_U32; goto do_convert_dfp128;
- case Iop_D128toI64U: conv = S390_DFP_D128_TO_U64; goto do_convert_dfp128;
+ case Iop_D64toI32S: dconv = S390_DFP_D64_TO_I32; goto do_convert_dfp;
+ case Iop_D64toI32U: dconv = S390_DFP_D64_TO_U32; goto do_convert_dfp;
+ case Iop_D64toI64U: dconv = S390_DFP_D64_TO_U64; goto do_convert_dfp;
+ case Iop_D128toI32S: dconv = S390_DFP_D128_TO_I32; goto do_convert_dfp128;
+ case Iop_D128toI32U: dconv = S390_DFP_D128_TO_U32; goto do_convert_dfp128;
+ case Iop_D128toI64U: dconv = S390_DFP_D128_TO_U64; goto do_convert_dfp128;
+
do_convert: {
s390_bfp_round_t rounding_mode;
@@ -1175,7 +1177,7 @@
h1 = s390_isel_dfp_expr(env, arg2); /* Process operand */
rounding_mode = get_dfp_rounding_mode(env, arg1);
- addInstr(env, s390_insn_dfp_convert(size, conv, res, h1,
+ addInstr(env, s390_insn_dfp_convert(size, dconv, res, h1,
rounding_mode));
return res;
}
@@ -1196,7 +1198,7 @@
addInstr(env, s390_insn_move(8, f15, op_lo));
rounding_mode = get_dfp_rounding_mode(env, arg1);
- addInstr(env, s390_insn_dfp128_convert_from(size, conv, res, f13,
+ addInstr(env, s390_insn_dfp128_convert_from(size, dconv, res, f13,
f15, rounding_mode));
return res;
}
|
|
From: Christian B. <bor...@de...> - 2013-01-20 03:06:50
|
valgrind revision: 13245 VEX revision: 2643 C compiler: gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9bb4) Assembler: GNU assembler version 2.21.51.0.6-6bb6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.7.2-57.x.20130114-s390xperformance s390x Vendor version: unknown Nightly build on fedora390 ( Fedora 15 with devel libc/toolchain on z196 (s390x) ) Started at 2013-01-20 03:45:01 CET Ended at 2013-01-20 04:06:56 CET 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 == 625 tests, 2 stderr failures, 0 stdout failures, 6 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) gdbserver_tests/mcclean_after_fork (stderrB) gdbserver_tests/mcleak (stderrB) gdbserver_tests/mcmain_pic (stderrB) gdbserver_tests/mcvabits (stderrB) gdbserver_tests/mssnapshot (stderrB) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) |