You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
(25) |
2
(13) |
3
(3) |
|
4
|
5
(5) |
6
(12) |
7
(5) |
8
(16) |
9
(3) |
10
|
|
11
|
12
|
13
(4) |
14
(1) |
15
(2) |
16
(6) |
17
|
|
18
|
19
(1) |
20
(2) |
21
(10) |
22
(9) |
23
(8) |
24
(5) |
|
25
|
26
(6) |
27
(8) |
28
(8) |
29
(23) |
30
(12) |
31
(6) |
|
From: <sv...@va...> - 2010-07-02 19:56:33
|
Author: weidendo
Date: 2010-07-02 20:56:23 +0100 (Fri, 02 Jul 2010)
New Revision: 11207
Log:
Callgrind: add branch prediction from Cachegrind
Callgrind now uses Cachegrind's command line option to switch
on simulation: "--branch-sim=yes/no" for branch prediction,
and "--cache-sim=yes/no" for cache simulation (for more
consistency and to avoid confusion). However, the previously
used "--simulate-cache=yes/no" still is supported but deprecated.
Included: according documentation and tests.
Added:
trunk/callgrind/tests/simwork-both.stderr.exp
trunk/callgrind/tests/simwork-both.stdout.exp
trunk/callgrind/tests/simwork-both.vgtest
trunk/callgrind/tests/simwork-branch.stderr.exp
trunk/callgrind/tests/simwork-branch.stdout.exp
trunk/callgrind/tests/simwork-branch.vgtest
trunk/callgrind/tests/simwork-cache.stderr.exp
trunk/callgrind/tests/simwork-cache.stdout.exp
trunk/callgrind/tests/simwork-cache.vgtest
Modified:
trunk/NEWS
trunk/callgrind/bbcc.c
trunk/callgrind/clo.c
trunk/callgrind/docs/cl-manual.xml
trunk/callgrind/global.h
trunk/callgrind/main.c
trunk/callgrind/sim.c
trunk/callgrind/tests/filter_stderr
Modified: trunk/NEWS
===================================================================
--- trunk/NEWS 2010-07-01 14:50:30 UTC (rev 11206)
+++ trunk/NEWS 2010-07-02 19:56:23 UTC (rev 11207)
@@ -24,6 +24,10 @@
harder than the heap-level output, but this option is useful if you want
to account for every byte of memory used by a program.
+- Callgrind now can do branch prediction simulation, similar to Cachegrind.
+ In addition, it optionally can count the number of executed global bus events.
+ Both can be used for a better approximation of a "Cycle Estimation" as
+ derived event (you need to update the event formula in KCachegrind yourself).
Release 3.5.0 (19 August 2009)
Modified: trunk/callgrind/bbcc.c
===================================================================
--- trunk/callgrind/bbcc.c 2010-07-01 14:50:30 UTC (rev 11206)
+++ trunk/callgrind/bbcc.c 2010-07-02 19:56:23 UTC (rev 11207)
@@ -580,6 +580,7 @@
if (last_bb) {
passed = CLG_(current_state).jmps_passed;
+ CLG_ASSERT(passed <= last_bb->cjmp_count);
if (passed == last_bb->cjmp_count) {
jmpkind = last_bb->jmpkind;
@@ -599,9 +600,9 @@
last_bbcc->ecounter_sum++;
last_bbcc->jmp[passed].ecounter++;
if (!CLG_(clo).simulate_cache) {
- /* update Ir cost */
- int instr_count = last_bb->jmp[passed].instr+1;
- CLG_(current_state).cost[ fullOffset(EG_IR) ] += instr_count;
+ /* update Ir cost */
+ UInt instr_count = last_bb->jmp[passed].instr+1;
+ CLG_(current_state).cost[ fullOffset(EG_IR) ] += instr_count;
}
}
Modified: trunk/callgrind/clo.c
===================================================================
--- trunk/callgrind/clo.c 2010-07-01 14:50:30 UTC (rev 11206)
+++ trunk/callgrind/clo.c 2010-07-02 19:56:23 UTC (rev 11207)
@@ -415,8 +415,6 @@
/* compatibility alias, deprecated option */
else if VG_BOOL_CLO(arg, "--trace-jump", CLG_(clo).collect_jumps) {}
- else if VG_BOOL_CLO(arg, "--collect-bus", CLG_(clo).collect_bus) {}
-
else if VG_BOOL_CLO(arg, "--combine-dumps", CLG_(clo).combine_dumps) {}
else if VG_BOOL_CLO(arg, "--collect-atstart", CLG_(clo).collect_atstart) {}
@@ -527,8 +525,13 @@
else if VG_BOOL_CLO(arg, "--collect-alloc", CLG_(clo).collect_alloc) {}
else if VG_BOOL_CLO(arg, "--collect-systime", CLG_(clo).collect_systime) {}
+ else if VG_BOOL_CLO(arg, "--collect-bus", CLG_(clo).collect_bus) {}
+ /* for option compatibility with cachegrind */
+ else if VG_BOOL_CLO(arg, "--cache-sim", CLG_(clo).simulate_cache) {}
+ /* compatibility alias, deprecated option */
else if VG_BOOL_CLO(arg, "--simulate-cache", CLG_(clo).simulate_cache) {}
-
+ /* for option compatibility with cachegrind */
+ else if VG_BOOL_CLO(arg, "--branch-sim", CLG_(clo).simulate_branch) {}
else {
Bool isCachesimOption = (*CLG_(cachesim).parse_opt)(arg);
@@ -592,6 +595,9 @@
#if CLG_EXPERIMENTAL
" --fn-group<no>=<func> Put function into separation group <no>\n"
#endif
+"\n simulation options:\n"
+" --branch-sim=no|yes Do branch prediction simulation [no]\n"
+" --cache-sim=no|yes Do cache simulation [no]\n"
);
(*CLG_(cachesim).print_opts)();
@@ -642,6 +648,7 @@
CLG_(clo).collect_jumps = False;
CLG_(clo).collect_alloc = False;
CLG_(clo).collect_systime = False;
+ CLG_(clo).collect_bus = False;
CLG_(clo).skip_plt = True;
CLG_(clo).separate_callers = 0;
@@ -651,6 +658,7 @@
/* Instrumentation */
CLG_(clo).instrument_atstart = True;
CLG_(clo).simulate_cache = False;
+ CLG_(clo).simulate_branch = False;
/* Call graph */
CLG_(clo).pop_on_jump = False;
Modified: trunk/callgrind/docs/cl-manual.xml
===================================================================
--- trunk/callgrind/docs/cl-manual.xml 2010-07-01 14:50:30 UTC (rev 11206)
+++ trunk/callgrind/docs/cl-manual.xml 2010-07-02 19:56:23 UTC (rev 11207)
@@ -4,7 +4,7 @@
[ <!ENTITY % vg-entities SYSTEM "../../docs/xml/vg-entities.xml"> %vg-entities; ]>
<chapter id="cl-manual" xreflabel="Callgrind Manual">
-<title>Callgrind: a call-graph generating cache profiler</title>
+<title>Callgrind: a call-graph generating cache and branch prediction profiler</title>
<para>To use this tool, you must specify
@@ -14,14 +14,14 @@
<sect1 id="cl-manual.use" xreflabel="Overview">
<title>Overview</title>
-<para>Callgrind is a profiling tool that can
-construct a call graph for a program's run.
+<para>Callgrind is a profiling tool that records the call history among
+functions in a program's run as a call-graph.
By default, the collected data consists of
the number of instructions executed, their relationship
to source lines, the caller/callee relationship between functions,
and the numbers of such calls.
-Optionally, a cache simulator (similar to Cachegrind) can produce
-further information about the memory access behavior of the application.
+Optionally, cache simulation and/or branch prediction (similar to Cachegrind)
+can produce further information about the runtime behavior of an application.
</para>
<para>The profile data is written out to a file at program
@@ -175,10 +175,10 @@
results in this case.</para>
<para>If you are additionally interested in measuring the
- cache behavior of your
- program, use Callgrind with the option
- <option><xref linkend="opt.simulate-cache"/>=yes.</option>
- However, expect a further slow down approximately by a factor of 2.</para>
+ cache behavior of your program, use Callgrind with the option
+ <option><xref linkend="clopt.cache-sim"/>=yes</option>. For
+ branch prediction simulation, use <option><xref linkend="clopt.branch-sim"/>=yes</option>.
+ Expect a further slow down approximately by a factor of 2.</para>
<para>If the program section you want to profile is somewhere in the
middle of the run, it is beneficial to
@@ -371,7 +371,7 @@
"global bus events" is used.</para>
<para>The short name of the event type used for global bus events is "Ge".
- To count global bus events, use <option><xref linkend="opt.collect-bus"/></option>.
+ To count global bus events, use <option><xref linkend="clopt.collect-bus"/>=yes</option>.
</para>
</sect2>
@@ -779,7 +779,7 @@
</listitem>
</varlistentry>
- <varlistentry id="opt.collect-bus" xreflabel="--collect-bus">
+ <varlistentry id="clopt.collect-bus" xreflabel="--collect-bus">
<term>
<option><![CDATA[--collect-bus=<no|yes> [default: no] ]]></option>
</term>
@@ -917,23 +917,55 @@
<!-- end of xi:include in the manpage -->
</sect2>
+
<sect2 id="cl-manual.options.simulation"
- xreflabel="Cache simulation options">
-<title>Cache simulation options</title>
+ xreflabel="Simulation options">
+<title>Simulation options</title>
<!-- start of xi:include in the manpage -->
<variablelist id="cl.opts.list.simulation">
-
- <varlistentry id="opt.simulate-cache" xreflabel="--simulate-cache">
+
+ <varlistentry id="clopt.cache-sim" xreflabel="--cache-sim">
<term>
- <option><![CDATA[--simulate-cache=<yes|no> [default: no] ]]></option>
+ <option><![CDATA[--cache-sim=<yes|no> [default: no] ]]></option>
</term>
<listitem>
<para>Specify if you want to do full cache simulation. By default,
- only instruction read accesses will be profiled.</para>
+ only instruction read accesses will be counted ("Ir").
+ With cache simulation, further event counters are enabled:
+ Cache misses on instruction reads ("I1mr"/"I2mr"),
+ data read accesses ("Dr") and related cache misses ("D1mr"/"D2mr"),
+ data write accesses ("Dw") and related cache misses ("D1mw"/"D2mw").
+ For more information, see <xref linkend="cg-manual"/>.
+ </para>
</listitem>
</varlistentry>
+ <varlistentry id="clopt.branch-sim" xreflabel="--branch-sim">
+ <term>
+ <option><![CDATA[--branch-sim=<yes|no> [default: no] ]]></option>
+ </term>
+ <listitem>
+ <para>Specify if you want to do branch prediction simulation.
+ Further event counters are enabled: Number of executed conditional
+ branches and related predictor misses ("Bc"/"Bcm"), executed indirect
+ jumps and related misses of the jump address predictor ("Bi"/"Bim").
+ </para>
+ </listitem>
+ </varlistentry>
+
+</variablelist>
+<!-- end of xi:include in the manpage -->
+</sect2>
+
+
+<sect2 id="cl-manual.options.cachesimulation"
+ xreflabel="Cache simulation options">
+<title>Cache simulation options</title>
+
+<!-- start of xi:include in the manpage -->
+<variablelist id="cl.opts.list.cachesimulation">
+
<varlistentry id="opt.simulate-wb" xreflabel="--simulate-wb">
<term>
<option><![CDATA[--simulate-wb=<yes|no> [default: no] ]]></option>
Modified: trunk/callgrind/global.h
===================================================================
--- trunk/callgrind/global.h 2010-07-01 14:50:30 UTC (rev 11206)
+++ trunk/callgrind/global.h 2010-07-02 19:56:23 UTC (rev 11207)
@@ -92,6 +92,7 @@
/* Instrument options */
Bool instrument_atstart; /* Instrument at start? */
Bool simulate_cache; /* Call into cache simulator ? */
+ Bool simulate_branch; /* Call into branch prediction simulator ? */
/* Call graph generation */
Bool pop_on_jump; /* Handle a jump between functions as ret+call */
@@ -652,7 +653,7 @@
void (*post_clo_init)(void);
void (*clear)(void);
void (*getdesc)(Char* buf);
- void (*printstat)(void);
+ void (*printstat)(Int,Int,Int);
void (*add_icost)(SimCost, BBCC*, InstrInfo*, ULong);
void (*finish)(void);
@@ -681,9 +682,11 @@
#define EG_IR 1
#define EG_DR 2
#define EG_DW 3
-#define EG_BUS 4
-#define EG_ALLOC 5
-#define EG_SYS 6
+#define EG_BC 4
+#define EG_BI 5
+#define EG_BUS 6
+#define EG_ALLOC 7
+#define EG_SYS 8
struct event_sets {
EventSet *base, *full;
Modified: trunk/callgrind/main.c
===================================================================
--- trunk/callgrind/main.c 2010-07-01 14:50:30 UTC (rev 11206)
+++ trunk/callgrind/main.c 2010-07-02 19:56:23 UTC (rev 11207)
@@ -37,6 +37,8 @@
#include <pub_tool_threadstate.h>
+#include "cg_branchpred.c"
+
/*------------------------------------------------------------*/
/*--- Global variables ---*/
/*------------------------------------------------------------*/
@@ -103,11 +105,13 @@
{
ULong* cost_Bus;
- CLG_DEBUG(0, "log_global_event: Ir %#lx/%u\n",
+ CLG_DEBUG(6, "log_global_event: Ir %#lx/%u\n",
CLG_(bb_base) + ii->instr_offset, ii->instr_size);
if (!CLG_(current_state).collect) return;
+ CLG_ASSERT( (ii->eventset->mask & (1u<<EG_BUS))>0 );
+
CLG_(current_state).cost[ fullOffset(EG_BUS) ]++;
if (CLG_(current_state).nonskipped)
@@ -118,6 +122,71 @@
}
+/* For branches, we consult two different predictors, one which
+ predicts taken/untaken for conditional branches, and the other
+ which predicts the branch target address for indirect branches
+ (jump-to-register style ones). */
+
+static VG_REGPARM(2)
+void log_cond_branch(InstrInfo* ii, Word taken)
+{
+ Bool miss;
+ Int fullOffset_Bc;
+ ULong* cost_Bc;
+
+ CLG_DEBUG(6, "log_cond_branch: Ir %#lx, taken %lu\n",
+ CLG_(bb_base) + ii->instr_offset, taken);
+
+ miss = 1 & do_cond_branch_predict(CLG_(bb_base) + ii->instr_offset, taken);
+
+ if (!CLG_(current_state).collect) return;
+
+ CLG_ASSERT( (ii->eventset->mask & (1u<<EG_BC))>0 );
+
+ if (CLG_(current_state).nonskipped)
+ cost_Bc = CLG_(current_state).nonskipped->skipped + fullOffset(EG_BC);
+ else
+ cost_Bc = CLG_(cost_base) + ii->cost_offset + ii->eventset->offset[EG_BC];
+
+ fullOffset_Bc = fullOffset(EG_BC);
+ CLG_(current_state).cost[ fullOffset_Bc ]++;
+ cost_Bc[0]++;
+ if (miss) {
+ CLG_(current_state).cost[ fullOffset_Bc+1 ]++;
+ cost_Bc[1]++;
+ }
+}
+
+static VG_REGPARM(2)
+void log_ind_branch(InstrInfo* ii, UWord actual_dst)
+{
+ Bool miss;
+ Int fullOffset_Bi;
+ ULong* cost_Bi;
+
+ CLG_DEBUG(6, "log_ind_branch: Ir %#lx, dst %#lx\n",
+ CLG_(bb_base) + ii->instr_offset, actual_dst);
+
+ miss = 1 & do_ind_branch_predict(CLG_(bb_base) + ii->instr_offset, actual_dst);
+
+ if (!CLG_(current_state).collect) return;
+
+ CLG_ASSERT( (ii->eventset->mask & (1u<<EG_BI))>0 );
+
+ if (CLG_(current_state).nonskipped)
+ cost_Bi = CLG_(current_state).nonskipped->skipped + fullOffset(EG_BI);
+ else
+ cost_Bi = CLG_(cost_base) + ii->cost_offset + ii->eventset->offset[EG_BI];
+
+ fullOffset_Bi = fullOffset(EG_BI);
+ CLG_(current_state).cost[ fullOffset_Bi ]++;
+ cost_Bi[0]++;
+ if (miss) {
+ CLG_(current_state).cost[ fullOffset_Bi+1 ]++;
+ cost_Bi[1]++;
+ }
+}
+
/*------------------------------------------------------------*/
/*--- Instrumentation structures and event queue handling ---*/
/*------------------------------------------------------------*/
@@ -161,6 +230,8 @@
Ev_Dr, // Data read
Ev_Dw, // Data write
Ev_Dm, // Data modify (read then write)
+ Ev_Bc, // branch conditional
+ Ev_Bi, // branch indirect (to unknown destination)
Ev_G // Global bus event
}
EventTag;
@@ -184,6 +255,12 @@
IRAtom* ea;
Int szB;
} Dm;
+ struct {
+ IRAtom* taken; /* :: Ity_I1 */
+ } Bc;
+ struct {
+ IRAtom* dst;
+ } Bi;
struct {
} G;
} Ev;
@@ -269,6 +346,16 @@
ppIRExpr(ev->Ev.Dm.ea);
VG_(printf)("\n");
break;
+ case Ev_Bc:
+ VG_(printf)("Bc %p GA=", ev->inode);
+ ppIRExpr(ev->Ev.Bc.taken);
+ VG_(printf)("\n");
+ break;
+ case Ev_Bi:
+ VG_(printf)("Bi %p DST=", ev->inode);
+ ppIRExpr(ev->Ev.Bi.dst);
+ VG_(printf)("\n");
+ break;
case Ev_G:
VG_(printf)("G %p\n", ev->inode);
break;
@@ -306,18 +393,28 @@
ev->inode->eventset = CLG_(sets).base;
break;
case Ev_Dr:
- // extend event set by Dr counter
+ // extend event set by Dr counters
ev->inode->eventset = CLG_(add_event_group)(ev->inode->eventset,
EG_DR);
break;
case Ev_Dw:
case Ev_Dm:
- // extend event set by Dw counter
+ // extend event set by Dw counters
ev->inode->eventset = CLG_(add_event_group)(ev->inode->eventset,
EG_DW);
break;
+ case Ev_Bc:
+ // extend event set by Bc counters
+ ev->inode->eventset = CLG_(add_event_group)(ev->inode->eventset,
+ EG_BC);
+ break;
+ case Ev_Bi:
+ // extend event set by Bi counters
+ ev->inode->eventset = CLG_(add_event_group)(ev->inode->eventset,
+ EG_BI);
+ break;
case Ev_G:
- // extend event set by Bus counter
+ // extend event set by Bus counter
ev->inode->eventset = CLG_(add_event_group)(ev->inode->eventset,
EG_BUS);
break;
@@ -436,6 +533,22 @@
regparms = 3;
inew = i+1;
break;
+ case Ev_Bc:
+ /* Conditional branch */
+ helperName = "log_cond_branch";
+ helperAddr = &log_cond_branch;
+ argv = mkIRExprVec_2( i_node_expr, ev->Ev.Bc.taken );
+ regparms = 2;
+ inew = i+1;
+ break;
+ case Ev_Bi:
+ /* Branch to an unknown destination */
+ helperName = "log_ind_branch";
+ helperAddr = &log_ind_branch;
+ argv = mkIRExprVec_2( i_node_expr, ev->Ev.Bi.dst );
+ regparms = 2;
+ inew = i+1;
+ break;
case Ev_G:
/* Global bus event (CAS, LOCK-prefix, LL-SC, etc) */
helperName = "log_global_event";
@@ -549,10 +662,51 @@
}
static
+void addEvent_Bc ( ClgState* clgs, InstrInfo* inode, IRAtom* guard )
+{
+ Event* evt;
+ tl_assert(isIRAtom(guard));
+ tl_assert(typeOfIRExpr(clgs->sbOut->tyenv, guard)
+ == (sizeof(HWord)==4 ? Ity_I32 : Ity_I64));
+ if (!CLG_(clo).simulate_branch) return;
+
+ if (clgs->events_used == N_EVENTS)
+ flushEvents(clgs);
+ tl_assert(clgs->events_used >= 0 && clgs->events_used < N_EVENTS);
+ evt = &clgs->events[clgs->events_used];
+ init_Event(evt);
+ evt->tag = Ev_Bc;
+ evt->inode = inode;
+ evt->Ev.Bc.taken = guard;
+ clgs->events_used++;
+}
+
+static
+void addEvent_Bi ( ClgState* clgs, InstrInfo* inode, IRAtom* whereTo )
+{
+ Event* evt;
+ tl_assert(isIRAtom(whereTo));
+ tl_assert(typeOfIRExpr(clgs->sbOut->tyenv, whereTo)
+ == (sizeof(HWord)==4 ? Ity_I32 : Ity_I64));
+ if (!CLG_(clo).simulate_branch) return;
+
+ if (clgs->events_used == N_EVENTS)
+ flushEvents(clgs);
+ tl_assert(clgs->events_used >= 0 && clgs->events_used < N_EVENTS);
+ evt = &clgs->events[clgs->events_used];
+ init_Event(evt);
+ evt->tag = Ev_Bi;
+ evt->inode = inode;
+ evt->Ev.Bi.dst = whereTo;
+ clgs->events_used++;
+}
+
+static
void addEvent_G ( ClgState* clgs, InstrInfo* inode )
{
Event* evt;
if (!CLG_(clo).collect_bus) return;
+
if (clgs->events_used == N_EVENTS)
flushEvents(clgs);
tl_assert(clgs->events_used >= 0 && clgs->events_used < N_EVENTS);
@@ -753,6 +907,7 @@
Int i, isize;
IRStmt* st;
Addr origAddr;
+ Addr64 cia; /* address of current insn */
InstrInfo* curr_inode = NULL;
ClgState clgs;
UInt cJumps = 0;
@@ -789,6 +944,8 @@
CLG_ASSERT(Ist_IMark == st->tag);
origAddr = (Addr)st->Ist.IMark.addr;
+ cia = st->Ist.IMark.addr;
+ isize = st->Ist.IMark.len;
CLG_ASSERT(origAddr == st->Ist.IMark.addr); // XXX: check no overflow
/* Get BB struct (creating if necessary).
@@ -819,8 +976,9 @@
break;
case Ist_IMark: {
- CLG_ASSERT(clgs.instr_offset == (Addr)st->Ist.IMark.addr - origAddr);
- isize = st->Ist.IMark.len;
+ cia = st->Ist.IMark.addr;
+ isize = st->Ist.IMark.len;
+ CLG_ASSERT(clgs.instr_offset == (Addr)cia - origAddr);
// If Vex fails to decode an instruction, the size will be zero.
// Pretend otherwise.
if (isize == 0) isize = VG_MIN_INSTR_SZB;
@@ -925,8 +1083,64 @@
}
case Ist_Exit: {
- UInt jmps_passed;
+ Bool guest_exit, inverted;
+ /* VEX code generation sometimes inverts conditional branches.
+ * As Callgrind counts (conditional) jumps, it has to correct
+ * inversions. The heuristic is the following:
+ * (1) Callgrind switches off SB chasing and unrolling, and
+ * therefore it assumes that a candidate for inversion only is
+ * the last conditional branch in an SB.
+ * (2) inversion is assumed if the branch jumps to the address of
+ * the next guest instruction in memory.
+ * This heuristic is precalculated in CLG_(collectBlockInfo)().
+ *
+ * Branching behavior is also used for branch prediction. Note that
+ * above heuristic is different from what Cachegrind does.
+ * Cachegrind uses (2) for all branches.
+ */
+ if (cJumps+1 == clgs.bb->cjmp_count)
+ inverted = clgs.bb->cjmp_inverted;
+ else
+ inverted = False;
+
+ // call branch predictor only if this is a branch in guest code
+ guest_exit = (st->Ist.Exit.jk == Ijk_Boring) ||
+ (st->Ist.Exit.jk == Ijk_Call) ||
+ (st->Ist.Exit.jk == Ijk_Ret);
+
+ if (guest_exit) {
+ /* Stuff to widen the guard expression to a host word, so
+ we can pass it to the branch predictor simulation
+ functions easily. */
+ IRType tyW = hWordTy;
+ IROp widen = tyW==Ity_I32 ? Iop_1Uto32 : Iop_1Uto64;
+ IROp opXOR = tyW==Ity_I32 ? Iop_Xor32 : Iop_Xor64;
+ IRTemp guard1 = newIRTemp(clgs.sbOut->tyenv, Ity_I1);
+ IRTemp guardW = newIRTemp(clgs.sbOut->tyenv, tyW);
+ IRTemp guard = newIRTemp(clgs.sbOut->tyenv, tyW);
+ IRExpr* one = tyW==Ity_I32 ? IRExpr_Const(IRConst_U32(1))
+ : IRExpr_Const(IRConst_U64(1));
+
+ /* Widen the guard expression. */
+ addStmtToIRSB( clgs.sbOut,
+ IRStmt_WrTmp( guard1, st->Ist.Exit.guard ));
+ addStmtToIRSB( clgs.sbOut,
+ IRStmt_WrTmp( guardW,
+ IRExpr_Unop(widen,
+ IRExpr_RdTmp(guard1))) );
+ /* If the exit is inverted, invert the sense of the guard. */
+ addStmtToIRSB(
+ clgs.sbOut,
+ IRStmt_WrTmp(
+ guard,
+ inverted ? IRExpr_Binop(opXOR, IRExpr_RdTmp(guardW), one)
+ : IRExpr_RdTmp(guardW)
+ ));
+ /* And post the event. */
+ addEvent_Bc( &clgs, curr_inode, IRExpr_RdTmp(guard) );
+ }
+
/* We may never reach the next statement, so need to flush
all outstanding transactions now. */
flushEvents( &clgs );
@@ -940,12 +1154,9 @@
/* Update global variable jmps_passed before the jump
* A correction is needed if VEX inverted the last jump condition
*/
- jmps_passed = cJumps;
- if ((cJumps+1 == clgs.bb->cjmp_count) && clgs.bb->cjmp_inverted)
- jmps_passed++;
addConstMemStoreStmt( clgs.sbOut,
(UWord) &CLG_(current_state).jmps_passed,
- jmps_passed, hWordTy);
+ inverted ? cJumps+1 : cJumps, hWordTy);
cJumps++;
break;
@@ -966,6 +1177,26 @@
}
}
+ /* Deal with branches to unknown destinations. Except ignore ones
+ which are function returns as we assume the return stack
+ predictor never mispredicts. */
+ if (sbIn->jumpkind == Ijk_Boring) {
+ if (0) { ppIRExpr( sbIn->next ); VG_(printf)("\n"); }
+ switch (sbIn->next->tag) {
+ case Iex_Const:
+ break; /* boring - branch to known address */
+ case Iex_RdTmp:
+ /* looks like an indirect branch (branch to unknown) */
+ addEvent_Bi( &clgs, curr_inode, sbIn->next );
+ break;
+ default:
+ /* shouldn't happen - if the incoming IR is properly
+ flattened, should only have tmp and const cases to
+ consider. */
+ tl_assert(0);
+ }
+ }
+
/* At the end of the bb. Flush outstandings. */
flushEvents( &clgs );
@@ -1236,10 +1467,61 @@
}
}
+static UInt ULong_width(ULong n)
+{
+ UInt w = 0;
+ while (n > 0) {
+ n = n / 10;
+ w++;
+ }
+ if (w == 0) w = 1;
+ return w + (w-1)/3; // add space for commas
+}
+
static
+void branchsim_printstat(int l1, int l2, int l3)
+{
+ static Char buf1[128], buf2[128], buf3[128], fmt[128];
+ FullCost total;
+ ULong Bc_total_b, Bc_total_mp, Bi_total_b, Bi_total_mp;
+ ULong B_total_b, B_total_mp;
+
+ total = CLG_(total_cost);
+ Bc_total_b = total[ fullOffset(EG_BC) ];
+ Bc_total_mp = total[ fullOffset(EG_BC)+1 ];
+ Bi_total_b = total[ fullOffset(EG_BI) ];
+ Bi_total_mp = total[ fullOffset(EG_BI)+1 ];
+
+ /* Make format string, getting width right for numbers */
+ VG_(sprintf)(fmt, "%%s %%,%dllu (%%,%dllu cond + %%,%dllu ind)\n",
+ l1, l2, l3);
+
+ if (0 == Bc_total_b) Bc_total_b = 1;
+ if (0 == Bi_total_b) Bi_total_b = 1;
+ B_total_b = Bc_total_b + Bi_total_b;
+ B_total_mp = Bc_total_mp + Bi_total_mp;
+
+ VG_(umsg)("\n");
+ VG_(umsg)(fmt, "Branches: ",
+ B_total_b, Bc_total_b, Bi_total_b);
+
+ VG_(umsg)(fmt, "Mispredicts: ",
+ B_total_mp, Bc_total_mp, Bi_total_mp);
+
+ VG_(percentify)(B_total_mp, B_total_b, 1, l1+1, buf1);
+ VG_(percentify)(Bc_total_mp, Bc_total_b, 1, l2+1, buf2);
+ VG_(percentify)(Bi_total_mp, Bi_total_b, 1, l3+1, buf3);
+
+ VG_(umsg)("Mispred rate: %s (%s + %s )\n", buf1, buf2,buf3);
+}
+
+
+static
void finish(void)
{
- char buf[RESULTS_BUF_LEN];
+ Char buf[RESULTS_BUF_LEN], fmt[128];
+ Int l1, l2, l3;
+ FullCost total;
CLG_DEBUG(0, "finish()\n");
@@ -1334,8 +1616,33 @@
VG_(message)(Vg_UserMsg, "Collected : %s\n", buf);
VG_(message)(Vg_UserMsg, "\n");
- // if (CLG_(clo).simulate_cache)
- (*CLG_(cachesim).printstat)();
+ /* determine value widths for statistics */
+ total = CLG_(total_cost);
+ l1 = ULong_width( total[fullOffset(EG_IR)] );
+ l2 = l3 = 0;
+ if (CLG_(clo).simulate_cache) {
+ l2 = ULong_width( total[fullOffset(EG_DR)] );
+ l3 = ULong_width( total[fullOffset(EG_DW)] );
+ }
+ if (CLG_(clo).simulate_branch) {
+ int l2b = ULong_width( total[fullOffset(EG_BC)] );
+ int l3b = ULong_width( total[fullOffset(EG_BI)] );
+ if (l2b > l2) l2 = l2b;
+ if (l3b > l3) l3 = l3b;
+ }
+
+ /* Make format string, getting width right for numbers */
+ VG_(sprintf)(fmt, "%%s %%,%dllu\n", l1);
+
+ /* Always print this */
+ VG_(umsg)(fmt, "I refs: ", total[fullOffset(EG_IR)] );
+
+ if (CLG_(clo).simulate_cache)
+ (*CLG_(cachesim).printstat)(l1, l2, l3);
+
+ if (CLG_(clo).simulate_branch)
+ branchsim_printstat(l1, l2, l3);
+
}
Modified: trunk/callgrind/sim.c
===================================================================
--- trunk/callgrind/sim.c 2010-07-01 14:50:30 UTC (rev 11206)
+++ trunk/callgrind/sim.c 2010-07-02 19:56:23 UTC (rev 11207)
@@ -1490,8 +1490,7 @@
void cachesim_print_opts(void)
{
VG_(printf)(
-"\n cache simulator options:\n"
-" --simulate-cache=no|yes Do cache simulation [no]\n"
+"\n cache simulator options (does cache simulation if used):\n"
" --simulate-wb=no|yes Count write-back events [no]\n"
" --simulate-hwpref=no|yes Simulate hardware prefetch [no]\n"
#if CLG_EXPERIMENTAL
@@ -1614,7 +1613,7 @@
}
static
-void cachesim_printstat(void)
+void cachesim_printstat(Int l1, Int l2, Int l3)
{
FullCost total = CLG_(total_cost), D_total = 0;
ULong L2_total_m, L2_total_mr, L2_total_mw,
@@ -1622,7 +1621,6 @@
char buf1[RESULTS_BUF_LEN],
buf2[RESULTS_BUF_LEN],
buf3[RESULTS_BUF_LEN];
- Int l1, l2, l3;
Int p;
if ((VG_(clo_verbosity) >1) && clo_simulate_hwpref) {
@@ -1633,13 +1631,6 @@
VG_(message)(Vg_DebugMsg, "\n");
}
- /* I cache results. Use the I_refs value to determine the first column
- * width. */
- l1 = commify(total[fullOffset(EG_IR)], 0, buf1);
- VG_(message)(Vg_UserMsg, "I refs: %s\n", buf1);
-
- if (!CLG_(clo).simulate_cache) return;
-
commify(total[fullOffset(EG_IR) +1], l1, buf1);
VG_(message)(Vg_UserMsg, "I1 misses: %s\n", buf1);
@@ -1671,8 +1662,8 @@
CLG_(add_cost) ( CLG_(get_event_set)(EG_DW), D_total, total + fullOffset(EG_DW) );
commify( D_total[0], l1, buf1);
- l2 = commify(total[fullOffset(EG_DR)], 0, buf2);
- l3 = commify(total[fullOffset(EG_DW)], 0, buf3);
+ commify(total[fullOffset(EG_DR)], l2, buf2);
+ commify(total[fullOffset(EG_DW)], l3, buf3);
VG_(message)(Vg_UserMsg, "D refs: %s (%s rd + %s wr)\n",
buf1, buf2, buf3);
@@ -1782,6 +1773,11 @@
CLG_(register_event_group4)(EG_DW, "Dw", "D1mw", "D2mw", "D2dmw");
}
+ if (CLG_(clo).simulate_branch) {
+ CLG_(register_event_group2)(EG_BC, "Bc", "Bcm");
+ CLG_(register_event_group2)(EG_BI, "Bi", "Bim");
+ }
+
if (CLG_(clo).collect_bus)
CLG_(register_event_group)(EG_BUS, "Ge");
@@ -1796,6 +1792,7 @@
// event set comprising all event groups, used for inclusive cost
CLG_(sets).full = CLG_(add_event_group2)(CLG_(sets).base, EG_DR, EG_DW);
+ CLG_(sets).full = CLG_(add_event_group2)(CLG_(sets).full, EG_BC, EG_BI);
CLG_(sets).full = CLG_(add_event_group) (CLG_(sets).full, EG_BUS);
CLG_(sets).full = CLG_(add_event_group2)(CLG_(sets).full, EG_ALLOC, EG_SYS);
@@ -1819,6 +1816,10 @@
CLG_(append_event)(CLG_(dumpmap), "I2dmr");
CLG_(append_event)(CLG_(dumpmap), "D2dmr");
CLG_(append_event)(CLG_(dumpmap), "D2dmw");
+ CLG_(append_event)(CLG_(dumpmap), "Bc");
+ CLG_(append_event)(CLG_(dumpmap), "Bcm");
+ CLG_(append_event)(CLG_(dumpmap), "Bi");
+ CLG_(append_event)(CLG_(dumpmap), "Bim");
CLG_(append_event)(CLG_(dumpmap), "AcCost1");
CLG_(append_event)(CLG_(dumpmap), "SpLoss1");
CLG_(append_event)(CLG_(dumpmap), "AcCost2");
Modified: trunk/callgrind/tests/filter_stderr
===================================================================
--- trunk/callgrind/tests/filter_stderr 2010-07-01 14:50:30 UTC (rev 11206)
+++ trunk/callgrind/tests/filter_stderr 2010-07-02 19:56:23 UTC (rev 11207)
@@ -19,6 +19,9 @@
# Remove numbers from I1/D1/L2/L2i/L2d "misses:" and "miss rates:" lines
perl -p -e 's/((I1|D1|L2|L2i|L2d) *(misses|miss rate):)[ 0-9,()+rdw%\.]*$/\1/' |
+# Remove numbers from "Branches:", "Mispredicts:, and "Mispred rate:" lines
+perl -p -e 's/((Branches|Mispredicts|Mispred rate):)[ 0-9,()+condi%\.]*$/\1/' |
+
# Remove CPUID warnings lines for P4s and other machines
sed "/warning: Pentium 4 with 12 KB micro-op instruction trace cache/d" |
sed "/Simulating a 16 KB I-cache with 32 B lines/d" |
Added: trunk/callgrind/tests/simwork-both.stderr.exp
===================================================================
--- trunk/callgrind/tests/simwork-both.stderr.exp (rev 0)
+++ trunk/callgrind/tests/simwork-both.stderr.exp 2010-07-02 19:56:23 UTC (rev 11207)
@@ -0,0 +1,24 @@
+
+
+Events : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw Bc Bcm Bi Bim
+Collected :
+
+I refs:
+I1 misses:
+L2i misses:
+I1 miss rate:
+L2i miss rate:
+
+D refs:
+D1 misses:
+L2d misses:
+D1 miss rate:
+L2d miss rate:
+
+L2 refs:
+L2 misses:
+L2 miss rate:
+
+Branches:
+Mispredicts:
+Mispred rate:
Added: trunk/callgrind/tests/simwork-both.stdout.exp
===================================================================
--- trunk/callgrind/tests/simwork-both.stdout.exp (rev 0)
+++ trunk/callgrind/tests/simwork-both.stdout.exp 2010-07-02 19:56:23 UTC (rev 11207)
@@ -0,0 +1 @@
+Sum: 1000000
Added: trunk/callgrind/tests/simwork-both.vgtest
===================================================================
--- trunk/callgrind/tests/simwork-both.vgtest (rev 0)
+++ trunk/callgrind/tests/simwork-both.vgtest 2010-07-02 19:56:23 UTC (rev 11207)
@@ -0,0 +1,3 @@
+prog: simwork
+vgopts: --cache-sim=yes --branch-sim=yes
+cleanup: rm callgrind.out.*
Added: trunk/callgrind/tests/simwork-branch.stderr.exp
===================================================================
--- trunk/callgrind/tests/simwork-branch.stderr.exp (rev 0)
+++ trunk/callgrind/tests/simwork-branch.stderr.exp 2010-07-02 19:56:23 UTC (rev 11207)
@@ -0,0 +1,10 @@
+
+
+Events : Ir Bc Bcm Bi Bim
+Collected :
+
+I refs:
+
+Branches:
+Mispredicts:
+Mispred rate:
Added: trunk/callgrind/tests/simwork-branch.stdout.exp
===================================================================
--- trunk/callgrind/tests/simwork-branch.stdout.exp (rev 0)
+++ trunk/callgrind/tests/simwork-branch.stdout.exp 2010-07-02 19:56:23 UTC (rev 11207)
@@ -0,0 +1 @@
+Sum: 1000000
Added: trunk/callgrind/tests/simwork-branch.vgtest
===================================================================
--- trunk/callgrind/tests/simwork-branch.vgtest (rev 0)
+++ trunk/callgrind/tests/simwork-branch.vgtest 2010-07-02 19:56:23 UTC (rev 11207)
@@ -0,0 +1,3 @@
+prog: simwork
+vgopts: --branch-sim=yes
+cleanup: rm callgrind.out.*
Added: trunk/callgrind/tests/simwork-cache.stderr.exp
===================================================================
--- trunk/callgrind/tests/simwork-cache.stderr.exp (rev 0)
+++ trunk/callgrind/tests/simwork-cache.stderr.exp 2010-07-02 19:56:23 UTC (rev 11207)
@@ -0,0 +1,20 @@
+
+
+Events : Ir Dr Dw I1mr D1mr D1mw I2mr D2mr D2mw
+Collected :
+
+I refs:
+I1 misses:
+L2i misses:
+I1 miss rate:
+L2i miss rate:
+
+D refs:
+D1 misses:
+L2d misses:
+D1 miss rate:
+L2d miss rate:
+
+L2 refs:
+L2 misses:
+L2 miss rate:
Added: trunk/callgrind/tests/simwork-cache.stdout.exp
===================================================================
--- trunk/callgrind/tests/simwork-cache.stdout.exp (rev 0)
+++ trunk/callgrind/tests/simwork-cache.stdout.exp 2010-07-02 19:56:23 UTC (rev 11207)
@@ -0,0 +1 @@
+Sum: 1000000
Added: trunk/callgrind/tests/simwork-cache.vgtest
===================================================================
--- trunk/callgrind/tests/simwork-cache.vgtest (rev 0)
+++ trunk/callgrind/tests/simwork-cache.vgtest 2010-07-02 19:56:23 UTC (rev 11207)
@@ -0,0 +1,3 @@
+prog: simwork
+vgopts: --cache-sim=yes
+cleanup: rm callgrind.out.*
|
|
From: Konstantin S. <kon...@gm...> - 2010-07-02 17:11:20
|
On Fri, Jul 2, 2010 at 2:19 PM, Bart Van Assche <bva...@ac...> wrote:
> On Fri, Jul 2, 2010 at 9:03 AM, Julian Seward <js...@ac...> wrote:
>>
>> > I don't think we need to use ANNOTATE_* in standard libraries.
>> > Instead, I want to ask the library writers to arrange their code to
>> > make it easier to intercept by valgrind tools.
>> > In particular, for atomic ref counting I want to ask them to have a new
>> > function which simply means "atomically decrement reference count and
>> > return whether count is zero". That function could itself simply call
>> > __exchange_and_add_dispatch or whatever.
>>
>> Yes. Perhaps "T atomic_decrement(T*)", for some T (unsigned int etc)
>> and returns the new T. Synthesising "is new count == 0" into a 32/64-bit
>> value is expensive -- requires "testl ; set ; movzbl" -- better simply
>> to return the new value, which we have for free on LL/SC based platforms
>> (ARM, PPC) anyway, and also on x86/x86_64 if the atomic dec is encoded
>> using "load, sub, cmpxchg, check-the-cmpxchg succeeded".
>>
>> Why not just use the gcc builtin naming scheme for atomic operations?
>> It's uniform across multiple archs, and makes it clear whether the
>> returned value is the value before or after the decrement. No need to
>> reinvent the wheel.
>
> Only instrumenting the atomic decrement is not sufficient IMHO. The
> atomic increment has to be instrumented too, such that it is possible
> for a data race detection tool to find out which happens-before arcs
> to insert.
Instrumenting ref count decrement was never needed in my practice.
In my practice we needed to instrument a function RefCountIsOne() in
addition to RefCountIncrement();
bool RefCountIsOne() {
bool res = AtomicRead(&ref_count_) == 1;
if (res) {
ANNOTATE_HAPPENS_AFTER(&ref_count_);
}
return res;
}
...
if (x.RefCountIsOne()) {
x.DoSomethingWithXWithoutLocksBecauseWeOwnXAndAreGoingToDeleteIt.
}
>
>> ---------------
>>
>> Kind-of related comment:
>>
>> One observation w.r.t. refcounting and C++ is, when the refcount makes
>> a 1 -> 0 transition then the object becomes exclusively owned by the
>> decrementing thread, and so it can run its destructor without any
>> locking. However, at least Helgrind does not understand that, and so
>> needs to be told the object is now exclusively owned by the calling
>> thread before running the destructor.
>>
>> In this case, the obvious thing to do seems like
>>
>> VALGRIND_HG_CLEAN_MEMORY(this, sizeof(*this))
>>
>> but this is wrong in the presence of inheritance, when a class defines a
>> ::Release method, and is then subclassed, but the subclass doesn't provide
>> its own ::Release. Then "sizeof(*this)" will be too small, because it is
>> the size of the base class, not the runtime size. Also, in the presence of
>> multiple inheritance, there is no guarantee that "this" points to the
>> start of the object; we are only assured that it points either to the
>> start or somewhere within it.
>>
>> For this reason I recently added to Helgrind a new clreq,
>> VALGRIND_HG_CLEAN_MEMORY_HEAPBLOCK(ptr), which is the same as
>> VALGRIND_HG_CLEAN_MEMORY applied to whatever heap block "ptr" points
>> into, if any, and it's OK if it's an interior pointer.
>>
>> Do TSan and DRD have anything similar?
>>
>> This isn't theoretical. I found it out the hard way when analysing
>> an ocean of false race reports when Helgrinding C++ code using atomic
>> refcounting and inheritance, earlier this year.
>
> This kind of issue can indeed arise when letting the client program
> communicate to the tool how many bytes will be freed. But why to
> invoke such a client request from the client code while the tool
> already has exact information about the number of bytes that will be
> freed ? I'm assuming here that each reference counted object is
> allocated via an individual memory request, and that no memory region
> contains two or more reference-counted objects that are freed
> individually.
See my previous message. The deleted object could be a compound
structure, not just a sequence of bytes.
The is not the case for std::string, but could be easily the case for
some other C++ stuff from e.g. boost.
We have tons of such classes, but they all use a single ref-counting
utility annotated with HAPPENS_BEFORE/AFTER and so they are
race-detector friendly.
--kcc
>
> Bart.
>
|
|
From: Konstantin S. <kon...@gm...> - 2010-07-02 17:04:12
|
On Fri, Jul 2, 2010 at 11:03 AM, Julian Seward <js...@ac...> wrote:
>
>> I don't think we need to use ANONTATE_* in standard libraries.
>> Instead, I want to ask the library writers to arrange their code to
>> make it easier to intercept by valgrind tools.
>> In particular, for atomic ref counting I want to ask them to have a new
>> function which simply means "atomically decrement reference count and
>> return whether count is zero". That function could itself simply call
>> __exchange_and_add_dispatch or whatever.
>
> Yes. Perhaps "T atomic_decrement(T*)", for some T (unsigned int etc)
> and returns the new T.
Ok.
> Synthesising "is new count == 0" into a 32/64-bit
> value is expensive -- requires "testl ; set ; movzbl" -- better simply
> to return the new value, which we have for free on LL/SC based platforms
> (ARM, PPC) anyway, and also on x86/x86_64 if the atomic dec is encoded
> using "load, sub, cmpxchg, check-the-cmpxchg succeeded".
>
> Why not just use the gcc builtin naming scheme for atomic operations?
>From their naming it is not obvious that the functions will not be
used for something other that ref counting (they probably will).
> It's uniform across multiple archs, and makes it clear whether the
> returned value is the value before or after the decrement. No need to
> reinvent the wheel.
>
> ---------------
>
> Kind-of related comment:
>
> One observation w.r.t. refcounting and C++ is, when the refcount makes
> a 1 -> 0 transition then the object becomes exclusively owned by the
> decrementing thread, and so it can run its destructor without any
> locking. However, at least Helgrind does not understand that, and so
> needs to be told the object is now exclusively owned by the calling
> thread before running the destructor.
The only reliable way of annotating ref counting known to me is
ANONTATE_HAPPENS_BEFORE(&ref_count_);
if (AtomicRefcountDecrement(&ref_count_) == 0) {
ANONTATE_HAPPENS_AFTER(&ref_count_);
delete this;
}
Not that 'delete this' is not just a memory deallocation (free), but
also any amount of other stuff.
>
> In this case, the obvious thing to do seems like
>
> VALGRIND_HG_CLEAN_MEMORY(this, sizeof(*this))
>
> but this is wrong in the presence of inheritance, when a class defines a
> ::Release method, and is then subclassed, but the subclass doesn't provide
> its own ::Release. Then "sizeof(*this)" will be too small, because it is
> the size of the base class, not the runtime size. Also, in the presence of
> multiple inheritance, there is no guarantee that "this" points to the
> start of the object; we are only assured that it points either to the
> start or somewhere within it.
>
> For this reason I recently added to Helgrind a new clreq,
> VALGRIND_HG_CLEAN_MEMORY_HEAPBLOCK(ptr), which is the same as
> VALGRIND_HG_CLEAN_MEMORY applied to whatever heap block "ptr" points
> into, if any, and it's OK if it's an interior pointer.
This is not enough, imo.
When you make 'delete this', 'this' is not necessary a simple object
like string.
It could be a complicate class like e.g. a tree, which means you will
end up with lots of calls to free() and other computations.
>
> Do TSan and DRD have anything similar?
As I said, we need HAPPENS_BEFORE/AFTER.
>
> This isn't theoretical. I found it out the hard way when analysing
> an ocean of false race reports when Helgrinding C++ code using atomic
> refcounting and inheritance, earlier this year.
Aha! So, you share my pain! :)
--kcc
>
> J
>
|
|
From: Nicholas N. <n.n...@gm...> - 2010-07-02 10:30:44
|
Nightly build on ocean32 ( Ubuntu 9.10, x86_64 (32-bit only) )
Started at 2010-07-02 03:00:01 PDT
Ended at 2010-07-02 03:30:27 PDT
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 504 tests, 12 stderr failures, 1 stdout failure, 0 post failures ==
memcheck/tests/long_namespace_xml (stderr)
memcheck/tests/origin5-bz2 (stderr)
memcheck/tests/x86-linux/scalar (stderr)
none/tests/empty-exe (stderr)
none/tests/shell (stdout)
none/tests/shell (stderr)
none/tests/shell_valid1 (stderr)
none/tests/shell_valid2 (stderr)
none/tests/shell_valid3 (stderr)
none/tests/shell_zerolength (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
exp-ptrcheck/tests/bad_percentify (stderr)
exp-ptrcheck/tests/supp (stderr)
=================================================
./valgrind-new/exp-ptrcheck/tests/bad_percentify.stderr.diff-glibc28-amd64
=================================================
--- bad_percentify.stderr.exp-glibc28-amd64 2010-07-02 03:15:47.000000000 -0700
+++ bad_percentify.stderr.out 2010-07-02 03:29:07.000000000 -0700
@@ -1,32 +1,29 @@
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:88)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:93)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:98)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
=================================================
./valgrind-new/exp-ptrcheck/tests/supp.stderr.diff
=================================================
--- supp.stderr.exp 2010-07-02 03:15:47.000000000 -0700
+++ supp.stderr.out 2010-07-02 03:30:17.000000000 -0700
@@ -1,7 +1,7 @@
Syscall param write(buf) is non-contiguous
at 0x........: write (in /...libc...)
- by 0x........: main (supp.c:16)
+ by 0x........: (below main)
First byte (0x........) is 3 bytes inside a 6-byte block alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (supp.c:12)
=================================================
./valgrind-new/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2010-07-02 03:15:44.000000000 -0700
+++ tc06_two_races_xml.stderr.out 2010-07-02 03:24:23.000000000 -0700
@@ -40,16 +40,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>do_clone</fn>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>pthread_create@@GLIBC_2.2.5</fn>
+ <fn>pthread_create@@GLIBC_2.1</fn>
+ <dir>...</dir>
+ <file>createthread.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
@@ -121,11 +122,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -175,11 +182,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -229,11 +242,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
@@ -283,11 +302,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
=================================================
./valgrind-new/memcheck/tests/long_namespace_xml.stderr.diff
=================================================
--- long_namespace_xml.stderr.exp 2010-07-02 03:16:04.000000000 -0700
+++ long_namespace_xml.stderr.out 2010-07-02 03:20:35.000000000 -0700
@@ -37,7 +37,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm</fn>
+ <fn>_ZN53044basic_iostreamIwSt11char_traitsIwEE</fn>
<dir>...</dir>
<file>long_namespace_xml.cpp</file>
<line>...</line>
@@ -64,7 +64,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm</fn>
+ <fn>_ZN53044basic_iostreamIwSt11char_traitsIwEE</fn>
<dir>...</dir>
<file>long_namespace_xml.cpp</file>
<line>...</line>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2010-07-02 03:16:04.000000000 -0700
+++ origin5-bz2.stderr.out 2010-07-02 03:20:52.000000000 -0700
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,7 +27,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -38,7 +38,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -49,7 +49,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -60,7 +60,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -71,7 +71,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -82,7 +82,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -93,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -104,7 +104,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2010-07-02 03:16:04.000000000 -0700
+++ origin5-bz2.stderr.out 2010-07-02 03:20:52.000000000 -0700
@@ -28,7 +28,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -38,7 +39,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -48,7 +50,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -58,7 +61,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -68,7 +72,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -78,7 +83,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2010-07-02 03:16:04.000000000 -0700
+++ origin5-bz2.stderr.out 2010-07-02 03:20:52.000000000 -0700
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,85 +9,91 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2854)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2858)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/x86-linux/scalar.stderr.diff
=================================================
--- scalar.stderr.exp 2010-07-02 03:15:54.000000000 -0700
+++ scalar.stderr.out 2010-07-02 03:21:59.000000000 -0700
@@ -230,10 +230,6 @@
Syscall param mount(data) contains uninitialised byte(s)
...
-Syscall param mount(source) points to unaddressable byte(s)
- ...
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
Syscall param mount(target) points to unaddressable byte(s)
...
Address 0x........ is not stack'd, malloc'd or (recently) free'd
@@ -505,9 +501,6 @@
-----------------------------------------------------
55: __NR_fcntl (GETLK) 1s 0m
-----------------------------------------------------
-
-More than 100 errors detected. Subsequent errors
-will still be recorded, but in less detail than before.
Syscall param fcntl(lock) contains uninitialised byte(s)
...
@@ -517,6 +510,9 @@
-----------------------------------------------------
57: __NR_setpgid 2s 0m
-----------------------------------------------------
+
+More than 100 errors detected. Subsequent errors
+will still be recorded, but in less detail than before.
Syscall param setpgid(pid) contains uninitialised byte(s)
...
=================================================
./valgrind-new/none/tests/empty-exe.stderr.diff
=================================================
--- empty-exe.stderr.exp 2010-07-02 03:16:28.000000000 -0700
+++ empty-exe.stderr.out 2010-07-02 03:22:37.000000000 -0700
@@ -1,2 +1,2 @@
-
-
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./empty-exe: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell.stderr.diff
=================================================
--- shell.stderr.exp 2010-07-02 03:16:28.000000000 -0700
+++ shell.stderr.out 2010-07-02 03:23:04.000000000 -0700
@@ -1,8 +1 @@
-./shell: ./x86/: is a directory
-./shell: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell: ./shell_binaryfile: cannot execute binary file
-./shell: ./shell_nosuchfile: No such file or directory
-./shell: shell_nosuchfile: command not found
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind-new/none/tests/shell.stderr.diff-dash
=================================================
--- shell.stderr.exp-dash 2010-07-02 03:16:28.000000000 -0700
+++ shell.stderr.out 2010-07-02 03:23:04.000000000 -0700
@@ -1,8 +1 @@
-./shell: 10: ./x86/: Permission denied
-./shell: 13: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell_binaryfile: 4: Syntax error: ")" unexpected
-./shell: 22: ./shell_nosuchfile: not found
-./shell: 25: shell_nosuchfile: not found
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind-new/none/tests/shell.stdout.diff
=================================================
--- shell.stdout.exp 2010-07-02 03:16:28.000000000 -0700
+++ shell.stdout.out 2010-07-02 03:23:04.000000000 -0700
@@ -1,10 +0,0 @@
-Execute a directory
-Execute a non-executable file
-Execute a script with a bad interpreter name
-Execute a binary file
-Execute a non-existent file
-Execute a non-existent file (2)
-Execute a valid script with a #! line
-Execute a valid script without a #! line
-Execute a valid script with #! but no interpname
-Execute a zero-length file
=================================================
./valgrind-new/none/tests/shell_valid1.stderr.diff
=================================================
--- shell_valid1.stderr.exp 2010-07-02 03:16:28.000000000 -0700
+++ shell_valid1.stderr.out 2010-07-02 03:23:04.000000000 -0700
@@ -0,0 +1 @@
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind-new/none/tests/shell_valid2.stderr.diff
=================================================
--- shell_valid2.stderr.exp 2010-07-02 03:16:28.000000000 -0700
+++ shell_valid2.stderr.out 2010-07-02 03:23:04.000000000 -0700
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid2: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_valid3.stderr.diff
=================================================
--- shell_valid3.stderr.exp 2010-07-02 03:16:28.000000000 -0700
+++ shell_valid3.stderr.out 2010-07-02 03:23:04.000000000 -0700
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid3: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_zerolength.stderr.diff
=================================================
--- shell_zerolength.stderr.exp 2010-07-02 03:16:28.000000000 -0700
+++ shell_zerolength.stderr.out 2010-07-02 03:23:04.000000000 -0700
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_zerolength: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-new/none/tests/shell_zerolength.stderr.diff-dash
=================================================
--- shell_zerolength.stderr.exp-dash 2010-07-02 03:16:28.000000000 -0700
+++ shell_zerolength.stderr.out 2010-07-02 03:23:04.000000000 -0700
@@ -1 +1,2 @@
-Bus error
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_zerolength: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/exp-ptrcheck/tests/bad_percentify.stderr.diff-glibc28-amd64
=================================================
--- bad_percentify.stderr.exp-glibc28-amd64 2010-07-02 03:00:35.000000000 -0700
+++ bad_percentify.stderr.out 2010-07-02 03:14:12.000000000 -0700
@@ -1,32 +1,29 @@
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:88)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:93)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:98)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
=================================================
./valgrind-old/exp-ptrcheck/tests/supp.stderr.diff
=================================================
--- supp.stderr.exp 2010-07-02 03:00:35.000000000 -0700
+++ supp.stderr.out 2010-07-02 03:15:20.000000000 -0700
@@ -1,7 +1,7 @@
Syscall param write(buf) is non-contiguous
at 0x........: write (in /...libc...)
- by 0x........: main (supp.c:16)
+ by 0x........: (below main)
First byte (0x........) is 3 bytes inside a 6-byte block alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (supp.c:12)
=================================================
./valgrind-old/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2010-07-02 03:00:32.000000000 -0700
+++ tc06_two_races_xml.stderr.out 2010-07-02 03:09:29.000000000 -0700
@@ -40,16 +40,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>do_clone</fn>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>pthread_create@@GLIBC_2.2.5</fn>
+ <fn>pthread_create@@GLIBC_2.1</fn>
+ <dir>...</dir>
+ <file>createthread.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
@@ -121,11 +122,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -175,11 +182,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -229,11 +242,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
@@ -283,11 +302,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
=================================================
./valgrind-old/memcheck/tests/long_namespace_xml.stderr.diff
=================================================
--- long_namespace_xml.stderr.exp 2010-07-02 03:01:04.000000000 -0700
+++ long_namespace_xml.stderr.out 2010-07-02 03:05:35.000000000 -0700
@@ -37,7 +37,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm</fn>
+ <fn>_ZN53044basic_iostreamIwSt11char_traitsIwEE</fn>
<dir>...</dir>
<file>long_namespace_xml.cpp</file>
<line>...</line>
@@ -64,7 +64,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm</fn>
+ <fn>_ZN53044basic_iostreamIwSt11char_traitsIwEE</fn>
<dir>...</dir>
<file>long_namespace_xml.cpp</file>
<line>...</line>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2010-07-02 03:01:04.000000000 -0700
+++ origin5-bz2.stderr.out 2010-07-02 03:05:50.000000000 -0700
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,7 +27,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -38,7 +38,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -49,7 +49,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -60,7 +60,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -71,7 +71,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -82,7 +82,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -93,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -104,7 +104,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2010-07-02 03:01:04.000000000 -0700
+++ origin5-bz2.stderr.out 2010-07-02 03:05:50.000000000 -0700
@@ -28,7 +28,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -38,7 +39,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -48,7 +50,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -58,7 +61,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -68,7 +72,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -78,7 +83,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2010-07-02 03:01:04.000000000 -0700
+++ origin5-bz2.stderr.out 2010-07-02 03:05:50.000000000 -0700
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,85 +9,91 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2854)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2858)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/x86-linux/scalar.stderr.diff
=================================================
--- scalar.stderr.exp 2010-07-02 03:00:52.000000000 -0700
+++ scalar.stderr.out 2010-07-02 03:07:04.000000000 -0700
@@ -230,10 +230,6 @@
Syscall param mount(data) contains uninitialised byte(s)
...
-Syscall param mount(source) points to unaddressable byte(s)
- ...
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
Syscall param mount(target) points to unaddressable byte(s)
...
Address 0x........ is not stack'd, malloc'd or (recently) free'd
@@ -505,9 +501,6 @@
-----------------------------------------------------
55: __NR_fcntl (GETLK) 1s 0m
-----------------------------------------------------
-
-More than 100 errors detected. Subsequent errors
-will still be recorded, but in less detail than before.
Syscall param fcntl(lock) contains uninitialised byte(s)
...
@@ -517,6 +510,9 @@
-----------------------------------------------------
57: __NR_setpgid 2s 0m
-----------------------------------------------------
+
+More than 100 errors detected. Subsequent errors
+will still be recorded, but in less detail than before.
Syscall param setpgid(pid) contains uninitialised byte(s)
...
=================================================
./valgrind-old/none/tests/empty-exe.stderr.diff
=================================================
--- empty-exe.stderr.exp 2010-07-02 03:01:28.000000000 -0700
+++ empty-exe.stderr.out 2010-07-02 03:07:42.000000000 -0700
@@ -1,2 +1,2 @@
-
-
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./empty-exe: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell.stderr.diff
=================================================
--- shell.stderr.exp 2010-07-02 03:01:28.000000000 -0700
+++ shell.stderr.out 2010-07-02 03:08:09.000000000 -0700
@@ -1,8 +1 @@
-./shell: ./x86/: is a directory
-./shell: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell: ./shell_binaryfile: cannot execute binary file
-./shell: ./shell_nosuchfile: No such file or directory
-./shell: shell_nosuchfile: command not found
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind-old/none/tests/shell.stderr.diff-dash
=================================================
--- shell.stderr.exp-dash 2010-07-02 03:01:28.000000000 -0700
+++ shell.stderr.out 2010-07-02 03:08:09.000000000 -0700
@@ -1,8 +1 @@
-./shell: 10: ./x86/: Permission denied
-./shell: 13: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell_binaryfile: 4: Syntax error: ")" unexpected
-./shell: 22: ./shell_nosuchfile: not found
-./shell: 25: shell_nosuchfile: not found
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind-old/none/tests/shell.stdout.diff
=================================================
--- shell.stdout.exp 2010-07-02 03:01:28.000000000 -0700
+++ shell.stdout.out 2010-07-02 03:08:09.000000000 -0700
@@ -1,10 +0,0 @@
-Execute a directory
-Execute a non-executable file
-Execute a script with a bad interpreter name
-Execute a binary file
-Execute a non-existent file
-Execute a non-existent file (2)
-Execute a valid script with a #! line
-Execute a valid script without a #! line
-Execute a valid script with #! but no interpname
-Execute a zero-length file
=================================================
./valgrind-old/none/tests/shell_valid1.stderr.diff
=================================================
--- shell_valid1.stderr.exp 2010-07-02 03:01:28.000000000 -0700
+++ shell_valid1.stderr.out 2010-07-02 03:08:09.000000000 -0700
@@ -0,0 +1 @@
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind-old/none/tests/shell_valid2.stderr.diff
=================================================
--- shell_valid2.stderr.exp 2010-07-02 03:01:28.000000000 -0700
+++ shell_valid2.stderr.out 2010-07-02 03:08:09.000000000 -0700
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid2: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell_valid3.stderr.diff
=================================================
--- shell_valid3.stderr.exp 2010-07-02 03:01:28.000000000 -0700
+++ shell_valid3.stderr.out 2010-07-02 03:08:09.000000000 -0700
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid3: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell_zerolength.stderr.diff
=================================================
--- shell_zerolength.stderr.exp 2010-07-02 03:01:28.000000000 -0700
+++ shell_zerolength.stderr.out 2010-07-02 03:08:09.000000000 -0700
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_zerolength: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind-old/none/tests/shell_zerolength.stderr.diff-dash
=================================================
--- shell_zerolength.stderr.exp-dash 2010-07-02 03:01:28.000000000 -0700
+++ shell_zerolength.stderr.out 2010-07-02 03:08:09.000000000 -0700
@@ -1 +1,2 @@
-Bus error
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_zerolength: bad interpreter (/bin/sh): VG_(strerror): unknown error
|
|
From: Bart V. A. <bva...@ac...> - 2010-07-02 10:19:27
|
On Fri, Jul 2, 2010 at 9:03 AM, Julian Seward <js...@ac...> wrote: > > > I don't think we need to use ANNOTATE_* in standard libraries. > > Instead, I want to ask the library writers to arrange their code to > > make it easier to intercept by valgrind tools. > > In particular, for atomic ref counting I want to ask them to have a new > > function which simply means "atomically decrement reference count and > > return whether count is zero". That function could itself simply call > > __exchange_and_add_dispatch or whatever. > > Yes. Perhaps "T atomic_decrement(T*)", for some T (unsigned int etc) > and returns the new T. Synthesising "is new count == 0" into a 32/64-bit > value is expensive -- requires "testl ; set ; movzbl" -- better simply > to return the new value, which we have for free on LL/SC based platforms > (ARM, PPC) anyway, and also on x86/x86_64 if the atomic dec is encoded > using "load, sub, cmpxchg, check-the-cmpxchg succeeded". > > Why not just use the gcc builtin naming scheme for atomic operations? > It's uniform across multiple archs, and makes it clear whether the > returned value is the value before or after the decrement. No need to > reinvent the wheel. Only instrumenting the atomic decrement is not sufficient IMHO. The atomic increment has to be instrumented too, such that it is possible for a data race detection tool to find out which happens-before arcs to insert. > --------------- > > Kind-of related comment: > > One observation w.r.t. refcounting and C++ is, when the refcount makes > a 1 -> 0 transition then the object becomes exclusively owned by the > decrementing thread, and so it can run its destructor without any > locking. However, at least Helgrind does not understand that, and so > needs to be told the object is now exclusively owned by the calling > thread before running the destructor. > > In this case, the obvious thing to do seems like > > VALGRIND_HG_CLEAN_MEMORY(this, sizeof(*this)) > > but this is wrong in the presence of inheritance, when a class defines a > ::Release method, and is then subclassed, but the subclass doesn't provide > its own ::Release. Then "sizeof(*this)" will be too small, because it is > the size of the base class, not the runtime size. Also, in the presence of > multiple inheritance, there is no guarantee that "this" points to the > start of the object; we are only assured that it points either to the > start or somewhere within it. > > For this reason I recently added to Helgrind a new clreq, > VALGRIND_HG_CLEAN_MEMORY_HEAPBLOCK(ptr), which is the same as > VALGRIND_HG_CLEAN_MEMORY applied to whatever heap block "ptr" points > into, if any, and it's OK if it's an interior pointer. > > Do TSan and DRD have anything similar? > > This isn't theoretical. I found it out the hard way when analysing > an ocean of false race reports when Helgrinding C++ code using atomic > refcounting and inheritance, earlier this year. This kind of issue can indeed arise when letting the client program communicate to the tool how many bytes will be freed. But why to invoke such a client request from the client code while the tool already has exact information about the number of bytes that will be freed ? I'm assuming here that each reference counted object is allocated via an individual memory request, and that no memory region contains two or more reference-counted objects that are freed individually. Bart. |
|
From: Nicholas N. <n.n...@gm...> - 2010-07-02 09:34:07
|
Nightly build on ocean ( Ubuntu 9.10, x86_64 )
Started at 2010-07-02 02:00:01 PDT
Ended at 2010-07-02 02:33:50 PDT
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 549 tests, 7 stderr failures, 0 stdout failures, 0 post failures ==
memcheck/tests/linux/stack_switch (stderr)
memcheck/tests/long_namespace_xml (stderr)
memcheck/tests/x86-linux/scalar (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
helgrind/tests/tc20_verifywrap (stderr)
helgrind/tests/tc23_bogus_condwait (stderr)
exp-ptrcheck/tests/bad_percentify (stderr)
=================================================
./valgrind-new/exp-ptrcheck/tests/bad_percentify.stderr.diff-glibc28-amd64
=================================================
--- bad_percentify.stderr.exp-glibc28-amd64 2010-07-02 02:17:22.000000000 -0700
+++ bad_percentify.stderr.out 2010-07-02 02:32:36.000000000 -0700
@@ -1,32 +1,29 @@
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:88)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:93)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:98)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
=================================================
./valgrind-new/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2010-07-02 02:17:19.000000000 -0700
+++ tc06_two_races_xml.stderr.out 2010-07-02 02:28:03.000000000 -0700
@@ -40,16 +40,25 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>do_clone</fn>
+ <fn>T.102</fn>
+ <dir>...</dir>
+ <file>createthread.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_create@@GLIBC_2.2.5</fn>
+ <dir>...</dir>
+ <file>createthread.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
@@ -121,11 +130,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -175,11 +190,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -229,11 +250,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
@@ -283,11 +310,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<truncated beyond 100 lines>
=================================================
./valgrind-new/helgrind/tests/tc20_verifywrap.stderr.diff-glibc25-amd64
=================================================
--- tc20_verifywrap.stderr.exp-glibc25-amd64 2010-07-02 02:17:19.000000000 -0700
+++ tc20_verifywrap.stderr.out 2010-07-02 02:28:24.000000000 -0700
@@ -71,12 +71,14 @@
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:147)
Thread #x's call to pthread_cond_wait failed
with error code 1 (EPERM: Operation not permitted)
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:147)
@@ -86,12 +88,14 @@
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:165)
Thread #x's call to pthread_cond_timedwait failed
with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:165)
@@ -142,6 +146,12 @@
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:242)
+Thread #x's call to sem_post failed
+ with error code 22 (EINVAL: Invalid argument)
+ at 0x........: sem_post_WRK (hg_intercepts.c:...)
+ by 0x........: sem_post (hg_intercepts.c:...)
+ by 0x........: main (tc20_verifywrap.c:245)
+
FIXME: can't figure out how to verify wrap of sem_post
@@ -152,4 +162,4 @@
...
-ERROR SUMMARY: 20 errors from 20 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 21 errors from 21 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc20_verifywrap.stderr.diff-glibc27-amd64
=================================================
--- tc20_verifywrap.stderr.exp-glibc27-amd64 2010-07-02 02:17:19.000000000 -0700
+++ tc20_verifywrap.stderr.out 2010-07-02 02:28:24.000000000 -0700
@@ -71,12 +71,14 @@
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:147)
Thread #x's call to pthread_cond_wait failed
with error code 1 (EPERM: Operation not permitted)
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:147)
@@ -86,12 +88,14 @@
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:165)
Thread #x's call to pthread_cond_timedwait failed
with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:165)
=================================================
./valgrind-new/helgrind/tests/tc23_bogus_condwait.stderr.diff
=================================================
--- tc23_bogus_condwait.stderr.exp 2010-07-02 02:17:19.000000000 -0700
+++ tc23_bogus_condwait.stderr.out 2010-07-02 02:28:35.000000000 -0700
@@ -2,31 +2,38 @@
Thread #x is the program's root thread
Thread #x: pthread_cond_{timed}wait called with invalid mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:69)
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:72)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:72)
Thread #x: pthread_cond_{timed}wait called with mutex of type pthread_rwlock_t*
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:75)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:75)
Thread #x: pthread_cond_{timed}wait called with mutex held by a different thread
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:78)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:78)
=================================================
./valgrind-new/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2010-07-02 02:17:36.000000000 -0700
+++ stack_switch.stderr.out 2010-07-02 02:23:35.000000000 -0700
@@ -0,0 +1,3 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
+
=================================================
./valgrind-new/memcheck/tests/long_namespace_xml.stderr.diff
=================================================
--- long_namespace_xml.stderr.exp 2010-07-02 02:17:39.000000000 -0700
+++ long_namespace_xml.stderr.out 2010-07-02 02:23:44.000000000 -0700
@@ -37,7 +37,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm</fn>
+ <fn>_ZN53044basic_iostreamIwSt11char_traitsIwEE</fn>
<dir>...</dir>
<file>long_namespace_xml.cpp</file>
<line>...</line>
@@ -64,7 +64,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm</fn>
+ <fn>_ZN53044basic_iostreamIwSt11char_traitsIwEE</fn>
<dir>...</dir>
<file>long_namespace_xml.cpp</file>
<line>...</line>
=================================================
./valgrind-new/memcheck/tests/x86-linux/scalar.stderr.diff
=================================================
--- scalar.stderr.exp 2010-07-02 02:17:29.000000000 -0700
+++ scalar.stderr.out 2010-07-02 02:25:16.000000000 -0700
@@ -230,10 +230,6 @@
Syscall param mount(data) contains uninitialised byte(s)
...
-Syscall param mount(source) points to unaddressable byte(s)
- ...
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
Syscall param mount(target) points to unaddressable byte(s)
...
Address 0x........ is not stack'd, malloc'd or (recently) free'd
@@ -505,9 +501,6 @@
-----------------------------------------------------
55: __NR_fcntl (GETLK) 1s 0m
-----------------------------------------------------
-
-More than 100 errors detected. Subsequent errors
-will still be recorded, but in less detail than before.
Syscall param fcntl(lock) contains uninitialised byte(s)
...
@@ -517,6 +510,9 @@
-----------------------------------------------------
57: __NR_setpgid 2s 0m
-----------------------------------------------------
+
+More than 100 errors detected. Subsequent errors
+will still be recorded, but in less detail than before.
Syscall param setpgid(pid) contains uninitialised byte(s)
...
=================================================
./valgrind-old/exp-ptrcheck/tests/bad_percentify.stderr.diff-glibc28-amd64
=================================================
--- bad_percentify.stderr.exp-glibc28-amd64 2010-07-02 02:00:43.000000000 -0700
+++ bad_percentify.stderr.out 2010-07-02 02:15:53.000000000 -0700
@@ -1,32 +1,29 @@
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:88)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:93)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
+ at 0x........: ...
by 0x........: ...
by 0x........: VG_print_translation_stats (bad_percentify.c:98)
by 0x........: main (bad_percentify.c:107)
Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
+ Expected: stack array "buf" in frame 2 back from here
Actual: unknown
=================================================
./valgrind-old/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2010-07-02 02:00:40.000000000 -0700
+++ tc06_two_races_xml.stderr.out 2010-07-02 02:11:29.000000000 -0700
@@ -40,16 +40,25 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>do_clone</fn>
+ <fn>T.102</fn>
+ <dir>...</dir>
+ <file>createthread.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_create@@GLIBC_2.2.5</fn>
+ <dir>...</dir>
+ <file>createthread.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
@@ -121,11 +130,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -175,11 +190,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -229,11 +250,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
@@ -283,11 +310,17 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
+ <dir>...</dir>
+ <file>pthread_create.c</file>
+ <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
+ <dir>...</dir>
+ <file>clone.S</file>
+ <line>...</line>
</frame>
</stack>
<truncated beyond 100 lines>
=================================================
./valgrind-old/helgrind/tests/tc20_verifywrap.stderr.diff-glibc25-amd64
=================================================
--- tc20_verifywrap.stderr.exp-glibc25-amd64 2010-07-02 02:00:40.000000000 -0700
+++ tc20_verifywrap.stderr.out 2010-07-02 02:11:49.000000000 -0700
@@ -71,12 +71,14 @@
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:147)
Thread #x's call to pthread_cond_wait failed
with error code 1 (EPERM: Operation not permitted)
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:147)
@@ -86,12 +88,14 @@
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:165)
Thread #x's call to pthread_cond_timedwait failed
with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:165)
@@ -142,6 +146,12 @@
by 0x........: sem_wait (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:242)
+Thread #x's call to sem_post failed
+ with error code 22 (EINVAL: Invalid argument)
+ at 0x........: sem_post_WRK (hg_intercepts.c:...)
+ by 0x........: sem_post (hg_intercepts.c:...)
+ by 0x........: main (tc20_verifywrap.c:245)
+
FIXME: can't figure out how to verify wrap of sem_post
@@ -152,4 +162,4 @@
...
-ERROR SUMMARY: 20 errors from 20 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 21 errors from 21 contexts (suppressed: 0 from 0)
=================================================
./valgrind-old/helgrind/tests/tc20_verifywrap.stderr.diff-glibc27-amd64
=================================================
--- tc20_verifywrap.stderr.exp-glibc27-amd64 2010-07-02 02:00:40.000000000 -0700
+++ tc20_verifywrap.stderr.out 2010-07-02 02:11:49.000000000 -0700
@@ -71,12 +71,14 @@
---------------- pthread_cond_wait et al ----------------
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:147)
Thread #x's call to pthread_cond_wait failed
with error code 1 (EPERM: Operation not permitted)
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:147)
@@ -86,12 +88,14 @@
FIXME: can't figure out how to verify wrap of pthread_broadcast_signal
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:165)
Thread #x's call to pthread_cond_timedwait failed
with error code 22 (EINVAL: Invalid argument)
- at 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...)
by 0x........: main (tc20_verifywrap.c:165)
=================================================
./valgrind-old/helgrind/tests/tc23_bogus_condwait.stderr.diff
=================================================
--- tc23_bogus_condwait.stderr.exp 2010-07-02 02:00:40.000000000 -0700
+++ tc23_bogus_condwait.stderr.out 2010-07-02 02:12:02.000000000 -0700
@@ -2,31 +2,38 @@
Thread #x is the program's root thread
Thread #x: pthread_cond_{timed}wait called with invalid mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:69)
Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:72)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:72)
Thread #x: pthread_cond_{timed}wait called with mutex of type pthread_rwlock_t*
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:75)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:75)
Thread #x: pthread_cond_{timed}wait called with mutex held by a different thread
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:78)
Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:78)
=================================================
./valgrind-old/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2010-07-02 02:00:59.000000000 -0700
+++ stack_switch.stderr.out 2010-07-02 02:07:00.000000000 -0700
@@ -0,0 +1,3 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
+
=================================================
./valgrind-old/memcheck/tests/long_namespace_xml.stderr.diff
=================================================
--- long_namespace_xml.stderr.exp 2010-07-02 02:01:01.000000000 -0700
+++ long_namespace_xml.stderr.out 2010-07-02 02:07:09.000000000 -0700
@@ -37,7 +37,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm</fn>
+ <fn>_ZN53044basic_iostreamIwSt11char_traitsIwEE</fn>
<dir>...</dir>
<file>long_namespace_xml.cpp</file>
<line>...</line>
@@ -64,7 +64,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklm</fn>
+ <fn>_ZN53044basic_iostreamIwSt11char_traitsIwEE</fn>
<dir>...</dir>
<file>long_namespace_xml.cpp</file>
<line>...</line>
=================================================
./valgrind-old/memcheck/tests/x86-linux/scalar.stderr.diff
=================================================
--- scalar.stderr.exp 2010-07-02 02:00:50.000000000 -0700
+++ scalar.stderr.out 2010-07-02 02:08:40.000000000 -0700
@@ -230,10 +230,6 @@
Syscall param mount(data) contains uninitialised byte(s)
...
-Syscall param mount(source) points to unaddressable byte(s)
- ...
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
Syscall param mount(target) points to unaddressable byte(s)
...
Address 0x........ is not stack'd, malloc'd or (recently) free'd
@@ -505,9 +501,6 @@
-----------------------------------------------------
55: __NR_fcntl (GETLK) 1s 0m
-----------------------------------------------------
-
-More than 100 errors detected. Subsequent errors
-will still be recorded, but in less detail than before.
Syscall param fcntl(lock) contains uninitialised byte(s)
...
@@ -517,6 +510,9 @@
-----------------------------------------------------
57: __NR_setpgid 2s 0m
-----------------------------------------------------
+
+More than 100 errors detected. Subsequent errors
+will still be recorded, but in less detail than before.
Syscall param setpgid(pid) contains uninitialised byte(s)
...
|
|
From: <sv...@va...> - 2010-07-02 07:59:01
|
Author: sewardj Date: 2010-07-02 08:58:47 +0100 (Fri, 02 Jul 2010) New Revision: 431 Log: Update the MacOSX 10.6 article to mention need for --build=amd64-darwin. Modified: trunk/index.html trunk/info/news.html Modified: trunk/index.html =================================================================== --- trunk/index.html 2010-07-01 08:35:30 UTC (rev 430) +++ trunk/index.html 2010-07-02 07:58:47 UTC (rev 431) @@ -42,8 +42,10 @@ <ul> <li><p>July 1 2010: Initial support for Mac OS X 10.6 (Snow Leopard) has been folded into the trunk and is usable. Support for 64-bit - executables on 10.5 and 10.6 has also been improved. For more - details see the + executables on 10.5 and 10.6 has also been improved. Note that to + build a 64-bit capable Valgrind, which is probably what you need on + 10.6, you must use the configure-time flag "--build=amd64-darwin". + For more details see the <a href="downloads/repository.html">repository</a> page. </p></li> Modified: trunk/info/news.html =================================================================== --- trunk/info/news.html 2010-07-01 08:35:30 UTC (rev 430) +++ trunk/info/news.html 2010-07-02 07:58:47 UTC (rev 431) @@ -9,8 +9,10 @@ <ul> <li><p>July 1 2010: Initial support for Mac OS X 10.6 (Snow Leopard) has been folded into the trunk and is usable. Support for 64-bit - executables on 10.5 and 10.6 has also been improved. For more - details see the + executables on 10.5 and 10.6 has also been improved. Note that to + build a 64-bit capable Valgrind, which is probably what you need on + 10.6, you must use the configure-time flag "--build=amd64-darwin". + For more details see the <a href="downloads/repository.html">repository</a> page. </p></li> |
|
From: Bart V. A. <bva...@ac...> - 2010-07-02 07:30:36
|
Nightly build on cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2010-07-02 02:00:06 EDT Ended at 2010-07-02 03:30:21 EDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 459 tests, 42 stderr failures, 10 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/linux/timerfd-syscall (stdout) memcheck/tests/linux-syscalls-2007 (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) none/tests/shell_zerolength (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc23_bogus_condwait (stderr) exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/hsg (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) |
|
From: Julian S. <js...@ac...> - 2010-07-02 07:02:54
|
> I don't think we need to use ANONTATE_* in standard libraries. > Instead, I want to ask the library writers to arrange their code to > make it easier to intercept by valgrind tools. > In particular, for atomic ref counting I want to ask them to have a new > function which simply means "atomically decrement reference count and > return whether count is zero". That function could itself simply call > __exchange_and_add_dispatch or whatever. Yes. Perhaps "T atomic_decrement(T*)", for some T (unsigned int etc) and returns the new T. Synthesising "is new count == 0" into a 32/64-bit value is expensive -- requires "testl ; set ; movzbl" -- better simply to return the new value, which we have for free on LL/SC based platforms (ARM, PPC) anyway, and also on x86/x86_64 if the atomic dec is encoded using "load, sub, cmpxchg, check-the-cmpxchg succeeded". Why not just use the gcc builtin naming scheme for atomic operations? It's uniform across multiple archs, and makes it clear whether the returned value is the value before or after the decrement. No need to reinvent the wheel. --------------- Kind-of related comment: One observation w.r.t. refcounting and C++ is, when the refcount makes a 1 -> 0 transition then the object becomes exclusively owned by the decrementing thread, and so it can run its destructor without any locking. However, at least Helgrind does not understand that, and so needs to be told the object is now exclusively owned by the calling thread before running the destructor. In this case, the obvious thing to do seems like VALGRIND_HG_CLEAN_MEMORY(this, sizeof(*this)) but this is wrong in the presence of inheritance, when a class defines a ::Release method, and is then subclassed, but the subclass doesn't provide its own ::Release. Then "sizeof(*this)" will be too small, because it is the size of the base class, not the runtime size. Also, in the presence of multiple inheritance, there is no guarantee that "this" points to the start of the object; we are only assured that it points either to the start or somewhere within it. For this reason I recently added to Helgrind a new clreq, VALGRIND_HG_CLEAN_MEMORY_HEAPBLOCK(ptr), which is the same as VALGRIND_HG_CLEAN_MEMORY applied to whatever heap block "ptr" points into, if any, and it's OK if it's an interior pointer. Do TSan and DRD have anything similar? This isn't theoretical. I found it out the hard way when analysing an ocean of false race reports when Helgrinding C++ code using atomic refcounting and inheritance, earlier this year. J |
|
From: Alexander P. <gl...@go...> - 2010-07-02 06:50:29
|
Nightly build on mcgrind ( Darwin 9.8.0 i386 ) Started at 2010-07-02 09:06:01 MSD Ended at 2010-07-02 09:25:29 MSD 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 == 444 tests, 26 stderr failures, 1 stdout failure, 9 post failures == memcheck/tests/darwin/scalar (stderr) memcheck/tests/null_socket (stdout) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) massif/tests/peak (stderr) massif/tests/peak (post) massif/tests/peak2 (stderr) massif/tests/peak2 (post) massif/tests/realloc (stderr) massif/tests/realloc (post) massif/tests/thresholds_0_0 (stderr) massif/tests/thresholds_0_0 (post) massif/tests/thresholds_0_10 (stderr) massif/tests/thresholds_0_10 (post) massif/tests/thresholds_10_0 (stderr) massif/tests/thresholds_10_0 (post) massif/tests/thresholds_10_10 (stderr) massif/tests/thresholds_10_10 (post) massif/tests/thresholds_5_0 (stderr) massif/tests/thresholds_5_0 (post) massif/tests/thresholds_5_10 (stderr) massif/tests/thresholds_5_10 (post) none/tests/async-sigs (stderr) none/tests/faultstatus (stderr) none/tests/pth_blockedsig (stderr) none/tests/require-text-symbol-2 (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/rwlock_race (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc23_bogus_condwait (stderr) -- Alexander Potapenko Software Engineer Google Moscow |
|
From: Rich C. <rc...@wi...> - 2010-07-02 05:18:50
|
Nightly build on ppc32 ( Linux 2.6.27.7-9-default ppc )
Started at 2010-07-01 23:26:01 CDT
Ended at 2010-07-02 00:18:37 CDT
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 456 tests, 161 stderr failures, 43 stdout failures, 2 post failures ==
memcheck/tests/addressable (stdout)
memcheck/tests/addressable (stderr)
memcheck/tests/atomic_incs (stdout)
memcheck/tests/atomic_incs (stderr)
memcheck/tests/badaddrvalue (stdout)
memcheck/tests/badaddrvalue (stderr)
memcheck/tests/badfree-2trace (stderr)
memcheck/tests/badfree (stderr)
memcheck/tests/badjump (stderr)
memcheck/tests/badjump2 (stderr)
memcheck/tests/badloop (stderr)
memcheck/tests/badpoll (stderr)
memcheck/tests/badrw (stderr)
memcheck/tests/brk2 (stderr)
memcheck/tests/buflen_check (stderr)
memcheck/tests/calloc-overflow (stderr)
memcheck/tests/clientperm (stdout)
memcheck/tests/clientperm (stderr)
memcheck/tests/custom-overlap (stderr)
memcheck/tests/custom_alloc (stderr)
memcheck/tests/deep_templates (stdout)
memcheck/tests/deep_templates (stderr)
memcheck/tests/describe-block (stderr)
memcheck/tests/doublefree (stderr)
memcheck/tests/erringfds (stdout)
memcheck/tests/erringfds (stderr)
memcheck/tests/error_counts (stderr)
memcheck/tests/errs1 (stderr)
memcheck/tests/execve (stderr)
memcheck/tests/execve2 (stderr)
memcheck/tests/exitprog (stderr)
memcheck/tests/file_locking (stderr)
memcheck/tests/fprw (stderr)
memcheck/tests/fwrite (stderr)
memcheck/tests/inits (stderr)
memcheck/tests/inline (stdout)
memcheck/tests/inline (stderr)
memcheck/tests/leak-0 (stderr)
memcheck/tests/leak-cases-full (stderr)
memcheck/tests/leak-cases-summary (stderr)
memcheck/tests/leak-cycle (stderr)
memcheck/tests/leak-pool-0 (stderr)
memcheck/tests/leak-pool-1 (stderr)
memcheck/tests/leak-pool-2 (stderr)
memcheck/tests/leak-pool-3 (stderr)
memcheck/tests/leak-pool-4 (stderr)
memcheck/tests/leak-pool-5 (stderr)
memcheck/tests/leak-tree (stderr)
memcheck/tests/linux/brk (stderr)
memcheck/tests/linux/capget (stderr)
memcheck/tests/linux/lsframe1 (stderr)
memcheck/tests/linux/lsframe2 (stderr)
memcheck/tests/linux/sigqueue (stderr)
memcheck/tests/linux/stack_changes (stdout)
memcheck/tests/linux/stack_changes (stderr)
memcheck/tests/linux/stack_switch (stderr)
memcheck/tests/linux/timerfd-syscall (stdout)
memcheck/tests/linux/timerfd-syscall (stderr)
memcheck/tests/linux/with-space (stdout)
memcheck/tests/linux/with-space (stderr)
memcheck/tests/linux-syscalls-2007 (stderr)
memcheck/tests/linux-syslog-syscall (stderr)
memcheck/tests/long-supps (stderr)
memcheck/tests/long_namespace_xml (stdout)
memcheck/tests/long_namespace_xml (stderr)
memcheck/tests/mallinfo (stderr)
memcheck/tests/malloc1 (stderr)
memcheck/tests/malloc2 (stderr)
memcheck/tests/malloc3 (stdout)
memcheck/tests/malloc3 (stderr)
memcheck/tests/malloc_free_fill (stderr)
memcheck/tests/malloc_usable (stderr)
memcheck/tests/manuel1 (stdout)
memcheck/tests/manuel1 (stderr)
memcheck/tests/manuel2 (stdout)
memcheck/tests/manuel2 (stderr)
memcheck/tests/manuel3 (stderr)
memcheck/tests/match-overrun (stderr)
memcheck/tests/memalign2 (stderr)
memcheck/tests/memalign_test (stderr)
memcheck/tests/memcmptest (stdout)
memcheck/tests/memcmptest (stderr)
memcheck/tests/mempool (stderr)
memcheck/tests/metadata (stdout)
memcheck/tests/metadata (stderr)
memcheck/tests/mismatches (stderr)
memcheck/tests/mmaptest (stderr)
memcheck/tests/nanoleak2 (stderr)
memcheck/tests/nanoleak_supp (stderr)
memcheck/tests/new_nothrow (stderr)
memcheck/tests/new_override (stdout)
memcheck/tests/new_override (stderr)
memcheck/tests/noisy_child (stderr)
memcheck/tests/null_socket (stderr)
memcheck/tests/origin1-yes (stderr)
memcheck/tests/origin2-not-quite (stderr)
memcheck/tests/origin3-no (stderr)
memcheck/tests/origin4-many (stderr)
memcheck/tests/origin5-bz2 (stdout)
memcheck/tests/origin5-bz2 (stderr)
memcheck/tests/origin6-fp (stderr)
memcheck/tests/overlap (stdout)
memcheck/tests/overlap (stderr)
memcheck/tests/partial_load_dflt (stderr)
memcheck/tests/partial_load_ok (stderr)
memcheck/tests/partiallydefinedeq (stdout)
memcheck/tests/partiallydefinedeq (stderr)
memcheck/tests/pdb-realloc (stderr)
memcheck/tests/pdb-realloc2 (stdout)
memcheck/tests/pdb-realloc2 (stderr)
memcheck/tests/pipe (stderr)
memcheck/tests/pointer-trace (stderr)
memcheck/tests/post-syscall (stderr)
memcheck/tests/realloc1 (stderr)
memcheck/tests/realloc2 (stderr)
memcheck/tests/realloc3 (stderr)
memcheck/tests/sh-mem-random (stdout)
memcheck/tests/sh-mem-random (stderr)
memcheck/tests/sh-mem (stderr)
memcheck/tests/sigaltstack (stderr)
memcheck/tests/sigkill (stderr)
memcheck/tests/signal2 (stdout)
memcheck/tests/signal2 (stderr)
memcheck/tests/sigprocmask (stderr)
memcheck/tests/str_tester (stderr)
memcheck/tests/strchr (stderr)
memcheck/tests/supp-dir (stderr)
memcheck/tests/supp1 (stderr)
memcheck/tests/supp2 (stderr)
memcheck/tests/supp_unknown (stderr)
memcheck/tests/suppfree (stderr)
memcheck/tests/trivialleak (stderr)
memcheck/tests/unit_libcbase (stderr)
memcheck/tests/unit_oset (stdout)
memcheck/tests/unit_oset (stderr)
memcheck/tests/varinfo1 (stderr)
memcheck/tests/varinfo2 (stderr)
memcheck/tests/varinfo3 (stderr)
memcheck/tests/varinfo4 (stdout)
memcheck/tests/varinfo4 (stderr)
memcheck/tests/varinfo5 (stderr)
memcheck/tests/varinfo6 (stdout)
memcheck/tests/varinfo6 (stderr)
memcheck/tests/vcpu_bz2 (stdout)
memcheck/tests/vcpu_bz2 (stderr)
memcheck/tests/vcpu_fbench (stdout)
memcheck/tests/vcpu_fbench (stderr)
memcheck/tests/vcpu_fnfns (stdout)
memcheck/tests/vcpu_fnfns (stderr)
memcheck/tests/wrap1 (stdout)
memcheck/tests/wrap1 (stderr)
memcheck/tests/wrap2 (stdout)
memcheck/tests/wrap2 (stderr)
memcheck/tests/wrap3 (stdout)
memcheck/tests/wrap3 (stderr)
memcheck/tests/wrap4 (stdout)
memcheck/tests/wrap4 (stderr)
memcheck/tests/wrap5 (stdout)
memcheck/tests/wrap5 (stderr)
memcheck/tests/wrap6 (stdout)
memcheck/tests/wrap6 (stderr)
memcheck/tests/wrap7 (stdout)
memcheck/tests/wrap7 (stderr)
memcheck/tests/wrap8 (stdout)
memcheck/tests/wrap8 (stderr)
memcheck/tests/writev (stderr)
memcheck/tests/xml1 (stdout)
memcheck/tests/xml1 (stderr)
massif/tests/deep-D (post)
massif/tests/overloaded-new (post)
none/tests/linux/mremap (stderr)
none/tests/ppc32/jm-fp (stdout)
none/tests/ppc32/jm-fp (stderr)
none/tests/ppc32/jm-vmx (stdout)
none/tests/ppc32/round (stdout)
none/tests/ppc32/round (stderr)
none/tests/ppc32/test_fx (stdout)
none/tests/ppc32/test_fx (stderr)
none/tests/ppc32/test_gx (stdout)
helgrind/tests/hg05_race2 (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
helgrind/tests/tc23_bogus_condwait (stderr)
drd/tests/unit_bitmap (stderr)
drd/tests/unit_vc (stderr)
exp-ptrcheck/tests/bad_percentify (stderr)
exp-ptrcheck/tests/base (stderr)
exp-ptrcheck/tests/ccc (stderr)
exp-ptrcheck/tests/fp (stderr)
exp-ptrcheck/tests/globalerr (stderr)
exp-ptrcheck/tests/hackedbz2 (stderr)
exp-ptrcheck/tests/hp_bounds (stderr)
exp-ptrcheck/tests/hp_dangle (stderr)
exp-ptrcheck/tests/hsg (stderr)
exp-ptrcheck/tests/justify (stderr)
exp-ptrcheck/tests/partial_bad (stderr)
exp-ptrcheck/tests/partial_good (stderr)
exp-ptrcheck/tests/preen_invars (stderr)
exp-ptrcheck/tests/pth_create (stderr)
exp-ptrcheck/tests/pth_specific (stderr)
exp-ptrcheck/tests/realloc (stderr)
exp-ptrcheck/tests/stackerr (stderr)
exp-ptrcheck/tests/strcpy (stderr)
exp-ptrcheck/tests/supp (stderr)
exp-ptrcheck/tests/tricky (stderr)
exp-ptrcheck/tests/unaligned (stderr)
exp-ptrcheck/tests/zero (stderr)
=================================================
./valgrind-new/drd/tests/unit_bitmap.stderr.diff
=================================================
--- unit_bitmap.stderr.exp 2010-07-01 23:52:44.000000000 -0500
+++ unit_bitmap.stderr.out 2010-07-02 00:17:10.000000000 -0500
@@ -1,2 +1,20 @@
-Start of DRD BM unit test.
-End of DRD BM unit test.
+
+valgrind: Fatal error at startup: a function redirection
+valgrind: which is mandatory for this platform-tool combination
+valgrind: cannot be set up. Details of the redirection are:
+valgrind:
+valgrind: A must-be-redirected function
+valgrind: whose name matches the pattern: strlen
+valgrind: in an object with soname matching: ld.so.1
+valgrind: was not found whilst processing
+valgrind: symbols from the object with soname: ld.so.1
+valgrind:
+valgrind: Possible fixes: (1, short term): install glibc's debuginfo
+valgrind: package on this machine. (2, longer term): ask the packagers
+valgrind: for your Linux distribution to please in future ship a non-
+valgrind: stripped ld.so (or whatever the dynamic linker .so is called)
+valgrind: that exports the above-named function using the standard
+valgrind: calling conventions for this platform.
+valgrind:
+valgrind: Cannot continue -- exiting now. Sorry.
+
=================================================
./valgrind-new/drd/tests/unit_vc.stderr.diff
=================================================
--- unit_vc.stderr.exp 2010-07-01 23:52:44.000000000 -0500
+++ unit_vc.stderr.out 2010-07-02 00:17:10.000000000 -0500
@@ -1,5 +1,20 @@
-vc1: [ 3: 7, 5: 8 ]
-vc2: [ 1: 4, 3: 9 ]
-vc3: [ 1: 4, 3: 9, 5: 8 ]
-vc_lte(vc1, vc2) = 0, vc_lte(vc1, vc3) = 1, vc_lte(vc2, vc3) = 1
-vc_lte([ 1: 3, 2: 1 ], [ 1: 4 ]) = 0 sw 0
+
+valgrind: Fatal error at startup: a function redirection
+valgrind: which is mandatory for this platform-tool combination
+valgrind: cannot be set up. Details of the redirection are:
+valgrind:
+valgrind: A must-be-redirected function
+valgrind: whose name matches the pattern: strlen
+valgrind: in an object with soname matching: ld.so.1
+valgrind: was not found whilst processing
+valgrind: symbols from the object with soname: ld.so.1
+valgrind:
+valgrind: Possible fixes: (1, short term): install glibc's debuginfo
+valgrind: package on this machine. (2, longer term): ask the packagers
+valgrind: for your Linux distribution to please in future ship a non-
+valgrind: stripped ld.so (or whatever the dynamic linker .so is called)
+valgrind: that exports the above-named function using the standard
+valgrind: calling conventions for this platform.
+valgrind:
+valgrind: Cannot continue -- exiting now. Sorry.
+
=================================================
./valgrind-new/exp-ptrcheck/tests/bad_percentify.stderr.diff-glibc28-amd64
=================================================
--- bad_percentify.stderr.exp-glibc28-amd64 2010-07-01 23:52:28.000000000 -0500
+++ bad_percentify.stderr.out 2010-07-02 00:17:13.000000000 -0500
@@ -1,33 +1,6 @@
-Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
- by 0x........: ...
- by 0x........: VG_print_translation_stats (bad_percentify.c:88)
- by 0x........: main (bad_percentify.c:107)
- Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
- Actual: unknown
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
-Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
- by 0x........: ...
- by 0x........: VG_print_translation_stats (bad_percentify.c:93)
- by 0x........: main (bad_percentify.c:107)
- Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
- Actual: unknown
-
-Invalid read of size 1
- at 0x........: strlen (h_intercepts.c:...)
- by 0x........: ...
- by 0x........: ...
- by 0x........: VG_print_translation_stats (bad_percentify.c:98)
- by 0x........: main (bad_percentify.c:107)
- Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 3 back from here
- Actual: unknown
-
-
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/exp-ptrcheck/tests/base.stderr.diff-glibc25-amd64
=================================================
--- base.stderr.exp-glibc25-amd64 2010-07-01 23:52:28.000000000 -0500
+++ base.stderr.out 2010-07-02 00:17:16.000000000 -0500
@@ -1,10 +1,13 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
about to do 14 [0]
about to do 14 [-1]
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (base.c:14)
- Address 0x........ is 8 bytes before the accessing pointer's
- legitimate range, a block of size 80 alloc'd
+ Address 0x........ is 4 bytes before the accessing pointer's
+ legitimate range, a block of size 40 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (arith_include2.c:22)
@@ -13,22 +16,22 @@
about to do 18 [0]
about to do 18 [-1]
about to do 20 [0]
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (base.c:20)
Address 0x........ is not derived from any known block
about to do 20 [-1]
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (base.c:20)
Address 0x........ is not derived from any known block
about to do 22 [0]
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (base.c:22)
Address 0x........ is not derived from any known block
about to do 22 [-1]
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (base.c:22)
Address 0x........ is not derived from any known block
=================================================
./valgrind-new/exp-ptrcheck/tests/base.stderr.diff-glibc25-x86
=================================================
--- base.stderr.exp-glibc25-x86 2010-07-01 23:52:28.000000000 -0500
+++ base.stderr.out 2010-07-02 00:17:16.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
about to do 14 [0]
about to do 14 [-1]
Invalid read of size 4
=================================================
./valgrind-new/exp-ptrcheck/tests/ccc.stderr.diff-glibc25-amd64
=================================================
--- ccc.stderr.exp-glibc25-amd64 2010-07-01 23:52:28.000000000 -0500
+++ ccc.stderr.out 2010-07-02 00:17:20.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 4
at 0x........: main (ccc.cpp:20)
Address 0x........ is 4 bytes before the accessing pointer's
@@ -21,21 +24,21 @@
by 0x........: main (ccc.cpp:10)
Invalid read of size 4
- at 0x........: main (ccc.cpp:22)
+ at 0x........: main (ccc.cpp:23)
Address 0x........ is 4 bytes before the accessing pointer's
legitimate range, a block of size 4 alloc'd
at 0x........: calloc (vg_replace_malloc.c:...)
by 0x........: main (ccc.cpp:11)
Invalid read of size 4
- at 0x........: main (ccc.cpp:23)
+ at 0x........: main (ccc.cpp:24)
Address 0x........ is 4 bytes before the accessing pointer's
legitimate range, a block of size 4 alloc'd
at 0x........: memalign (vg_replace_malloc.c:...)
by 0x........: main (ccc.cpp:12)
Invalid read of size 4
- at 0x........: main (ccc.cpp:24)
+ at 0x........: main (ccc.cpp:22)
Address 0x........ is 4 bytes before the accessing pointer's
legitimate range, a block of size 4 alloc'd
at 0x........: memalign (vg_replace_malloc.c:...)
=================================================
./valgrind-new/exp-ptrcheck/tests/ccc.stderr.diff-glibc27-x86
=================================================
--- ccc.stderr.exp-glibc27-x86 2010-07-01 23:52:28.000000000 -0500
+++ ccc.stderr.out 2010-07-02 00:17:20.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 4
at 0x........: main (ccc.cpp:20)
Address 0x........ is 4 bytes before the accessing pointer's
@@ -35,7 +38,7 @@
by 0x........: main (ccc.cpp:12)
Invalid read of size 4
- at 0x........: main (ccc.cpp:25)
+ at 0x........: main (ccc.cpp:22)
Address 0x........ is 4 bytes before the accessing pointer's
legitimate range, a block of size 4 alloc'd
at 0x........: memalign (vg_replace_malloc.c:...)
=================================================
./valgrind-new/exp-ptrcheck/tests/ccc.stderr.diff-glibc28-amd64
=================================================
--- ccc.stderr.exp-glibc28-amd64 2010-07-01 23:52:28.000000000 -0500
+++ ccc.stderr.out 2010-07-02 00:17:20.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 4
at 0x........: main (ccc.cpp:20)
Address 0x........ is 4 bytes before the accessing pointer's
=================================================
./valgrind-new/exp-ptrcheck/tests/fp.stderr.diff
=================================================
--- fp.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ fp.stderr.out 2010-07-02 00:17:23.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 8
at 0x........: main (fp.c:13)
Address 0x........ is 0 bytes inside the accessing pointer's
=================================================
./valgrind-new/exp-ptrcheck/tests/globalerr.stderr.diff-glibc28-amd64
=================================================
--- globalerr.stderr.exp-glibc28-amd64 2010-07-01 23:52:28.000000000 -0500
+++ globalerr.stderr.out 2010-07-02 00:17:26.000000000 -0500
@@ -1,15 +1,6 @@
-Invalid read of size 2
- at 0x........: main (globalerr.c:12)
- Address 0x........ expected vs actual:
- Expected: global array "a" in object with soname "NONE"
- Actual: unknown
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
-Invalid read of size 2
- at 0x........: main (globalerr.c:12)
- Address 0x........ expected vs actual:
- Expected: global array "b" in object with soname "NONE"
- Actual: unknown
-
-
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/exp-ptrcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2010-07-01 23:52:28.000000000 -0500
+++ hackedbz2.stderr.out 2010-07-02 00:17:45.000000000 -0500
@@ -1,16 +1,6 @@
-Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
- by 0x........: vex_printf (hackedbz2.c:1155)
- by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
- by 0x........: handle_compress (hackedbz2.c:4761)
- by 0x........: BZ2_bzCompress (hackedbz2.c:4831)
- by 0x........: BZ2_bzBuffToBuffCompress (hackedbz2.c:5638)
- by 0x........: main (hackedbz2.c:6484)
- Address 0x........ expected vs actual:
- Expected: global array "myprintf_buf" in object with soname "NONE"
- Actual: unknown
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
-
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/exp-ptrcheck/tests/hp_bounds.stderr.diff
=================================================
--- hp_bounds.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ hp_bounds.stderr.out 2010-07-02 00:17:48.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 4
at 0x........: main (hp_bounds.c:9)
Address 0x........ is 0 bytes after the accessing pointer's
=================================================
./valgrind-new/exp-ptrcheck/tests/hp_dangle.stderr.diff
=================================================
--- hp_dangle.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ hp_dangle.stderr.out 2010-07-02 00:17:52.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 4
at 0x........: main (hp_dangle.c:17)
Address 0x........ is 20 bytes inside the accessing pointer's
=================================================
./valgrind-new/exp-ptrcheck/tests/hsg.stderr.diff
=================================================
--- hsg.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ hsg.stderr.out 2010-07-02 00:17:55.000000000 -0500
@@ -32,70 +32,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <kind>SorG</kind>
- <what>Invalid read of size 2</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>addup_wrongly</fn>
- <dir>...</dir>
- <file>hsg.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>main</fn>
- <dir>...</dir>
- <file>hsg.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ expected vs actual:</auxwhat>
- <auxwhat>Expected: global array "ga" in object with soname "NONE"</auxwhat>
- <auxwhat>Actual: unknown</auxwhat>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <kind>SorG</kind>
- <what>Invalid read of size 2</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>addup_wrongly</fn>
- <dir>...</dir>
- <file>hsg.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>do_other_stuff</fn>
- <dir>...</dir>
- <file>hsg.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>main</fn>
- <dir>...</dir>
- <file>hsg.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ expected vs actual:</auxwhat>
- <auxwhat>Expected: stack array "la" in frame 1 back from here</auxwhat>
- <auxwhat>Actual: unknown</auxwhat>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
<kind>Heap</kind>
<what>Invalid read of size 1</what>
<stack>
@@ -209,14 +145,6 @@
<pair>
<count>...</count>
<unique>0x........</unique>
- </pair>
- <pair>
- <count>...</count>
- <unique>0x........</unique>
- </pair>
- <pair>
- <count>...</count>
- <unique>0x........</unique>
</pair>
<pair>
<count>...</count>
=================================================
./valgrind-new/exp-ptrcheck/tests/justify.stderr.diff
=================================================
--- justify.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ justify.stderr.out 2010-07-02 00:17:58.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 1
at 0x........: main (justify.c:20)
Address 0x........ is 5000 bytes after the accessing pointer's
=================================================
./valgrind-new/exp-ptrcheck/tests/partial_bad.stderr.diff-glibc25-amd64
=================================================
--- partial_bad.stderr.exp-glibc25-amd64 2010-07-01 23:52:28.000000000 -0500
+++ partial_bad.stderr.out 2010-07-02 00:18:01.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 4
at 0x........: main (partial.c:21)
Address 0x........ is 0 bytes inside the accessing pointer's
@@ -83,9 +86,9 @@
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (partial.c:7)
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (partial.c:43)
- Address 0x........ is 0 bytes inside the accessing pointer's
+ Address 0x........ is 4 bytes inside the accessing pointer's
legitimate range, a block of size 7 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (partial.c:8)
=================================================
./valgrind-new/exp-ptrcheck/tests/partial_bad.stderr.diff-glibc25-x86
=================================================
--- partial_bad.stderr.exp-glibc25-x86 2010-07-01 23:52:28.000000000 -0500
+++ partial_bad.stderr.out 2010-07-02 00:18:01.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 4
at 0x........: main (partial.c:21)
Address 0x........ is 0 bytes inside the accessing pointer's
=================================================
./valgrind-new/exp-ptrcheck/tests/partial_good.stderr.diff-glibc25-amd64
=================================================
--- partial_good.stderr.exp-glibc25-amd64 2010-07-01 23:52:28.000000000 -0500
+++ partial_good.stderr.out 2010-07-02 00:18:04.000000000 -0500
@@ -1,11 +1,7 @@
-Invalid read of size 4
- at 0x........: main (partial.c:21)
- Address 0x........ is 0 bytes inside the accessing pointer's
- legitimate range, a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (partial.c:6)
-
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 4
at 0x........: main (partial.c:22)
Address 0x........ is 1 bytes inside the accessing pointer's
@@ -28,13 +24,6 @@
by 0x........: main (partial.c:9)
Invalid read of size 4
- at 0x........: main (partial.c:25)
- Address 0x........ is 4 bytes inside the accessing pointer's
- legitimate range, a block of size 7 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (partial.c:10)
-
-Invalid read of size 4
at 0x........: main (partial.c:34)
Address 0x........ is 1 bytes before the accessing pointer's
legitimate range, a block of size 3 alloc'd
@@ -42,13 +31,6 @@
by 0x........: main (partial.c:6)
Invalid read of size 4
- at 0x........: main (partial.c:35)
- Address 0x........ is 0 bytes inside the accessing pointer's
- legitimate range, a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (partial.c:6)
-
-Invalid read of size 4
at 0x........: main (partial.c:36)
Address 0x........ is 1 bytes inside the accessing pointer's
legitimate range, a block of size 3 alloc'd
@@ -69,12 +51,12 @@
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (partial.c:6)
-Invalid read of size 4
- at 0x........: main (partial.c:41)
+Invalid read of size 8
+ at 0x........: main (partial.c:42)
Address 0x........ is 0 bytes inside the accessing pointer's
- legitimate range, a block of size 3 alloc'd
+ legitimate range, a block of size 7 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (partial.c:6)
+ by 0x........: main (partial.c:7)
Invalid read of size 1
at 0x........: main (partial.c:44)
@@ -91,4 +73,4 @@
by 0x........: main (partial.c:10)
-ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 10 errors from 10 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/exp-ptrcheck/tests/partial_good.stderr.diff-glibc25-x86
=================================================
--- partial_good.stderr.exp-glibc25-x86 2010-07-01 23:52:28.000000000 -0500
+++ partial_good.stderr.out 2010-07-02 00:18:04.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 4
at 0x........: main (partial.c:22)
Address 0x........ is 1 bytes inside the accessing pointer's
=================================================
./valgrind-new/exp-ptrcheck/tests/preen_invars.stderr.diff-glibc28-amd64
=================================================
--- preen_invars.stderr.exp-glibc28-amd64 2010-07-01 23:52:28.000000000 -0500
+++ preen_invars.stderr.out 2010-07-02 00:18:08.000000000 -0500
@@ -1,9 +1,6 @@
-Invalid read of size 1
- at 0x........: main (preen_invars.c:22)
- Address 0x........ expected vs actual:
- Expected: unknown
- Actual: global array "im_a_global_arr" in object with soname "preen_invars_so"
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
-
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/exp-ptrcheck/tests/pth_create.stderr.diff
=================================================
--- pth_create.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ pth_create.stderr.out 2010-07-02 00:18:11.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid write of size 4
at 0x........: pthread_key_create (in /...libpthread...)
by 0x........: main (pth_create.c:17)
=================================================
./valgrind-new/exp-ptrcheck/tests/pth_specific.stderr.diff
=================================================
--- pth_specific.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ pth_specific.stderr.out 2010-07-02 00:18:14.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 1
at 0x........: main (pth_specific.c:19)
Address 0x........ is 1 bytes before the accessing pointer's
=================================================
./valgrind-new/exp-ptrcheck/tests/realloc.stderr.diff-glibc25-amd64
=================================================
--- realloc.stderr.exp-glibc25-amd64 2010-07-01 23:52:28.000000000 -0500
+++ realloc.stderr.out 2010-07-02 00:18:17.000000000 -0500
@@ -1,43 +1,46 @@
-Invalid read of size 8
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
+Invalid read of size 4
at 0x........: main (realloc.c:20)
- Address 0x........ is 8 bytes before the accessing pointer's
- legitimate range, a block of size 400 alloc'd
+ Address 0x........ is 4 bytes before the accessing pointer's
+ legitimate range, a block of size 200 alloc'd
at 0x........: realloc (vg_replace_malloc.c:...)
by 0x........: main (realloc.c:17)
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (realloc.c:21)
Address 0x........ is 0 bytes after the accessing pointer's
- legitimate range, a block of size 400 alloc'd
+ legitimate range, a block of size 200 alloc'd
at 0x........: realloc (vg_replace_malloc.c:...)
by 0x........: main (realloc.c:17)
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (realloc.c:28)
- Address 0x........ is 8 bytes before the accessing pointer's
- legitimate range, a block of size 400 alloc'd
+ Address 0x........ is 4 bytes before the accessing pointer's
+ legitimate range, a block of size 200 alloc'd
at 0x........: realloc (vg_replace_malloc.c:...)
by 0x........: main (realloc.c:25)
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (realloc.c:29)
Address 0x........ is 0 bytes after the accessing pointer's
- legitimate range, a block of size 400 alloc'd
+ legitimate range, a block of size 200 alloc'd
at 0x........: realloc (vg_replace_malloc.c:...)
by 0x........: main (realloc.c:25)
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (realloc.c:38)
- Address 0x........ is 8 bytes before the accessing pointer's
- legitimate range, a block of size 800 alloc'd
+ Address 0x........ is 4 bytes before the accessing pointer's
+ legitimate range, a block of size 400 alloc'd
at 0x........: realloc (vg_replace_malloc.c:...)
by 0x........: main (realloc.c:33)
-Invalid read of size 8
+Invalid read of size 4
at 0x........: main (realloc.c:39)
Address 0x........ is 0 bytes after the accessing pointer's
- legitimate range, a block of size 800 alloc'd
+ legitimate range, a block of size 400 alloc'd
at 0x........: realloc (vg_replace_malloc.c:...)
by 0x........: main (realloc.c:33)
=================================================
./valgrind-new/exp-ptrcheck/tests/realloc.stderr.diff-glibc25-x86
=================================================
--- realloc.stderr.exp-glibc25-x86 2010-07-01 23:52:28.000000000 -0500
+++ realloc.stderr.out 2010-07-02 00:18:17.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 4
at 0x........: main (realloc.c:20)
Address 0x........ is 4 bytes before the accessing pointer's
=================================================
./valgrind-new/exp-ptrcheck/tests/stackerr.stderr.diff-glibc27-x86
=================================================
--- stackerr.stderr.exp-glibc27-x86 2010-07-01 23:52:28.000000000 -0500
+++ stackerr.stderr.out 2010-07-02 00:18:20.000000000 -0500
@@ -1,27 +1,6 @@
-Invalid write of size 4
- at 0x........: foo (stackerr.c:27)
- by 0x........: bar (stackerr.c:32)
- by 0x........: main (stackerr.c:41)
- Address 0x........ expected vs actual:
- Expected: stack array "a" in frame 2 back from here
- Actual: stack array "beforea" in frame 2 back from here
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
-Invalid write of size 4
- at 0x........: main (stackerr.c:44)
- Address 0x........ expected vs actual:
- Expected: stack array "a" in this frame
- Actual: stack array "beforea" in this frame
-
-Invalid write of size 1
- at 0x........: _IO_default_xsputn (in /...libc...)
- by 0x........: ...
- by 0x........: ...
- by 0x........: ...
- by 0x........: main (stackerr.c:49)
- Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 4 back from here
- Actual: stack array "beforebuf" in frame 4 back from here
-
-
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/exp-ptrcheck/tests/stackerr.stderr.diff-glibc28-amd64
=================================================
--- stackerr.stderr.exp-glibc28-amd64 2010-07-01 23:52:28.000000000 -0500
+++ stackerr.stderr.out 2010-07-02 00:18:20.000000000 -0500
@@ -1,27 +1,6 @@
-Invalid write of size 8
- at 0x........: foo (stackerr.c:27)
- by 0x........: bar (stackerr.c:32)
- by 0x........: main (stackerr.c:41)
- Address 0x........ expected vs actual:
- Expected: stack array "a" in frame 2 back from here
- Actual: unknown
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
-Invalid write of size 8
- at 0x........: main (stackerr.c:44)
- Address 0x........ expected vs actual:
- Expected: stack array "a" in this frame
- Actual: unknown
-
-Invalid write of size 1
- at 0x........: _IO_default_xsputn (in /...libc...)
- by 0x........: ...
- by 0x........: ...
- by 0x........: ...
- by 0x........: main (stackerr.c:49)
- Address 0x........ expected vs actual:
- Expected: stack array "buf" in frame 4 back from here
- Actual: unknown
-
-
-ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/exp-ptrcheck/tests/strcpy.stderr.diff
=================================================
--- strcpy.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ strcpy.stderr.out 2010-07-02 00:18:24.000000000 -0500
@@ -1,3 +1,6 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/exp-ptrcheck/tests/supp.stderr.diff
=================================================
--- supp.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ supp.stderr.out 2010-07-02 00:18:27.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Syscall param write(buf) is non-contiguous
at 0x........: write (in /...libc...)
by 0x........: main (supp.c:16)
=================================================
./valgrind-new/exp-ptrcheck/tests/tricky.stderr.diff
=================================================
--- tricky.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ tricky.stderr.out 2010-07-02 00:18:30.000000000 -0500
@@ -1,3 +1,6 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/exp-ptrcheck/tests/unaligned.stderr.diff-glibc25-amd64
=================================================
--- unaligned.stderr.exp-glibc25-amd64 2010-07-01 23:52:28.000000000 -0500
+++ unaligned.stderr.out 2010-07-02 00:18:33.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 1
at 0x........: main (unaligned.c:33)
Address 0x........ is 1 bytes before the accessing pointer's
@@ -8,6 +11,14 @@
by 0x........: main (unaligned.c:8)
Invalid read of size 1
+ at 0x........: main (unaligned.c:37)
+ Address 0x........ is 1 bytes before the accessing pointer's
+ legitimate range, a block of size 6 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: ...
+ by 0x........: main (unaligned.c:8)
+
+Invalid read of size 1
at 0x........: main (unaligned.c:39)
Address 0x........ is 0 bytes after the accessing pointer's
legitimate range, a block of size 6 alloc'd
@@ -15,5 +26,13 @@
by 0x........: ...
by 0x........: main (unaligned.c:8)
+Invalid read of size 1
+ at 0x........: main (unaligned.c:43)
+ Address 0x........ is 0 bytes after the accessing pointer's
+ legitimate range, a block of size 6 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: ...
+ by 0x........: main (unaligned.c:8)
+
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/exp-ptrcheck/tests/unaligned.stderr.diff-glibc25-x86
=================================================
--- unaligned.stderr.exp-glibc25-x86 2010-07-01 23:52:28.000000000 -0500
+++ unaligned.stderr.out 2010-07-02 00:18:33.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 1
at 0x........: main (unaligned.c:33)
Address 0x........ is 1 bytes before the accessing pointer's
=================================================
./valgrind-new/exp-ptrcheck/tests/zero.stderr.diff
=================================================
--- zero.stderr.exp 2010-07-01 23:52:28.000000000 -0500
+++ zero.stderr.out 2010-07-02 00:18:36.000000000 -0500
@@ -1,4 +1,7 @@
+WARNING: exp-ptrcheck on ppc32/ppc64/arm platforms: stack and global array
+WARNING: checking is not currently supported. Only heap checking is
+WARNING: supported. Disabling s/g checks (like --enable-sg-checks=no).
Invalid read of size 1
at 0x........: main (zero.c:10)
Address 0x........ is 0 bytes after the accessing pointer's
=================================================
./valgrind-new/helgrind/tests/hg05_race2.stderr.diff
=================================================
--- hg05_race2.stderr.exp 2010-07-01 23:52:27.000000000 -0500
+++ hg05_race2.stderr.out 2010-07-02 00:09:49.000000000 -0500
@@ -17,8 +17,6 @@
at 0x........: th (hg05_race2.c:17)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
- Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
- declared at hg05_race2.c:24, in frame #x of thread x
Possible data race during write of size 4 at 0x........ by thread #x
at 0x........: th (hg05_race2.c:17)
@@ -28,8 +26,6 @@
at 0x........: th (hg05_race2.c:17)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
- Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
- declared at hg05_race2.c:24, in frame #x of thread x
ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2010-07-01 23:52:27.000000000 -0500
+++ tc06_two_races_xml.stderr.out 2010-07-02 00:10:20.000000000 -0500
@@ -49,7 +49,7 @@
<frame>
<ip>0x........</ip>
<obj>...</obj>
- <fn>pthread_create@@GLIBC_2.2.5</fn>
+ <fn>pthread_create@@GLIBC_2.1</fn>
</frame>
<frame>
<ip>0x........</ip>
=================================================
./valgrind-new/helgrind/tests/tc23_bogus_condwait.stderr.diff
=================================================
--- tc23_bogus_condwait.stderr.exp 2010-07-01 23:52:27.000000000 -0500
+++ tc23_bogus_condwait.stderr.out 2010-07-02 00:11:29.000000000 -0500
@@ -5,29 +5,21 @@
at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
by 0x........: main (tc23_bogus_condwait.c:69)
-Thread #x: pthread_cond_{timed}wait called with un-held mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc23_bogus_condwait.c:72)
-
-Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc23_bogus_condwait.c:72)
-
-Thread #x: pthread_cond_{timed}wait called with mutex of type pthread_rwlock_t*
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc23_bogus_condwait.c:75)
-Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc23_bogus_condwait.c:75)
-
-Thread #x: pthread_cond_{timed}wait called with mutex held by a different thread
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc23_bogus_condwait.c:78)
+Process terminating with default action of signal 7 (SIGBUS)
+ Invalid address alignment at address 0x........
+ at 0x........: __pthread_mutex_unlock_usercnt (in /...libpthread...)
+ by 0x........: pthread_cond_wait@@GLIBC_2.3.2 (in /...libpthread...)
+ by 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
+ by 0x........: main (tc23_bogus_condwait.c:69)
+Thread #x was created
+ ...
+ by 0x........: pthread_create@* (hg_intercepts.c:...)
+ by 0x........: main (tc23_bogus_condwait.c:61)
-Thread #x: pthread_cond_{timed}wait: cond is associated with a different mutex
- at 0x........: pthread_cond_wait@* (hg_intercepts.c:...)
- by 0x........: main (tc23_bogus_condwait.c:78)
+Thread #x: Exiting thread still holds 1 lock
+ ...
+ ...
-ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
=================================================
./valgrind-new/massif/tests/deep-D.post.diff
=================================================
--- deep-D.post.exp 2010-07-01 23:52:35.000000000 -0500
+++ deep-D.post.out 2010-07-02 00:06:55.000000000 -0500
@@ -46,8 +46,9 @@
8 3,264 3,264 3,200 64 0
9 3,672 3,672 3,600 72 0
98.04% (3,600B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->98.04% (3,600B) 0x........: (below main)
-
+->98.04% (3,600B) 0x........: ??? (in /...libc...)
+ ->98.04% (3,600B) 0x........: (below main)
+
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
--------------------------------------------------------------------------------
=================================================
./valgrind-new/massif/tests/overloaded-new.post.diff
=================================================
--- overloaded-new.post.exp 2010-07-01 23:52:35.000000000 -0500
+++ overloaded-new.post.out 2010-07-02 00:07:03.000000000 -0500
@@ -42,14 +42,18 @@
4 12,032 12,032 12,000 32 0
5 12,032 12,032 12,000 32 0
99.73% (12,000B) (heap allocation functions) malloc/new/new[], --alloc-fns, etc.
-->33.24% (4,000B) 0x........: main (overloaded-new.cpp:49)
-|
-->33.24% (4,000B) 0x........: main (overloaded-new.cpp:50)
-|
-->16.62% (2,000B) 0x........: main (overloaded-new.cpp:51)
-|
-->16.62% (2,000B) 0x........: main (overloaded-new.cpp:52)
-
+->33.24% (4,000B) 0x........: operator new(unsigned int) (overloaded-new.cpp:19)
+| ->33.24% (4,000B) 0x........: main (overloaded-new.cpp:49)
+|
+->33.24% (4,000B) 0x........: operator new(unsigned int, std::nothrow_t const&) (overloaded-new.cpp:24)
+| ->33.24% (4,000B) 0x........: main (overloaded-new.cpp:50)
+|
+->16.62% (2,000B) 0x........: operator new[](unsigned int) (overloaded-new.cpp:29)
+| ->16.62% (2,000B) 0x........: main (overloaded-new.cpp:51)
+|
+->16.62% (2,000B) 0x........: operator new[](unsigned int, std::nothrow_t const&) (overloaded-new.cpp:34)
+ ->16.62% (2,000B) 0x........: main (overloaded-new.cpp:52)
+
--------------------------------------------------------------------------------
n time(B) total(B) useful-heap(B) extra-heap(B) stacks(B)
--------------------------------------------------------------------------------
=================================================
./valgrind-new/memcheck/tests/addressable.stderr.diff
=================================================
--- addressable.stderr.exp 2010-07-01 23:52:34.000000000 -0500
+++ addressable.stderr.out 2010-07-02 00:05:39.000000000 -0500
@@ -1,91 +1,21 @@
-HEAP SUMMARY:
- in use at exit: ... bytes in ... blocks
- total heap usage: ... allocs, ... frees, ... bytes allocated
+valgrind: Fatal error at startup: a function redirection
+valgrind: which is mandatory for this platform-tool combination
+valgrind: cannot be set up. Details of the redirection are:
+valgrind:
+valgrind: A must-be-redirected function
+valgrind: whose name matches the pattern: strlen
+valgrind: in an object with soname matching: ld.so.1
+valgrind: was not found whilst processing
+valgrind: symbols from the object with soname: ld.so.1
+valgrind:
+valgrind: Possible fixes: (1, short term): install glibc's debuginfo
+valgrind: package on this machine. (2, longer term): ask the packagers
+valgrind: for your Linux distribution to please in future ship a non-
+valgrind: stripped ld.so (or whatever the dynamic linker .so is called)
+valgrind: that exports the above-named function using the standard
+valgrind: calling conventions for this platform.
+valgrind:
+valgrind: Cannot continue -- exiting now. Sorry.
-For a detailed leak analysis, rerun with: --leak-check=full
-
-For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-Unaddressable byte(s) found during client check request
- at 0x........: test2 (addressable.c:48)
- by 0x........: main (addressable.c:125)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
-Invalid write of size 1
- at 0x........: test2 (addressable.c:51)
- by 0x........: main (addressable.c:125)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
-
-Process terminating with default action of signal N (SIGSEGV or SIGBUS)
- Bad memory (SIGSEGV or SIGBUS) at address 0x........
- at 0x........: test2 (addressable.c:51)
- by 0x........: main (addressable.c:125)
- If you believe this happened as a result of a stack
- overflow in your program's main thread (unlikely but
- possible), you can try to increase the size of the
- main thread stack using the --main-stacksize= flag.
- The main thread stack size used in this run was ....
-
-HEAP SUMMARY:
- in use at exit: ... bytes in ... blocks
- total heap usage: ... allocs, ... frees, ... bytes allocated
-
-For a detailed leak analysis, rerun with: --leak-check=full
-
-For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
-
-HEAP SUMMARY:
- in use at exit: ... bytes in ... blocks
- total heap usage: ... allocs, ... frees, ... bytes allocated
-
-For a detailed leak analysis, rerun with: --leak-check=full
-
-For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-
-Process terminating with default action of signal N (SIGSEGV or SIGBUS)
- Bad memory (SIGSEGV or SIGBUS) at address 0x........
- at 0x........: test4 (addressable.c:74)
- by 0x........: main (addressable.c:125)
-
-HEAP SUMMARY:
- in use at exit: ... bytes in ... blocks
- total heap usage: ... allocs, ... frees, ... bytes allocated
-
-For a detailed leak analysis, rerun with: --leak-check=full
-
-For counts of detected and suppressed errors, rerun with: -v
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-Uninitialised byte(s) found during client check request
- at 0x........: test5 (addressable.c:85)
- by 0x........: main (addressable.c:125)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
-Uninitialised byte(s) found during client check request
- at 0x........: test5 (addressable.c:91)
- by 0x........: main (addressable.c:125)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
-
-HEAP SUMMARY:
- in use at exit: ... bytes in ... blocks
- total heap usage: ... allocs, ... frees, ... bytes allocated
-
-For a detailed leak analysis, rerun with: --leak-check=full
-
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/addressable.stdout.diff
=================================================
--- addressable.stdout.exp 2010-07-01 23:52:34.000000000 -0500
+++ addressable.stdout.out 2010-07-02 00:05:39.000000000 -0500
@@ -1,5 +0,0 @@
-Test 1: PASS
-Test 2: PASS
-Test 3: PASS
-Test 4: PASS
-Test 5: PASS
=================================================
./valgrind-new/memcheck/tests/atomic_incs.stderr.diff
=================================================
--- atomic_incs.stderr.exp 2010-07-01 23:52:34.000000000 -0500
+++ atomic_incs.stderr.out 2010-07-02 00:05:40.000000000 -0500
@@ -0,0 +1,20 @@
+
+valgrind: Fatal error at startup: a function redirection
+valgrind: which is mandatory for this platform-tool combination
+valgrind: cannot be set up. Details of the redirection are:
+valgrind:
+valgrind: A must-be-redirected function
+valgrind: whose name matches the pattern: strlen
+valgrind: in an object with soname matching: ld.so.1
+valgrind: was not found whilst processing
+valgrind: symbols from the object with soname: ld.so.1
+valgrind:
+valgrind: Possible fixes: (1, short term): install glibc's debuginfo
+valgrind: package on this machine. (2, longer term): ask the packagers
+valgrind: for your Linux distribution to please in future ship a non-
+valgrind: stripped ld.so (or whatever the dynamic linker .so is called)
+valgrind: that exports the above-named function using the standard
+valgrind: calling conventions for this platform.
+valgrind:
+valgrind: Cannot continue -- exiting now. Sorry.
+
=================================================
./valgrind-new/memcheck/tests/atomic_incs.stdout.diff-32bit
=================================================
--- atomic_incs.stdout.exp-32bit 2010-07-01 23:52:34.000000000 -0500
+++ atomic_incs.stdout.out 2010-07-02 00:05:39.000000000 -0500
@@ -1,7 +0,0 @@
-parent, pre-fork
-child
-parent, pre-fork
-parent
-FINAL VALUES: 8 bit -74, 16 bit 32694, 32 bit 6913974, 64 bit 0
-PASS
-parent exits
=================================================
./valgrind-new/memcheck/tests/atomic_incs.stdout.diff-64bit
=================================================
--- atomic_incs.stdout.exp-64bit 2010-07-01 23:52:34.000000000 -0500
+++ atomic_incs.stdout.out 2010-07-02 00:05:39.000000000 -0500
@@ -1,7 +0,0 @@
-parent, pre-fork
-child
-parent, pre-fork
-parent
-FINAL VALUES: 8 bit -74, 16 bit 32694, 32 bit 6913974, 64 bit 682858642110
-PASS
-parent exits
=================================================
./valgrind-new/memcheck/tests/badaddrvalue.stderr.diff
=================================================
--- badaddrvalue.stderr.exp 2010-07-01 23:52:34.000000000 -0500
+++ badaddrvalue.stderr.out 2010-07-02 00:05:40.000000000 -0500
@@ -1,12 +1,20 @@
-Invalid write of size 1
- at 0x........: main (badaddrvalue.c:8)
- Address 0x........ is 1 bytes before a block of size 8 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (badaddrvalue.c:7)
-Invalid read of size 1
- at 0x........: main (badaddrvalue.c:9)
- Address 0x........ is 1 bytes before a block of size 8 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (badaddrvalue.c:7)
+valgrind: Fatal error at startup: a function redirection
+valgrind: which is mandatory for this platform-tool combination
+valgrind: cannot be set up. Details of the redirection are:
+valgrind:
+valgrind: A must-be-redirected function
+valgrind: whose name matches the pattern: strlen
+valgrind: in an object with soname matching: ld.so.1
+valgrind: was not found whilst processing
+valgrind: symbols from the object with soname: ld.so.1
+valgrind:
+valgrind: Possible fixes: (1, short term): install glibc's debuginfo
+valgrind: package on this machine. (2, longer term...
[truncated message content] |
|
From: Tom H. <th...@cy...> - 2010-07-02 02:50:49
|
Nightly build on lloyd ( x86_64, Fedora 7 ) Started at 2010-07-02 03:05:14 BST Ended at 2010-07-02 03:50:36 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 543 tests, 2 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/x86-linux/scalar (stderr) helgrind/tests/tc06_two_races_xml (stderr) |
|
From: Tom H. <th...@cy...> - 2010-07-02 02:39:50
|
Nightly build on mg ( x86_64, Fedora 9 ) Started at 2010-07-02 03:10:07 BST Ended at 2010-07-02 03:39:30 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 550 tests, 2 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/x86-linux/scalar (stderr) helgrind/tests/tc06_two_races_xml (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 == 550 tests, 3 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/x86-linux/scalar (stderr) helgrind/tests/pth_spinlock (stderr) helgrind/tests/tc06_two_races_xml (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Jul 2 03:23:29 2010 --- new.short Fri Jul 2 03:39:30 2010 *************** *** 8,12 **** ! == 550 tests, 3 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/x86-linux/scalar (stderr) - helgrind/tests/pth_spinlock (stderr) helgrind/tests/tc06_two_races_xml (stderr) --- 8,11 ---- ! == 550 tests, 2 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/x86-linux/scalar (stderr) helgrind/tests/tc06_two_races_xml (stderr) |