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
(7) |
|
2
(13) |
3
(14) |
4
(11) |
5
(10) |
6
|
7
(5) |
8
(12) |
|
9
(14) |
10
(19) |
11
(16) |
12
(13) |
13
(11) |
14
(4) |
15
(5) |
|
16
(11) |
17
(10) |
18
(4) |
19
(15) |
20
(12) |
21
(11) |
22
|
|
23
|
24
|
25
|
26
(1) |
27
(6) |
28
(10) |
29
(10) |
|
30
(1) |
31
|
|
|
|
|
|
|
From: <sv...@va...> - 2014-03-20 23:00:24
|
Author: sewardj Date: Thu Mar 20 23:00:09 2014 New Revision: 13884 Log: Add client requests VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE and VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE and supporting machinery for managing whole-address-space sparse mappings. n-i-bz. In support of https://bugzilla.mozilla.org/show_bug.cgi?id=970643 Added: trunk/coregrind/m_rangemap.c trunk/coregrind/pub_core_rangemap.h trunk/include/pub_tool_rangemap.h trunk/memcheck/tests/err_disable_arange1.c trunk/memcheck/tests/err_disable_arange1.stderr.exp trunk/memcheck/tests/err_disable_arange1.vgtest Modified: trunk/NEWS trunk/coregrind/Makefile.am trunk/coregrind/m_xarray.c trunk/include/Makefile.am trunk/include/pub_tool_xarray.h trunk/memcheck/mc_main.c trunk/memcheck/memcheck.h trunk/memcheck/tests/Makefile.am Modified: trunk/NEWS ============================================================================== --- trunk/NEWS (original) +++ trunk/NEWS Thu Mar 20 23:00:09 2014 @@ -9,6 +9,11 @@ * ==================== TOOL CHANGES ==================== +* Memcheck: + - new client requests + VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE and + VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE + * Helgrind: * Callgrind: Modified: trunk/coregrind/Makefile.am ============================================================================== --- trunk/coregrind/Makefile.am (original) +++ trunk/coregrind/Makefile.am Thu Mar 20 23:00:09 2014 @@ -191,6 +191,7 @@ pub_core_mallocfree.h \ pub_core_options.h \ pub_core_oset.h \ + pub_core_rangemap.h \ pub_core_redir.h \ pub_core_poolalloc.h \ pub_core_replacemalloc.h\ @@ -292,6 +293,7 @@ m_mallocfree.c \ m_options.c \ m_oset.c \ + m_rangemap.c \ m_redir.c \ m_sbprofile.c \ m_seqmatch.c \ Added: trunk/coregrind/m_rangemap.c ============================================================================== --- trunk/coregrind/m_rangemap.c (added) +++ trunk/coregrind/m_rangemap.c Thu Mar 20 23:00:09 2014 @@ -0,0 +1,218 @@ + +/*--------------------------------------------------------------------*/ +/*--- A mapping where the keys exactly cover the address space. ---*/ +/*--- m_rangemap.c ---*/ +/*--------------------------------------------------------------------*/ + +/* + This file is part of Valgrind, a dynamic binary instrumentation + framework. + + Copyright (C) 2014-2014 Mozilla Foundation + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307, USA. + + The GNU General Public License is contained in the file COPYING. +*/ + +/* Contributed by Julian Seward <js...@ac...> */ + +#include "pub_core_basics.h" +#include "pub_core_libcassert.h" +#include "pub_core_libcprint.h" +#include "pub_core_xarray.h" +#include "pub_core_rangemap.h" /* self */ + + +/* See pub_tool_rangemap.h for details of what this is all about. */ + +#define UWORD_MIN ((UWord)0) +#define UWORD_MAX (~(UWord)0) + +typedef + struct { UWord key_min; UWord key_max; UWord val; } + Range; + + +struct _RangeMap { + void* (*alloc) ( const HChar*, SizeT ); /* alloc fn (nofail) */ + const HChar* cc; /* cost centre for alloc */ + void (*free) ( void* ); /* free fn */ + XArray* ranges; +}; + + +/* fwds */ +static void preen (/*MOD*/RangeMap* rm); +static Word find ( RangeMap* rm, UWord key ); +static void split_at ( /*MOD*/RangeMap* rm, UWord key ); +static void show ( RangeMap* rm ); + + +RangeMap* VG_(newRangeMap) ( void*(*alloc_fn)(const HChar*,SizeT), + const HChar* cc, + void(*free_fn)(void*), + UWord initialVal ) +{ + /* check user-supplied info .. */ + vg_assert(alloc_fn); + vg_assert(free_fn); + RangeMap* rm = alloc_fn(cc, sizeof(RangeMap)); + vg_assert(rm); + rm->alloc = alloc_fn; + rm->cc = cc; + rm->free = free_fn; + rm->ranges = VG_(newXA)( alloc_fn, cc, free_fn, sizeof(Range) ); + vg_assert(rm->ranges); + /* Add the initial range */ + Range r; + r.key_min = UWORD_MIN; + r.key_max = UWORD_MAX; + r.val = initialVal; + Word i = VG_(addToXA)(rm->ranges, &r); + vg_assert(i == 0); + vg_assert(VG_(sizeXA)(rm->ranges) == 1); + /* */ + return rm; +} + +void VG_(deleteRangeMap) ( RangeMap* rm ) +{ + vg_assert(rm); + vg_assert(rm->free); + vg_assert(rm->ranges); + VG_(deleteXA)(rm->ranges); + rm->free(rm); +} + +void VG_(bindRangeMap) ( RangeMap* rm, + UWord key_min, UWord key_max, UWord val ) +{ + vg_assert(key_min <= key_max); + split_at(rm, key_min); + if (key_max < UWORD_MAX) + split_at(rm, key_max + 1); + Word iMin, iMax, i; + iMin = find(rm, key_min); + iMax = find(rm, key_max); + for (i = iMin; i <= iMax; i++) { + Range* rng = VG_(indexXA)(rm->ranges, i); + rng->val = val; + } + preen(rm); +} + +void VG_(lookupRangeMap) ( /*OUT*/UWord* key_min, /*OUT*/UWord* key_max, + /*OUT*/UWord* val, RangeMap* rm, UWord key ) +{ + Word i = find(rm, key); + Range* rng = (Range*)VG_(indexXA)(rm->ranges, i); + *key_min = rng->key_min; + *key_max = rng->key_max; + *val = rng->val; +} + +Word VG_(sizeRangeMap) ( RangeMap* rm ) +{ + vg_assert(rm && rm->ranges); + return VG_(sizeXA)(rm->ranges); +} + +void VG_(indexRangeMap) ( /*OUT*/UWord* key_min, /*OUT*/UWord* key_max, + /*OUT*/UWord* val, RangeMap* rm, Word ix ) +{ + vg_assert(rm && rm->ranges); + Range* rng = (Range*)VG_(indexXA)(rm->ranges, ix); + *key_min = rng->key_min; + *key_max = rng->key_max; + *val = rng->val; +} + +/* Helper functions, not externally visible. */ + +static void preen (/*MOD*/RangeMap* rm) +{ + Word i; + XArray* ranges = rm->ranges; + for (i = 0; i < VG_(sizeXA)(ranges) - 1; i++) { + Range* rng0 = VG_(indexXA)(ranges, i+0); + Range* rng1 = VG_(indexXA)(ranges, i+1); + if (rng0->val != rng1->val) + continue; + rng0->key_max = rng1->key_max; + VG_(removeIndexXA)(ranges, i+1); + /* Back up one, so as not to miss an opportunity to merge with + the entry after this one. */ + i--; + } +} + +static Word find ( RangeMap* rm, UWord key ) +{ + XArray* ranges = rm->ranges; + Word lo = 0; + Word hi = VG_(sizeXA)(ranges); + while (True) { + /* The unsearched space is lo .. hi inclusive */ + if (lo > hi) { + /* Not found. This can't happen. */ + VG_(core_panic)("RangeMap::find: not found"); + /*NOTREACHED*/ + return -1; + } + Word mid = (lo + hi) / 2; + Range* mid_rng = (Range*)VG_(indexXA)(ranges, mid); + UWord key_mid_min = mid_rng->key_min; + UWord key_mid_max = mid_rng->key_max; + if (key < key_mid_min) { hi = mid-1; continue; } + if (key > key_mid_max) { lo = mid+1; continue; } + return mid; + } +} + +static void split_at ( /*MOD*/RangeMap* rm, UWord key ) +{ + XArray* ranges = rm->ranges; + Word i = find(rm, key); + Range rng_i0 = *(Range*)VG_(indexXA)( ranges, i+0 ); + if (rng_i0.key_min == key) + return; + VG_(insertIndexXA)( ranges, i+1, &rng_i0 ); + /* The insert could have relocated the payload, hence the + re-indexing of i+0 here. */ + Range* rng_i0p = (Range*)VG_(indexXA)( ranges, i+0 ); + Range* rng_i1p = (Range*)VG_(indexXA)( ranges, i+1 ); + rng_i0p->key_max = key-1; + rng_i1p->key_min = key; +} + +__attribute__((unused)) +static void show ( RangeMap* rm ) +{ + Word i; + VG_(printf)("<< %ld entries:\n", VG_(sizeXA)(rm->ranges) ); + for (i = 0; i < VG_(sizeXA)(rm->ranges); i++) { + Range* rng = (Range*)VG_(indexXA)(rm->ranges, i); + VG_(printf)(" %016llx %016llx --> 0x%llx\n", + (ULong)rng->key_min, (ULong)rng->key_max, (ULong)rng->val); + } + VG_(printf)(">>\n"); +} + + +/*--------------------------------------------------------------------*/ +/*--- end m_rangemap.c ---*/ +/*--------------------------------------------------------------------*/ Modified: trunk/coregrind/m_xarray.c ============================================================================== --- trunk/coregrind/m_xarray.c (original) +++ trunk/coregrind/m_xarray.c Thu Mar 20 23:00:09 2014 @@ -325,6 +325,27 @@ xa->usedsizeE--; } +void VG_(insertIndexXA)( XArray* xao, Word n, const void* elem ) +{ + struct _XArray* xa = (struct _XArray*)xao; + vg_assert(xa); + vg_assert(n >= 0); + vg_assert(n <= xa->usedsizeE); + vg_assert(xa->usedsizeE >= 0 && xa->usedsizeE <= xa->totsizeE); + ensureSpaceXA( xa ); + vg_assert(xa->usedsizeE < xa->totsizeE); + vg_assert(xa->arr); + if (n < xa->usedsizeE) { + VG_(memmove) ( ((char*)xa->arr) + (n+1) * xa->elemSzB, + ((char*)xa->arr) + (n+0) * xa->elemSzB, + (xa->usedsizeE - n) * xa->elemSzB ); + } + VG_(memcpy)( ((UChar*)xa->arr) + n * xa->elemSzB, + elem, xa->elemSzB ); + xa->usedsizeE++; + xa->sorted = False; +} + void VG_(getContentsXA_UNSAFE)( XArray* xao, /*OUT*/void** ctsP, /*OUT*/Word* usedP ) Added: trunk/coregrind/pub_core_rangemap.h ============================================================================== --- trunk/coregrind/pub_core_rangemap.h (added) +++ trunk/coregrind/pub_core_rangemap.h Thu Mar 20 23:00:09 2014 @@ -0,0 +1,51 @@ + +/*--------------------------------------------------------------------*/ +/*--- A mapping where the keys exactly cover the address space. ---*/ +/*--- pub_core_rangemap.h ---*/ +/*--------------------------------------------------------------------*/ + +/* + This file is part of Valgrind, a dynamic binary instrumentation + framework. + + Copyright (C) 2014-2014 Mozilla Foundation + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307, USA. + + The GNU General Public License is contained in the file COPYING. +*/ + +/* Contributed by Julian Seward <js...@ac...> */ + +#ifndef __PUB_CORE_RANGEMAP_H +#define __PUB_CORE_RANGEMAP_H + +//-------------------------------------------------------------------- +// PURPOSE: a mapping from the host machine word (UWord) ranges to +// arbitrary other UWord values. The set of ranges exactly covers all +// possible UWord values. +// -------------------------------------------------------------------- + +// No core-only exports; everything in this module is visible to both +// the core and tools. + +#include "pub_tool_rangemap.h" + +#endif // __PUB_CORE_RANGEMAP_H + +/*--------------------------------------------------------------------*/ +/*--- end pub_core_rangemap.h ---*/ +/*--------------------------------------------------------------------*/ Modified: trunk/include/Makefile.am ============================================================================== --- trunk/include/Makefile.am (original) +++ trunk/include/Makefile.am Thu Mar 20 23:00:09 2014 @@ -25,6 +25,7 @@ pub_tool_mallocfree.h \ pub_tool_options.h \ pub_tool_oset.h \ + pub_tool_rangemap.h \ pub_tool_redir.h \ pub_tool_replacemalloc.h \ pub_tool_seqmatch.h \ Added: trunk/include/pub_tool_rangemap.h ============================================================================== --- trunk/include/pub_tool_rangemap.h (added) +++ trunk/include/pub_tool_rangemap.h Thu Mar 20 23:00:09 2014 @@ -0,0 +1,83 @@ + +/*--------------------------------------------------------------------*/ +/*--- A mapping where the keys exactly cover the address space. ---*/ +/*--- pub_tool_rangemap.h ---*/ +/*--------------------------------------------------------------------*/ + +/* + This file is part of Valgrind, a dynamic binary instrumentation + framework. + + Copyright (C) 2014-2014 Mozilla Foundation + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307, USA. + + The GNU General Public License is contained in the file COPYING. +*/ + +/* Contributed by Julian Seward <js...@ac...> */ + +#ifndef __PUB_TOOL_RANGEMAP_H +#define __PUB_TOOL_RANGEMAP_H + +//-------------------------------------------------------------------- +// PURPOSE: a mapping from the host machine word (UWord) ranges to +// arbitrary other UWord values. The set of ranges exactly covers all +// possible UWord values. +// -------------------------------------------------------------------- + +/* It's an abstract type. */ +typedef struct _RangeMap RangeMap; + +/* Create a new RangeMap, using given allocation and free functions. + Alloc fn must not fail (that is, if it returns it must have + succeeded.) The new array will contain a single range covering the + entire key space, which will be bound to the value |initialVal|. */ +RangeMap* VG_(newRangeMap) ( void*(*alloc_fn)(const HChar*,SizeT), + const HChar* cc, + void(*free_fn)(void*), + UWord initialVal ); + +/* Free all memory associated with a RangeMap. */ +void VG_(deleteRangeMap) ( RangeMap* ); + +/* Bind the range [key_min, key_max] to val, overwriting any other + bindings existing in the range. Asserts if key_min > key_max. If + as a result of this addition, there come to be multiple adjacent + ranges with the same value, these ranges are merged together. Note + that this is slow: O(N) in the number of existing ranges. */ +void VG_(bindRangeMap) ( RangeMap* rm, + UWord key_min, UWord key_max, UWord val ); + +/* Looks up |key| in the array and returns the associated value and + the key bounds. Can never fail since the RangeMap covers the + entire key space. This is fast: O(log N) in the number of + ranges. */ +void VG_(lookupRangeMap) ( /*OUT*/UWord* key_min, /*OUT*/UWord* key_max, + /*OUT*/UWord* val, RangeMap* rm, UWord key ); + +/* How many elements are there in the map? */ +Word VG_(sizeRangeMap) ( RangeMap* rm ); + +/* Get the i'th component */ +void VG_(indexRangeMap) ( /*OUT*/UWord* key_min, /*OUT*/UWord* key_max, + /*OUT*/UWord* val, RangeMap* rm, Word ix ); + +#endif // __PUB_TOOL_RANGEMAP_H + +/*--------------------------------------------------------------------*/ +/*--- end pub_tool_rangemap.h ---*/ +/*--------------------------------------------------------------------*/ Modified: trunk/include/pub_tool_xarray.h ============================================================================== --- trunk/include/pub_tool_xarray.h (original) +++ trunk/include/pub_tool_xarray.h Thu Mar 20 23:00:09 2014 @@ -106,10 +106,10 @@ /* Index into the XArray. Checks bounds and bombs if the index is invalid. What this returns is the address of the specified element in the array, not (of course) the element itself. Note that the - element may get moved by subsequent addToXAs/sortXAs, so you should - copy it out immediately and not regard its address as unchanging. - Note also that indexXA will of course not return NULL if it - succeeds. */ + element may get moved by subsequent calls to addToXA / sortXA / + insertIndexXA, so you should copy it out immediately and not regard + its address as unchanging. Note also that indexXA will of course + not return NULL if it succeeds. */ extern void* VG_(indexXA) ( XArray*, Word ); /* Drop the last n elements of an XArray. Bombs if there are less @@ -127,6 +127,13 @@ array. */ extern void VG_(removeIndexXA)( XArray*, Word ); +/* Insert an element into an XArray at the given index. The existing + element at the index and all above it are slid upwards one slot so + as to make space. Element is copied into the XArray. This is an + O(N) operation, when N is the number of elements after the + specified element, in the array. */ +extern void VG_(insertIndexXA)( XArray*, Word, const void* elem ); + /* Make a new, completely independent copy of the given XArray, using the existing allocation function to allocate the new space. Returns NULL if the allocation function didn't manage to allocate Modified: trunk/memcheck/mc_main.c ============================================================================== --- trunk/memcheck/mc_main.c (original) +++ trunk/memcheck/mc_main.c Thu Mar 20 23:00:09 2014 @@ -42,6 +42,7 @@ #include "pub_tool_mallocfree.h" #include "pub_tool_options.h" #include "pub_tool_oset.h" +#include "pub_tool_rangemap.h" #include "pub_tool_replacemalloc.h" #include "pub_tool_tooliface.h" #include "pub_tool_threadstate.h" @@ -1056,28 +1057,58 @@ /* --------------- Ignored address ranges --------------- */ -#define M_IGNORE_RANGES 4 - +/* Denotes the address-error-reportability status for address ranges: + IAR_NotIgnored: the usual case -- report errors in this range + IAR_CommandLine: don't report errors -- from command line setting + IAR_ClientReq: don't report errors -- from client request +*/ typedef - struct { - Int used; - Addr start[M_IGNORE_RANGES]; - Addr end[M_IGNORE_RANGES]; + enum { IAR_INVALID=99, + IAR_NotIgnored, + IAR_CommandLine, + IAR_ClientReq } + IARKind; + +static const HChar* showIARKind ( IARKind iark ) +{ + switch (iark) { + case IAR_INVALID: return "INVALID"; + case IAR_NotIgnored: return "NotIgnored"; + case IAR_CommandLine: return "CommandLine"; + case IAR_ClientReq: return "ClientReq"; + default: return "???"; } - IgnoreRanges; +} + +// RangeMap<IARKind> +static RangeMap* gIgnoredAddressRanges = NULL; -static IgnoreRanges ignoreRanges; +static void init_gIgnoredAddressRanges ( void ) +{ + if (LIKELY(gIgnoredAddressRanges != NULL)) + return; + gIgnoredAddressRanges = VG_(newRangeMap)( VG_(malloc), "mc.igIAR.1", + VG_(free), IAR_NotIgnored ); + tl_assert(gIgnoredAddressRanges != NULL); +} INLINE Bool MC_(in_ignored_range) ( Addr a ) { - Int i; - if (LIKELY(ignoreRanges.used == 0)) + if (LIKELY(gIgnoredAddressRanges == NULL)) return False; - for (i = 0; i < ignoreRanges.used; i++) { - if (a >= ignoreRanges.start[i] && a < ignoreRanges.end[i]) - return True; + UWord how = IAR_INVALID; + UWord key_min = ~(UWord)0; + UWord key_max = (UWord)0; + VG_(lookupRangeMap)(&key_min, &key_max, &how, gIgnoredAddressRanges, a); + tl_assert(key_min <= a && a <= key_max); + switch (how) { + case IAR_NotIgnored: return False; + case IAR_CommandLine: return True; + case IAR_ClientReq: return True; + default: break; /* invalid */ } - return False; + VG_(tool_panic)("MC_(in_ignore_range)"); + /*NOTREACHED*/ } /* Parse two Addr separated by a dash, or fail. */ @@ -1097,24 +1128,22 @@ } /* Parse a set of ranges separated by commas into 'ignoreRanges', or - fail. */ - + fail. If they are valid, add them to the global set of ignored + ranges. */ static Bool parse_ignore_ranges ( const HChar* str0 ) { - Addr start, end; - Bool ok; + init_gIgnoredAddressRanges(); const HChar* str = str0; const HChar** ppc = &str; - ignoreRanges.used = 0; while (1) { - ok = parse_range(ppc, &start, &end); + Addr start = ~(Addr)0; + Addr end = (Addr)0; + Bool ok = parse_range(ppc, &start, &end); if (!ok) return False; - if (ignoreRanges.used >= M_IGNORE_RANGES) + if (start > end) return False; - ignoreRanges.start[ignoreRanges.used] = start; - ignoreRanges.end[ignoreRanges.used] = end; - ignoreRanges.used++; + VG_(bindRangeMap)( gIgnoredAddressRanges, start, end, IAR_CommandLine ); if (**ppc == 0) return True; if (**ppc != ',') @@ -1125,6 +1154,44 @@ return False; } +/* Add or remove [start, +len) from the set of ignored ranges. */ +static Bool modify_ignore_ranges ( Bool addRange, Addr start, Addr len ) +{ + init_gIgnoredAddressRanges(); + const Bool verbose = (VG_(clo_verbosity) > 1); + if (len == 0) { + return False; + } + if (addRange) { + VG_(bindRangeMap)(gIgnoredAddressRanges, + start, start+len-1, IAR_ClientReq); + if (verbose) + VG_(dmsg)("memcheck: modify_ignore_ranges: add %p %p\n", + (void*)start, (void*)(start+len-1)); + } else { + VG_(bindRangeMap)(gIgnoredAddressRanges, + start, start+len-1, IAR_NotIgnored); + if (verbose) + VG_(dmsg)("memcheck: modify_ignore_ranges: del %p %p\n", + (void*)start, (void*)(start+len-1)); + } + if (verbose) { + VG_(dmsg)("memcheck: now have %ld ranges:\n", + VG_(sizeRangeMap)(gIgnoredAddressRanges)); + Word i; + for (i = 0; i < VG_(sizeRangeMap)(gIgnoredAddressRanges); i++) { + UWord val = IAR_INVALID; + UWord key_min = ~(UWord)0; + UWord key_max = (UWord)0; + VG_(indexRangeMap)( &key_min, &key_max, &val, + gIgnoredAddressRanges, i ); + VG_(dmsg)("memcheck: [%ld] %016llx-%016llx %s\n", + i, (ULong)key_min, (ULong)key_max, showIARKind(val)); + } + } + return True; +} + /* --------------- Load/store slow cases. --------------- */ @@ -5191,30 +5258,32 @@ MC_(clo_leak_resolution), Vg_HighRes) {} else if VG_STR_CLO(arg, "--ignore-ranges", tmp_str) { - Int i; - Bool ok = parse_ignore_ranges(tmp_str); - if (!ok) - return False; - tl_assert(ignoreRanges.used >= 0); - tl_assert(ignoreRanges.used < M_IGNORE_RANGES); - for (i = 0; i < ignoreRanges.used; i++) { - Addr s = ignoreRanges.start[i]; - Addr e = ignoreRanges.end[i]; - Addr limit = 0x4000000; /* 64M - entirely arbitrary limit */ - if (e <= s) { - VG_(message)(Vg_DebugMsg, - "ERROR: --ignore-ranges: end <= start in range:\n"); - VG_(message)(Vg_DebugMsg, - " 0x%lx-0x%lx\n", s, e); - return False; - } - if (e - s > limit) { - VG_(message)(Vg_DebugMsg, - "ERROR: --ignore-ranges: suspiciously large range:\n"); - VG_(message)(Vg_DebugMsg, - " 0x%lx-0x%lx (size %ld)\n", s, e, (UWord)(e-s)); - return False; - } + Bool ok = parse_ignore_ranges(tmp_str); + if (!ok) { + VG_(message)(Vg_DebugMsg, + "ERROR: --ignore-ranges: " + "invalid syntax, or end <= start in range\n"); + return False; + } + if (gIgnoredAddressRanges) { + Word i; + for (i = 0; i < VG_(sizeRangeMap)(gIgnoredAddressRanges); i++) { + UWord val = IAR_INVALID; + UWord key_min = ~(UWord)0; + UWord key_max = (UWord)0; + VG_(indexRangeMap)( &key_min, &key_max, &val, + gIgnoredAddressRanges, i ); + tl_assert(key_min <= key_max); + UWord limit = 0x4000000; /* 64M - entirely arbitrary limit */ + if (key_max - key_min > limit) { + VG_(message)(Vg_DebugMsg, + "ERROR: --ignore-ranges: suspiciously large range:\n"); + VG_(message)(Vg_DebugMsg, + " 0x%lx-0x%lx (size %ld)\n", key_min, key_max, + key_max - key_min + 1); + return False; + } + } } } @@ -5694,7 +5763,6 @@ static Bool mc_handle_client_request ( ThreadId tid, UWord* arg, UWord* ret ) { Int i; - Bool ok; Addr bad_addr; if (!VG_IS_TOOL_USERREQ('M','C',arg[0]) @@ -5709,16 +5777,19 @@ && VG_USERREQ__MOVE_MEMPOOL != arg[0] && VG_USERREQ__MEMPOOL_CHANGE != arg[0] && VG_USERREQ__MEMPOOL_EXISTS != arg[0] - && VG_USERREQ__GDB_MONITOR_COMMAND != arg[0]) + && VG_USERREQ__GDB_MONITOR_COMMAND != arg[0] + && VG_USERREQ__ENABLE_ADDR_ERROR_REPORTING_IN_RANGE != arg[0] + && VG_USERREQ__DISABLE_ADDR_ERROR_REPORTING_IN_RANGE != arg[0]) return False; switch (arg[0]) { - case VG_USERREQ__CHECK_MEM_IS_ADDRESSABLE: - ok = is_mem_addressable ( arg[1], arg[2], &bad_addr ); + case VG_USERREQ__CHECK_MEM_IS_ADDRESSABLE: { + Bool ok = is_mem_addressable ( arg[1], arg[2], &bad_addr ); if (!ok) MC_(record_user_error) ( tid, bad_addr, /*isAddrErr*/True, 0 ); *ret = ok ? (UWord)NULL : bad_addr; break; + } case VG_USERREQ__CHECK_MEM_IS_DEFINED: { Bool errorV = False; @@ -5997,6 +6068,16 @@ return handled; } + case VG_USERREQ__DISABLE_ADDR_ERROR_REPORTING_IN_RANGE: + case VG_USERREQ__ENABLE_ADDR_ERROR_REPORTING_IN_RANGE: { + Bool addRange + = arg[0] == VG_USERREQ__DISABLE_ADDR_ERROR_REPORTING_IN_RANGE; + Bool ok + = modify_ignore_ranges(addRange, arg[1], arg[2]); + *ret = ok ? 1 : 0; + return True; + } + default: VG_(message)( Vg_UserMsg, @@ -6666,6 +6747,41 @@ "uninitialised values come from\n"); } + /* Print a warning if any client-request generated ignore-ranges + still exist. It would be reasonable to expect that a properly + written program would remove any such ranges before exiting, and + since they are a bit on the dangerous side, let's comment. By + contrast ranges which are specified on the command line normally + pertain to hardware mapped into the address space, and so we + can't expect the client to have got rid of them. */ + if (gIgnoredAddressRanges) { + Word i, nBad = 0; + for (i = 0; i < VG_(sizeRangeMap)(gIgnoredAddressRanges); i++) { + UWord val = IAR_INVALID; + UWord key_min = ~(UWord)0; + UWord key_max = (UWord)0; + VG_(indexRangeMap)( &key_min, &key_max, &val, + gIgnoredAddressRanges, i ); + if (val != IAR_ClientReq) + continue; + /* Print the offending range. Also, if it is the first, + print a banner before it. */ + nBad++; + if (nBad == 1) { + VG_(umsg)( + "WARNING: exiting program has the following client-requested\n" + "WARNING: address error disablement range(s) still in force,\n" + "WARNING: " + "possibly as a result of some mistake in the use of the\n" + "WARNING: " + "VALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING_IN_RANGE macros.\n" + ); + } + VG_(umsg)(" [%ld] 0x%016llx-0x%016llx %s\n", + i, (ULong)key_min, (ULong)key_max, showIARKind(val)); + } + } + done_prof_mem(); if (VG_(clo_stats)) Modified: trunk/memcheck/memcheck.h ============================================================================== --- trunk/memcheck/memcheck.h (original) +++ trunk/memcheck/memcheck.h Thu Mar 20 23:00:09 2014 @@ -96,6 +96,9 @@ /* Not next to VG_USERREQ__COUNT_LEAKS because it was added later. */ VG_USERREQ__COUNT_LEAK_BLOCKS, + VG_USERREQ__ENABLE_ADDR_ERROR_REPORTING_IN_RANGE, + VG_USERREQ__DISABLE_ADDR_ERROR_REPORTING_IN_RANGE, + /* This is just for memcheck's internal use - don't use it */ _VG_USERREQ__MEMCHECK_RECORD_OVERLAP_ERROR = VG_USERREQ_TOOL_BASE('M','C') + 256 @@ -283,5 +286,17 @@ (const char*)(zzvbits), \ (zznbytes), 0, 0 ) +/* Disable and re-enable reporting of addressing errors in the + specified address range. */ +#define VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE(_qzz_addr,_qzz_len) \ + VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \ + VG_USERREQ__DISABLE_ADDR_ERROR_REPORTING_IN_RANGE, \ + (_qzz_addr), (_qzz_len), 0, 0, 0) + +#define VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE(_qzz_addr,_qzz_len) \ + VALGRIND_DO_CLIENT_REQUEST_EXPR(0 /* default return */, \ + VG_USERREQ__ENABLE_ADDR_ERROR_REPORTING_IN_RANGE, \ + (_qzz_addr), (_qzz_len), 0, 0, 0) + #endif Modified: trunk/memcheck/tests/Makefile.am ============================================================================== --- trunk/memcheck/tests/Makefile.am (original) +++ trunk/memcheck/tests/Makefile.am Thu Mar 20 23:00:09 2014 @@ -102,6 +102,7 @@ err_disable2.vgtest err_disable2.stderr.exp \ err_disable3.vgtest err_disable3.stderr.exp \ err_disable4.vgtest err_disable4.stderr.exp \ + err_disable_arange1.vgtest err_disable_arange1.stderr.exp \ erringfds.stderr.exp erringfds.stdout.exp erringfds.vgtest \ error_counts.stderr.exp error_counts.vgtest \ errs1.stderr.exp errs1.vgtest \ @@ -294,6 +295,7 @@ describe-block \ doublefree error_counts errs1 exitprog execve1 execve2 erringfds \ err_disable1 err_disable2 err_disable3 err_disable4 \ + err_disable_arange1 \ file_locking \ fprw fwrite inits inline \ holey_buffer_too_small \ Added: trunk/memcheck/tests/err_disable_arange1.c ============================================================================== --- trunk/memcheck/tests/err_disable_arange1.c (added) +++ trunk/memcheck/tests/err_disable_arange1.c Thu Mar 20 23:00:09 2014 @@ -0,0 +1,41 @@ + +/* Check some aspects of the use of the + VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE and + VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE macros. */ + +#include <stdio.h> +#include <stdlib.h> + +#include "../memcheck.h" + +int main ( void ) +{ + volatile int* volatile mem + = (volatile int* volatile)malloc(1000 * sizeof(int)); + free((void*)mem); + + // Check that we get an invalid access complaint + fprintf(stderr, "\nDoing invalid access. Expect complaint.\n\n"); + mem[123] = 0; + + // Now disable error reporting in the range + fprintf(stderr, "\nDisabling address error reporting for the range.\n\n"); + VALGRIND_DISABLE_ADDR_ERROR_REPORTING_IN_RANGE(mem, 1000 * sizeof(int)); + + // Check that we get an invalid access complaint + fprintf(stderr, "\nDoing invalid another access. Expect no complaint.\n\n"); + mem[456] = 0; + + // Re-enable reporting on the first byte of one word from the ignore range + fprintf(stderr, "\nPartially reenabling address error reporting.\n\n"); + VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE(&mem[789], 1); + + // Check that we get an invalid access complaint + fprintf(stderr, "\nDoing a third access. Expect complaint.\n\n"); + mem[789] = 0; + + // And now quit and expect to see a warning about two remaining ranges + fprintf(stderr, "\nExiting. Expect warnings of 2 remaining ranges.\n\n"); + + return 0; +} Added: trunk/memcheck/tests/err_disable_arange1.stderr.exp ============================================================================== --- trunk/memcheck/tests/err_disable_arange1.stderr.exp (added) +++ trunk/memcheck/tests/err_disable_arange1.stderr.exp Thu Mar 20 23:00:09 2014 @@ -0,0 +1,36 @@ + +Doing invalid access. Expect complaint. + +Invalid write of size 4 + at 0x........: main (err_disable_arange1.c:19) + Address 0x........ is 492 bytes inside a block of size 4,000 free'd + at 0x........: free (vg_replace_malloc.c:...) + by 0x........: main (err_disable_arange1.c:15) + + +Disabling address error reporting for the range. + + +Doing invalid another access. Expect no complaint. + + +Partially reenabling address error reporting. + + +Doing a third access. Expect complaint. + +Invalid write of size 4 + at 0x........: main (err_disable_arange1.c:35) + Address 0x........ is 3,156 bytes inside a block of size 4,000 free'd + at 0x........: free (vg_replace_malloc.c:...) + by 0x........: main (err_disable_arange1.c:15) + + +Exiting. Expect warnings of 2 remaining ranges. + +WARNING: exiting program has the following client-requested +WARNING: address error disablement range(s) still in force, +WARNING: possibly as a result of some mistake in the use of the +WARNING: VALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING_IN_RANGE macros. + [1] 0x........-0x........ ClientReq + [3] 0x........-0x........ ClientReq Added: trunk/memcheck/tests/err_disable_arange1.vgtest ============================================================================== --- trunk/memcheck/tests/err_disable_arange1.vgtest (added) +++ trunk/memcheck/tests/err_disable_arange1.vgtest Thu Mar 20 23:00:09 2014 @@ -0,0 +1,2 @@ +prog: err_disable_arange1 +vgopts: -q |
|
From: <sv...@va...> - 2014-03-20 10:24:06
|
Author: dejanj
Date: Thu Mar 20 10:23:43 2014
New Revision: 13883
Log:
mips32: When we are accessing elements via double pointer MIPS compiler can
generate two consecutive 32bit loads instead of one 64bit load. Because of that
in error log we have two conflict loads of size 4 instead of one conflict load
of size 8.
Added:
trunk/drd/tests/fp_race.stderr.exp-mips32-be
trunk/drd/tests/fp_race.stderr.exp-mips32-le
trunk/drd/tests/fp_race_xml.stderr.exp-mips32-be
trunk/drd/tests/fp_race_xml.stderr.exp-mips32-le
trunk/drd/tests/sem_as_mutex.stderr.exp-mips32-be
trunk/drd/tests/sem_as_mutex.stderr.exp-mips32-le
trunk/drd/tests/sem_as_mutex3.stderr.exp-mips32-be
trunk/drd/tests/sem_as_mutex3.stderr.exp-mips32-le
trunk/drd/tests/sem_open.stderr.exp-mips32-be
trunk/drd/tests/sem_open.stderr.exp-mips32-le
trunk/drd/tests/sem_open3.stderr.exp-mips32-be
trunk/drd/tests/sem_open3.stderr.exp-mips32-le
trunk/memcheck/tests/fprw.stderr.exp-mips32-be
trunk/memcheck/tests/fprw.stderr.exp-mips32-le
Modified:
trunk/drd/tests/Makefile.am
trunk/memcheck/tests/Makefile.am
Modified: trunk/drd/tests/Makefile.am
==============================================================================
--- trunk/drd/tests/Makefile.am (original)
+++ trunk/drd/tests/Makefile.am Thu Mar 20 10:23:43 2014
@@ -91,10 +91,14 @@
custom_alloc_fiw.stderr.exp \
custom_alloc_fiw.vgtest \
fp_race.stderr.exp \
+ fp_race.stderr.exp-mips32-be \
+ fp_race.stderr.exp-mips32-le \
fp_race.vgtest \
fp_race2.stderr.exp \
fp_race2.vgtest \
fp_race_xml.stderr.exp \
+ fp_race_xml.stderr.exp-mips32-be \
+ fp_race.xml.stderr.exp-mips32-le \
fp_race_xml.vgtest \
free_is_write.stderr.exp \
free_is_write.vgtest \
@@ -211,16 +215,24 @@
rwlock_type_checking.stderr.exp \
rwlock_type_checking.vgtest \
sem_as_mutex.stderr.exp \
+ sem_as_mutex.stderr.exp-mips32-be \
+ sem_as_mutex.stderr.exp-mips32-le \
sem_as_mutex.vgtest \
sem_as_mutex2.stderr.exp \
sem_as_mutex2.vgtest \
sem_as_mutex3.stderr.exp \
+ sem_as_mutex3.stderr.exp-mips32-be \
+ sem_as_mutex3.stderr.exp-mips32-le \
sem_as_mutex3.vgtest \
sem_open.stderr.exp \
+ sem_open.stderr.exp-mips32-be \
+ sem_open.stderr.exp-mips32-le \
sem_open.vgtest \
sem_open2.stderr.exp \
sem_open2.vgtest \
sem_open3.stderr.exp \
+ sem_open3.stderr.exp-mips32-be \
+ sem_open3.stderr.exp-mips32-le \
sem_open3.vgtest \
sem_open_traced.stderr.exp \
sem_open_traced.vgtest \
Added: trunk/drd/tests/fp_race.stderr.exp-mips32-be
==============================================================================
--- trunk/drd/tests/fp_race.stderr.exp-mips32-be (added)
+++ trunk/drd/tests/fp_race.stderr.exp-mips32-be Thu Mar 20 10:23:43 2014
@@ -0,0 +1,39 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (fp_race.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at fp_race.c:24
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (fp_race.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at fp_race.c:24
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (fp_race.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at fp_race.c:24
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (fp_race.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at fp_race.c:24
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/fp_race.stderr.exp-mips32-le
==============================================================================
--- trunk/drd/tests/fp_race.stderr.exp-mips32-le (added)
+++ trunk/drd/tests/fp_race.stderr.exp-mips32-le Thu Mar 20 10:23:43 2014
@@ -0,0 +1,39 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (fp_race.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at fp_race.c:24
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (fp_race.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at fp_race.c:24
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (fp_race.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at fp_race.c:24
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (fp_race.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at fp_race.c:24
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/fp_race_xml.stderr.exp-mips32-be
==============================================================================
--- trunk/drd/tests/fp_race_xml.stderr.exp-mips32-be (added)
+++ trunk/drd/tests/fp_race_xml.stderr.exp-mips32-be Thu Mar 20 10:23:43 2014
@@ -0,0 +1,158 @@
+<?xml version="1.0"?>
+
+<valgrindoutput>
+
+<protocolversion>4</protocolversion>
+<protocoltool>drd</protocoltool>
+
+<preamble>
+ <line>...</line>
+ <line>...</line>
+ <line>...</line>
+ <line>...</line>
+</preamble>
+
+<pid>...</pid>
+<ppid>...</ppid>
+<tool>drd</tool>
+
+<args>
+ <vargv>...</vargv>
+ <argv>
+ <exe>./fp_race</exe>
+ </argv>
+</args>
+
+<status>
+ <state>RUNNING</state>
+ <time>...</time>
+</status>
+
+ <trace><text>drd_pre_thread_create creator = 0, created = 1</text></trace>
+ <trace><text>drd_post_thread_create created = 1</text></trace>
+ <trace><text>drd_pre_thread_create creator = 1, created = 2</text></trace>
+ <trace><text>drd_post_thread_create created = 2</text></trace>
+ <trace><text>drd_thread_finished tid = 2</text></trace>
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread x at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>main</fn>
+ <dir>...</dir>
+ <file>fp_race.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Location 0x........ is 4 bytes inside global var "s_d3"</auxwhat>
+ <xauxwhat><text>declared at fp_race.c:24</text> <file>fp_race.c</file> <line>...</line> </xauxwhat>
+ <other_segment_start>
+ </other_segment_start>
+ <other_segment_end>
+ </other_segment_end>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread x at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>main</fn>
+ <dir>...</dir>
+ <file>fp_race.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Location 0x........ is 0 bytes inside global var "s_d3"</auxwhat>
+ <xauxwhat><text>declared at fp_race.c:24</text> <file>fp_race.c</file> <line>...</line> </xauxwhat>
+ <other_segment_start>
+ </other_segment_start>
+ <other_segment_end>
+ </other_segment_end>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting store by thread x at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>main</fn>
+ <dir>...</dir>
+ <file>fp_race.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Location 0x........ is 4 bytes inside global var "s_d3"</auxwhat>
+ <xauxwhat><text>declared at fp_race.c:24</text> <file>fp_race.c</file> <line>...</line> </xauxwhat>
+ <other_segment_start>
+ </other_segment_start>
+ <other_segment_end>
+ </other_segment_end>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting store by thread x at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>main</fn>
+ <dir>...</dir>
+ <file>fp_race.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Location 0x........ is 0 bytes inside global var "s_d3"</auxwhat>
+ <xauxwhat><text>declared at fp_race.c:24</text> <file>fp_race.c</file> <line>...</line> </xauxwhat>
+ <other_segment_start>
+ </other_segment_start>
+ <other_segment_end>
+ </other_segment_end>
+</error>
+
+ <trace><text>drd_post_thread_join joiner = 1, joinee = 2, new vc: [ ... ]</text></trace>
+ <trace><text>drd_thread_finished tid = 1</text></trace>
+
+<status>
+ <state>FINISHED</state>
+ <time>...</time>
+</status>
+
+<errorcounts>
+ <pair>
+ <count>...</count>
+ <unique>0x........</unique>
+ </pair>
+ <pair>
+ <count>...</count>
+ <unique>0x........</unique>
+ </pair>
+ <pair>
+ <count>...</count>
+ <unique>0x........</unique>
+ </pair>
+ <pair>
+ <count>...</count>
+ <unique>0x........</unique>
+ </pair>
+</errorcounts>
+
+<suppcounts>...</suppcounts>
+
+</valgrindoutput>
+
Added: trunk/drd/tests/fp_race_xml.stderr.exp-mips32-le
==============================================================================
--- trunk/drd/tests/fp_race_xml.stderr.exp-mips32-le (added)
+++ trunk/drd/tests/fp_race_xml.stderr.exp-mips32-le Thu Mar 20 10:23:43 2014
@@ -0,0 +1,158 @@
+<?xml version="1.0"?>
+
+<valgrindoutput>
+
+<protocolversion>4</protocolversion>
+<protocoltool>drd</protocoltool>
+
+<preamble>
+ <line>...</line>
+ <line>...</line>
+ <line>...</line>
+ <line>...</line>
+</preamble>
+
+<pid>...</pid>
+<ppid>...</ppid>
+<tool>drd</tool>
+
+<args>
+ <vargv>...</vargv>
+ <argv>
+ <exe>./fp_race</exe>
+ </argv>
+</args>
+
+<status>
+ <state>RUNNING</state>
+ <time>...</time>
+</status>
+
+ <trace><text>drd_pre_thread_create creator = 0, created = 1</text></trace>
+ <trace><text>drd_post_thread_create created = 1</text></trace>
+ <trace><text>drd_pre_thread_create creator = 1, created = 2</text></trace>
+ <trace><text>drd_post_thread_create created = 2</text></trace>
+ <trace><text>drd_thread_finished tid = 2</text></trace>
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread x at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>main</fn>
+ <dir>...</dir>
+ <file>fp_race.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Location 0x........ is 0 bytes inside global var "s_d3"</auxwhat>
+ <xauxwhat><text>declared at fp_race.c:24</text> <file>fp_race.c</file> <line>...</line> </xauxwhat>
+ <other_segment_start>
+ </other_segment_start>
+ <other_segment_end>
+ </other_segment_end>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting load by thread x at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>main</fn>
+ <dir>...</dir>
+ <file>fp_race.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Location 0x........ is 4 bytes inside global var "s_d3"</auxwhat>
+ <xauxwhat><text>declared at fp_race.c:24</text> <file>fp_race.c</file> <line>...</line> </xauxwhat>
+ <other_segment_start>
+ </other_segment_start>
+ <other_segment_end>
+ </other_segment_end>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting store by thread x at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>main</fn>
+ <dir>...</dir>
+ <file>fp_race.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Location 0x........ is 0 bytes inside global var "s_d3"</auxwhat>
+ <xauxwhat><text>declared at fp_race.c:24</text> <file>fp_race.c</file> <line>...</line> </xauxwhat>
+ <other_segment_start>
+ </other_segment_start>
+ <other_segment_end>
+ </other_segment_end>
+</error>
+
+<error>
+ <unique>0x........</unique>
+ <tid>...</tid>
+ <kind>ConflictingAccess</kind>
+ <what>Conflicting store by thread x at 0x........ size 4</what>
+ <stack>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>main</fn>
+ <dir>...</dir>
+ <file>fp_race.c</file>
+ <line>...</line>
+ </frame>
+ </stack>
+ <auxwhat>Location 0x........ is 4 bytes inside global var "s_d3"</auxwhat>
+ <xauxwhat><text>declared at fp_race.c:24</text> <file>fp_race.c</file> <line>...</line> </xauxwhat>
+ <other_segment_start>
+ </other_segment_start>
+ <other_segment_end>
+ </other_segment_end>
+</error>
+
+ <trace><text>drd_post_thread_join joiner = 1, joinee = 2, new vc: [ ... ]</text></trace>
+ <trace><text>drd_thread_finished tid = 1</text></trace>
+
+<status>
+ <state>FINISHED</state>
+ <time>...</time>
+</status>
+
+<errorcounts>
+ <pair>
+ <count>...</count>
+ <unique>0x........</unique>
+ </pair>
+ <pair>
+ <count>...</count>
+ <unique>0x........</unique>
+ </pair>
+ <pair>
+ <count>...</count>
+ <unique>0x........</unique>
+ </pair>
+ <pair>
+ <count>...</count>
+ <unique>0x........</unique>
+ </pair>
+</errorcounts>
+
+<suppcounts>...</suppcounts>
+
+</valgrindoutput>
+
Added: trunk/drd/tests/sem_as_mutex.stderr.exp-mips32-be
==============================================================================
--- trunk/drd/tests/sem_as_mutex.stderr.exp-mips32-be (added)
+++ trunk/drd/tests/sem_as_mutex.stderr.exp-mips32-be Thu Mar 20 10:23:43 2014
@@ -0,0 +1,39 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/sem_as_mutex.stderr.exp-mips32-le
==============================================================================
--- trunk/drd/tests/sem_as_mutex.stderr.exp-mips32-le (added)
+++ trunk/drd/tests/sem_as_mutex.stderr.exp-mips32-le Thu Mar 20 10:23:43 2014
@@ -0,0 +1,39 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/sem_as_mutex3.stderr.exp-mips32-be
==============================================================================
--- trunk/drd/tests/sem_as_mutex3.stderr.exp-mips32-be (added)
+++ trunk/drd/tests/sem_as_mutex3.stderr.exp-mips32-be Thu Mar 20 10:23:43 2014
@@ -0,0 +1,21 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/sem_as_mutex3.stderr.exp-mips32-le
==============================================================================
--- trunk/drd/tests/sem_as_mutex3.stderr.exp-mips32-le (added)
+++ trunk/drd/tests/sem_as_mutex3.stderr.exp-mips32-le Thu Mar 20 10:23:43 2014
@@ -0,0 +1,21 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_as_mutex.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_as_mutex.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/sem_open.stderr.exp-mips32-be
==============================================================================
--- trunk/drd/tests/sem_open.stderr.exp-mips32-be (added)
+++ trunk/drd/tests/sem_open.stderr.exp-mips32-be Thu Mar 20 10:23:43 2014
@@ -0,0 +1,39 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/sem_open.stderr.exp-mips32-le
==============================================================================
--- trunk/drd/tests/sem_open.stderr.exp-mips32-le (added)
+++ trunk/drd/tests/sem_open.stderr.exp-mips32-le Thu Mar 20 10:23:43 2014
@@ -0,0 +1,39 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting store by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+
+ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/sem_open3.stderr.exp-mips32-be
==============================================================================
--- trunk/drd/tests/sem_open3.stderr.exp-mips32-be (added)
+++ trunk/drd/tests/sem_open3.stderr.exp-mips32-be Thu Mar 20 10:23:43 2014
@@ -0,0 +1,21 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Added: trunk/drd/tests/sem_open3.stderr.exp-mips32-le
==============================================================================
--- trunk/drd/tests/sem_open3.stderr.exp-mips32-le (added)
+++ trunk/drd/tests/sem_open3.stderr.exp-mips32-le Thu Mar 20 10:23:43 2014
@@ -0,0 +1,21 @@
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 0 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+Conflicting load by thread 1 at 0x........ size 4
+ at 0x........: main (sem_open.c:?)
+Location 0x........ is 4 bytes inside global var "s_d3"
+declared at sem_open.c:25
+Other segment start (thread 2)
+ (thread finished, call stack no longer available)
+Other segment end (thread 2)
+ (thread finished, call stack no longer available)
+
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Modified: trunk/memcheck/tests/Makefile.am
==============================================================================
--- trunk/memcheck/tests/Makefile.am (original)
+++ trunk/memcheck/tests/Makefile.am Thu Mar 20 10:23:43 2014
@@ -109,7 +109,8 @@
execve1.stderr.exp execve1.vgtest execve1.stderr.exp-kfail \
execve2.stderr.exp execve2.vgtest execve2.stderr.exp-kfail \
file_locking.stderr.exp file_locking.vgtest \
- fprw.stderr.exp fprw.vgtest \
+ fprw.stderr.exp fprw.stderr.exp-mips32-be fprw.stderr.exp-mips32-le \
+ fprw.vgtest \
fwrite.stderr.exp fwrite.vgtest fwrite.stderr.exp-kfail \
holey_buffer_too_small.vgtest holey_buffer_too_small.stdout.exp \
holey_buffer_too_small.stderr.exp \
Added: trunk/memcheck/tests/fprw.stderr.exp-mips32-be
==============================================================================
--- trunk/memcheck/tests/fprw.stderr.exp-mips32-be (added)
+++ trunk/memcheck/tests/fprw.stderr.exp-mips32-be Thu Mar 20 10:23:43 2014
@@ -0,0 +1,53 @@
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (fprw.c:16)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (fprw.c:17)
+
+Invalid read of size 4
+ at 0x........: main (fprw.c:20)
+ Address 0x........ is 4 bytes inside a block of size 8 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:18)
+
+Invalid read of size 4
+ at 0x........: main (fprw.c:20)
+ Address 0x........ is 0 bytes inside a block of size 8 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:18)
+
+Invalid write of size 4
+ at 0x........: main (fprw.c:20)
+ Address 0x........ is 4 bytes inside a block of size 8 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:18)
+
+Invalid write of size 4
+ at 0x........: main (fprw.c:20)
+ Address 0x........ is 0 bytes inside a block of size 8 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:18)
+
+Invalid read of size 4
+ at 0x........: main (fprw.c:21)
+ Address 0x........ is 0 bytes inside a block of size 4 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:19)
+
+Invalid write of size 4
+ at 0x........: main (fprw.c:21)
+ Address 0x........ is 0 bytes inside a block of size 4 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:19)
+
+Invalid free() / delete / delete[] / realloc()
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:22)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Invalid write of size 4
+ at 0x........: main (fprw.c:24)
+ Address 0x........ is 0 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:23)
+
Added: trunk/memcheck/tests/fprw.stderr.exp-mips32-le
==============================================================================
--- trunk/memcheck/tests/fprw.stderr.exp-mips32-le (added)
+++ trunk/memcheck/tests/fprw.stderr.exp-mips32-le Thu Mar 20 10:23:43 2014
@@ -0,0 +1,53 @@
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (fprw.c:16)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (fprw.c:17)
+
+Invalid read of size 4
+ at 0x........: main (fprw.c:20)
+ Address 0x........ is 0 bytes inside a block of size 8 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:18)
+
+Invalid read of size 4
+ at 0x........: main (fprw.c:20)
+ Address 0x........ is 4 bytes inside a block of size 8 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:18)
+
+Invalid write of size 4
+ at 0x........: main (fprw.c:20)
+ Address 0x........ is 0 bytes inside a block of size 8 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:18)
+
+Invalid write of size 4
+ at 0x........: main (fprw.c:20)
+ Address 0x........ is 4 bytes inside a block of size 8 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:18)
+
+Invalid read of size 4
+ at 0x........: main (fprw.c:21)
+ Address 0x........ is 0 bytes inside a block of size 4 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:19)
+
+Invalid write of size 4
+ at 0x........: main (fprw.c:21)
+ Address 0x........ is 0 bytes inside a block of size 4 free'd
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:19)
+
+Invalid free() / delete / delete[] / realloc()
+ at 0x........: free (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:22)
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Invalid write of size 4
+ at 0x........: main (fprw.c:24)
+ Address 0x........ is 0 bytes after a block of size 4 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (fprw.c:23)
+
|
|
From: Christian B. <bor...@de...> - 2014-03-20 05:18:14
|
valgrind revision: 13882 VEX revision: 2841 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.5.1-0.7.29) Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.23.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.101-0.15-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP3 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP3 gcc 4.3.4 on z196 (s390x) ) Started at 2014-03-20 03:45:01 CET Ended at 2014-03-20 06:17:58 CET Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 642 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_cond_destroy_busy (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 4.3s (18.8x, -----) me: 7.0s (30.3x, -----) ca:26.5s (115.2x, -----) he: 5.1s (22.0x, -----) ca: 9.3s (40.3x, -----) dr: 5.5s (23.8x, -----) ma: 4.7s (20.4x, -----) bigcode1 valgrind-old:0.23s no: 4.3s (18.8x, 0.0%) me: 7.0s (30.3x, 0.0%) ca:26.5s (115.0x, 0.1%) he: 5.1s (22.0x, 0.2%) ca: 9.3s (40.3x, -0.1%) dr: 5.5s (23.9x, -0.4%) ma: 4.7s (20.4x, 0.2%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 7.3s (30.3x, -----) me:13.9s (58.0x, -----) ca:39.8s (165.6x, -----) he:10.1s (41.9x, -----) ca:14.2s (59.2x, -----) dr: 9.6s (40.1x, -----) ma: 8.1s (33.8x, -----) bigcode2 valgrind-old:0.24s no: 7.3s (30.3x, 0.0%) me:13.9s (58.0x, 0.0%) ca:39.8s (165.6x, 0.0%) he:10.1s (41.9x, 0.0%) ca:14.2s (59.2x, 0.0%) dr: 9.6s (40.0x, 0.3%) ma: 8.1s (33.9x, -0.5%) -- bz2 -- bz2 valgrind-new:0.70s no: 5.0s ( 7.2x, -----) me:12.9s (18.4x, -----) ca:30.6s (43.7x, -----) he:19.7s (28.2x, -----) ca:34.3s (49.0x, -----) dr:29.4s (42.0x, -----) ma: 3.6s ( 5.2x, -----) bz2 valgrind-old:0.70s no: 5.0s ( 7.1x, 0.2%) me:12.9s (18.4x, 0.0%) ca:30.6s (43.8x, -0.1%) he:19.7s (28.1x, 0.2%) ca:34.3s (49.0x, 0.2%) dr:29.4s (42.0x, 0.0%) ma: 3.6s ( 5.2x, 0.5%) -- fbench -- fbench valgrind-new:0.41s no: 1.6s ( 3.9x, -----) me: 4.2s (10.3x, -----) ca: 9.3s (22.8x, -----) he: 6.1s (15.0x, -----) ca: 7.2s (17.5x, -----) dr: 5.4s (13.2x, -----) ma: 1.7s ( 4.1x, -----) fbench valgrind-old:0.41s no: 1.6s ( 3.9x, -0.0%) me: 4.2s (10.3x, 0.0%) ca: 9.3s (22.8x, -0.2%) he: 6.1s (15.0x, 0.0%) ca: 7.2s (17.5x, 0.0%) dr: 5.5s (13.4x, -1.1%) ma: 1.7s ( 4.1x, 0.0%) -- ffbench -- ffbench valgrind-new:0.21s no: 1.1s ( 5.0x, -----) me: 3.0s (14.5x, -----) ca: 3.0s (14.3x, -----) he:44.5s (211.7x, -----) ca: 9.6s (45.9x, -----) dr: 6.9s (32.7x, -----) ma: 1.0s ( 4.6x, -----) ffbench valgrind-old:0.21s no: 1.0s ( 5.0x, 1.0%) me: 3.0s (14.5x, 0.3%) ca: 3.0s (14.4x, -0.3%) he:44.4s (211.5x, 0.1%) ca: 9.6s (45.9x, 0.0%) dr: 6.9s (33.0x, -1.0%) ma: 1.0s ( 4.6x, 0.0%) -- heap -- heap valgrind-new:0.23s no: 1.8s ( 7.8x, -----) me: 8.9s (38.7x, -----) ca:13.2s (57.6x, -----) he:12.8s (55.6x, -----) ca:11.2s (48.8x, -----) dr: 7.9s (34.3x, -----) ma: 7.9s (34.4x, -----) heap valgrind-old:0.23s no: 1.8s ( 7.7x, 1.1%) me: 8.9s (38.6x, 0.2%) ca:13.2s (57.5x, 0.2%) he:12.8s (55.5x, 0.1%) ca:11.2s (48.8x, -0.1%) dr: 7.6s (33.2x, 3.2%) ma: 8.0s (34.6x, -0.5%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.22s no: 2.0s ( 8.9x, -----) me:12.9s (58.7x, -----) ca:14.3s (65.0x, -----) he:14.4s (65.4x, -----) ca:12.4s (56.5x, -----) dr: 8.8s (39.8x, -----) ma: 8.1s (36.6x, -----) heap_pdb4 valgrind-old:0.22s no: 2.0s ( 8.9x, 0.0%) me:12.9s (58.5x, 0.4%) ca:14.3s (64.9x, 0.1%) he:14.3s (65.1x, 0.3%) ca:12.4s (56.5x, 0.1%) dr: 8.5s (38.5x, 3.3%) ma: 8.1s (36.7x, -0.2%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (15.7x, -----) me: 2.1s (69.7x, -----) ca: 1.9s (64.7x, -----) he: 2.2s (72.3x, -----) ca: 1.9s (63.7x, -----) dr: 1.8s (60.0x, -----) ma: 1.6s (55.0x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (15.7x, 0.0%) me: 2.1s (69.7x, 0.0%) ca: 1.9s (64.7x, 0.0%) he: 2.2s (72.0x, 0.5%) ca: 1.9s (63.7x, 0.0%) dr: 1.7s (56.7x, 5.6%) ma: 1.6s (55.0x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.6s ( 8.6x, -----) me: 3.2s (46.0x, -----) ca:375.5s (5363.7x, -----) he: 6.6s (94.0x, -----) ca: 2.8s (39.9x, -----) dr: 2.5s (36.3x, -----) ma: 2.6s (37.1x, -----) many-xpts valgrind-old:0.07s no: 0.6s ( 8.6x, 0.0%) me: 3.2s (46.0x, 0.0%) ca:369.6s (5279.6x, 1.6%) he: 6.6s (93.9x, 0.2%) ca: 2.8s (39.9x, 0.0%) dr: 2.4s (34.7x, 4.3%) ma: 2.6s (37.1x, 0.0%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (18.7x, -----) me: 3.6s (120.3x, -----) ca: 3.2s (105.3x, -----) he:16.6s (554.7x, -----) ca: 2.0s (68.3x, -----) dr: 1.4s (45.0x, -----) ma: 0.5s (16.3x, -----) sarp valgrind-old:0.03s no: 0.6s (19.0x, -1.8%) me: 3.6s (120.3x, 0.0%) ca: 3.2s (105.3x, 0.0%) he:16.7s (555.3x, -0.1%) ca: 2.0s (68.3x, 0.0%) dr: 1.3s (44.3x, 1.5%) ma: 0.5s (16.3x, 0.0%) -- tinycc -- tinycc valgrind-new:0.22s no: 2.7s (12.2x, -----) me:14.9s (67.6x, -----) ca:29.9s (136.0x, -----) he:27.8s (126.2x, -----) ca:21.4s (97.1x, -----) dr:20.1s (91.6x, -----) ma: 4.0s (18.1x, -----) tinycc valgrind-old:0.22s no: 2.7s (12.1x, 0.4%) me:14.9s (67.6x, 0.0%) ca:29.9s (136.1x, -0.1%) he:27.7s (125.7x, 0.4%) ca:21.4s (97.2x, -0.0%) dr:20.3s (92.1x, -0.6%) ma: 4.0s (18.1x, 0.0%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 110m44.478s user 109m56.983s sys 0m41.778s |
|
From: Philippe W. <phi...@sk...> - 2014-03-20 04:46:53
|
valgrind revision: 13882 VEX revision: 2841 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora (7.5.1-37.fc18) Assembler: GNU assembler version 2.23.51.0.1-7.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.8.8-202.fc18.ppc64p7 ppc64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on gcc110 ( Fedora release 18 (Spherical Cow), ppc64 ) Started at 2014-03-19 20:00:10 PDT Ended at 2014-03-19 21:43:47 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 == 575 tests, 36 stderr failures, 7 stdout failures, 0 stderrB failures, 0 stdoutB failures, 2 post failures == memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/ppc64/power_ISA2_05 (stdout) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/jm-vmx (stderr) none/tests/ppc32/test_isa_2_06_part2 (stdout) none/tests/ppc32/test_isa_2_06_part2 (stderr) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/jm-vmx (stderr) none/tests/ppc64/test_isa_2_06_part2 (stdout) none/tests/ppc64/test_isa_2_06_part2 (stderr) helgrind/tests/annotate_rwlock (stderr) helgrind/tests/free_is_write (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier1 (stderr) helgrind/tests/pth_barrier2 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/pth_destroy_cond (stderr) helgrind/tests/rwlock_race (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 1.7s ( 7.3x, -----) me: 3.0s (13.1x, -----) ca:17.9s (77.7x, -----) he: 1.7s ( 7.5x, -----) ca: 5.3s (23.1x, -----) dr: 1.7s ( 7.3x, -----) ma: 2.1s ( 9.2x, -----) bigcode1 valgrind-old:0.23s no: 1.6s ( 6.8x, 6.0%) me: 2.9s (12.5x, 4.3%) ca:17.9s (78.0x, -0.3%) he: 1.7s ( 7.6x, -0.6%) ca: 5.4s (23.6x, -2.1%) dr: 1.7s ( 7.4x, -0.6%) ma: 2.1s ( 9.2x, 0.0%) -- bigcode2 -- bigcode2 valgrind-new:0.23s no: 1.5s ( 6.6x, -----) me: 3.0s (13.0x, -----) ca:18.2s (79.0x, -----) he: 2.1s ( 9.1x, -----) ca: 5.4s (23.5x, -----) dr: 1.8s ( 8.0x, -----) ma: 2.1s ( 9.2x, -----) bigcode2 valgrind-old:0.23s no: 1.5s ( 6.7x, -1.3%) me: 3.0s (12.9x, 0.3%) ca:18.1s (78.9x, 0.2%) he: 2.1s ( 9.2x, -1.0%) ca: 5.4s (23.5x, -0.2%) dr: 1.8s ( 7.9x, 1.1%) ma: 2.1s ( 9.2x, 0.0%) -- bz2 -- bz2 valgrind-new:0.72s no: 4.6s ( 6.3x, -----) me:12.1s (16.8x, -----) ca:25.9s (36.0x, -----) he:14.9s (20.6x, -----) ca:24.4s (33.9x, -----) dr:20.4s (28.3x, -----) ma: 4.7s ( 6.5x, -----) bz2 valgrind-old:0.72s no: 4.6s ( 6.3x, 0.2%) me:12.1s (16.8x, 0.1%) ca:26.0s (36.1x, -0.3%) he:14.6s (20.2x, 2.1%) ca:24.5s (34.0x, -0.3%) dr:20.4s (28.3x, -0.1%) ma: 4.7s ( 6.5x, 0.0%) -- fbench -- fbench valgrind-new:0.34s no: 2.1s ( 6.2x, -----) me: 5.2s (15.4x, -----) ca: 8.4s (24.9x, -----) he: 5.2s (15.3x, -----) ca: 7.5s (22.2x, -----) dr: 4.8s (14.2x, -----) ma: 2.2s ( 6.4x, -----) fbench valgrind-old:0.34s no: 2.1s ( 6.2x, 0.0%) me: 5.3s (15.5x, -0.4%) ca: 8.4s (24.8x, 0.4%) he: 5.3s (15.5x, -1.0%) ca: 7.5s (22.0x, 0.9%) dr: 4.8s (14.2x, -0.2%) ma: 2.1s ( 6.3x, 1.4%) -- ffbench -- ffbench valgrind-new:0.45s no: 1.3s ( 3.0x, -----) me: 2.7s ( 5.9x, -----) ca: 2.5s ( 5.5x, -----) he: 7.2s (15.9x, -----) ca: 7.3s (16.3x, -----) dr: 5.0s (11.0x, -----) ma: 1.1s ( 2.4x, -----) ffbench valgrind-old:0.45s no: 1.3s ( 3.0x, 0.0%) me: 2.6s ( 5.8x, 2.3%) ca: 2.5s ( 5.5x, 0.0%) he: 7.2s (16.0x, -0.4%) ca: 7.0s (15.6x, 4.0%) dr: 5.0s (11.1x, -0.2%) ma: 1.0s ( 2.3x, 5.5%) -- heap -- heap valgrind-new:0.42s no: 2.4s ( 5.8x, -----) me:10.0s (23.7x, -----) ca:13.1s (31.2x, -----) he:11.8s (28.0x, -----) ca:12.0s (28.6x, -----) dr: 8.1s (19.3x, -----) ma: 8.6s (20.5x, -----) heap valgrind-old:0.42s no: 2.4s ( 5.7x, 0.8%) me: 9.6s (22.9x, 3.5%) ca:13.1s (31.2x, 0.0%) he:11.8s (28.1x, -0.4%) ca:12.1s (28.9x, -1.1%) dr: 8.2s (19.5x, -0.9%) ma: 8.6s (20.5x, -0.2%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.42s no: 2.7s ( 6.3x, -----) me:13.9s (33.2x, -----) ca:14.1s (33.6x, -----) he:13.5s (32.2x, -----) ca:13.2s (31.5x, -----) dr: 9.1s (21.7x, -----) ma: 8.7s (20.7x, -----) heap_pdb4 valgrind-old:0.42s no: 2.6s ( 6.3x, 0.4%) me:13.8s (33.0x, 0.6%) ca:14.0s (33.4x, 0.6%) he:13.0s (31.0x, 3.6%) ca:13.1s (31.2x, 0.9%) dr: 9.1s (21.7x, 0.0%) ma: 8.7s (20.8x, -0.1%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (17.7x, -----) me: 2.2s (73.0x, -----) ca: 1.9s (62.3x, -----) he: 1.8s (60.0x, -----) ca: 1.9s (61.7x, -----) dr: 1.5s (50.7x, -----) ma: 1.6s (51.7x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (17.7x, 0.0%) me: 2.2s (72.7x, 0.5%) ca: 1.9s (62.3x, 0.0%) he: 1.8s (60.0x, 0.0%) ca: 1.9s (61.7x, 0.0%) dr: 1.5s (50.7x, 0.0%) ma: 1.6s (51.7x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.7s (10.6x, -----) me: 3.4s (49.0x, -----) ca: 4.7s (66.4x, -----) he: 4.8s (69.1x, -----) ca: 2.9s (41.3x, -----) dr: 2.3s (32.3x, -----) ma: 2.3s (32.4x, -----) many-xpts valgrind-old:0.07s no: 0.8s (10.7x, -1.4%) me: 3.5s (49.4x, -0.9%) ca: 4.7s (66.4x, 0.0%) he: 4.9s (69.6x, -0.6%) ca: 2.9s (41.3x, 0.0%) dr: 2.3s (32.4x, -0.4%) ma: 2.3s (32.3x, 0.4%) -- sarp -- sarp valgrind-new:0.02s no: 0.4s (20.0x, -----) me: 3.2s (158.5x, -----) ca: 2.9s (145.5x, -----) he:11.0s (551.0x, -----) ca: 1.7s (87.0x, -----) dr: 1.0s (51.5x, -----) ma: 0.4s (21.0x, -----) sarp valgrind-old:0.02s no: 0.4s (20.0x, 0.0%) me: 3.1s (157.5x, 0.6%) ca: 2.9s (145.5x, 0.0%) he:11.0s (549.5x, 0.3%) ca: 1.7s (83.5x, 4.0%) dr: 1.1s (53.5x, -3.9%) ma: 0.4s (21.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.28s no: 3.0s (10.6x, -----) me:14.1s (50.5x, -----) ca:17.3s (61.7x, -----) he:19.0s (67.7x, -----) ca:15.7s (55.9x, -----) dr:12.3s (44.1x, -----) ma: 3.8s (13.6x, -----) tinycc valgrind-old:0.28s no: 3.0s (10.6x, 0.0%) me:14.2s (50.9x, -0.8%) ca:17.4s (62.1x, -0.8%) he:19.1s (68.3x, -0.8%) ca:15.7s (56.1x, -0.3%) dr:12.4s (44.3x, -0.4%) ma: 3.8s (13.6x, 0.0%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 53m58.849s user 52m31.488s sys 0m21.468s |
|
From: Tom H. <to...@co...> - 2014-03-20 04:28:00
|
valgrind revision: 13882 VEX revision: 2841 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) GDB: Assembler: GNU assembler version 2.18.50.0.6-2 20080403 C library: GNU C Library stable release version 2.8 uname -mrs: Linux 3.13.3-201.fc20.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2014-03-20 03:51:25 GMT Ended at 2014-03-20 04:27:44 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 645 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: Tom H. <to...@co...> - 2014-03-20 03:51:03
|
valgrind revision: 13882 VEX revision: 2841 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.1-48.fc15) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.13.3-201.fc20.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2014-03-20 03:13:16 GMT Ended at 2014-03-20 03:50:51 GMT 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 == 673 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Tom H. <to...@co...> - 2014-03-20 03:48:21
|
valgrind revision: 13882 VEX revision: 2841 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.50.20110722-16.fc16) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.13.3-201.fc20.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2014-03-20 03:02:52 GMT Ended at 2014-03-20 03:48:03 GMT 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 == 673 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Tom H. <to...@co...> - 2014-03-20 03:32:32
|
valgrind revision: 13882 VEX revision: 2841 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) GDB: GNU gdb (GDB) Fedora (7.4.50.20120120-54.fc17) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.13.3-201.fc20.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2014-03-20 02:51:25 GMT Ended at 2014-03-20 03:32:15 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 673 tests, 4 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) |
|
From: Tom H. <to...@co...> - 2014-03-20 03:20:33
|
valgrind revision: 13882 VEX revision: 2841 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora 7.5.1-42.fc18 Assembler: GNU assembler version 2.23.51.0.1-10.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.13.3-201.fc20.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2014-03-20 02:41:29 GMT Ended at 2014-03-20 03:20:18 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 673 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) |
|
From: Tom H. <to...@co...> - 2014-03-20 03:11:41
|
valgrind revision: 13882 VEX revision: 2841 C compiler: gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7) GDB: GNU gdb (GDB) Fedora 7.6.1-46.fc19 Assembler: GNU assembler version 2.23.52.0.1-9.fc19 20130226 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.13.3-201.fc20.x86_64 x86_64 Vendor version: Fedora release 19 (Schrödingerâs Cat) Nightly build on bristol ( x86_64, Fedora 19 (Schrödingerâs Cat) ) Started at 2014-03-20 02:32:06 GMT Ended at 2014-03-20 03:11:27 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 673 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/dw4 (stderr) exp-sgcheck/tests/hackedbz2 (stderr) |
|
From: Rich C. <rc...@wi...> - 2014-03-20 03:02:34
|
valgrind revision: 13882 VEX revision: 2841 C compiler: gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012] GDB: GNU gdb (GDB) SUSE (7.5.1-2.1.1) Assembler: GNU assembler (GNU Binutils; openSUSE 12.3) 2.23.1 C library: GNU C Library (GNU libc) stable release version 2.17 (git c758a6861537) uname -mrs: Linux 3.7.9-1.1-desktop x86_64 Vendor version: Welcome to openSUSE 12.3 "Dartmouth" Beta 1 - Kernel %r (%t). Nightly build on ultra ( gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012] Linux 3.7.9-1.1-desktop x86_64 ) Started at 2014-03-19 21:30:01 CDT Ended at 2014-03-19 22:02:25 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 == 666 tests, 0 stderr failures, 0 stdout failures, 1 stderrB failure, 0 stdoutB failures, 0 post failures == gdbserver_tests/mssnapshot (stderrB) ================================================= ./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff ================================================= --- mssnapshot.stderrB.exp 2014-03-19 21:47:40.550807940 -0500 +++ mssnapshot.stderrB.out 2014-03-19 21:51:31.781453692 -0500 @@ -1,5 +1,11 @@ relaying data between gdb and process .... +Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2 +Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158" vgdb-error value changed from 0 to 999999 +Missing separate debuginfo for /lib64/libpthread.so.0 +Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef" +Missing separate debuginfo for /lib64/libc.so.6 +Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7" general valgrind monitor commands: help [debug] : monitor command help. With debug: + debugging commands v.wait [<ms>] : sleep <ms> (default 0) then continue ================================================= ./valgrind-old/gdbserver_tests/mssnapshot.stderrB.diff ================================================= --- mssnapshot.stderrB.exp 2014-03-19 21:32:12.141266355 -0500 +++ mssnapshot.stderrB.out 2014-03-19 21:36:46.960764373 -0500 @@ -1,5 +1,11 @@ relaying data between gdb and process .... +Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2 +Try: zypper install -C "debuginfo(build-id)=ecb8ef1a6904a2a3ec60a527f415f520c8636158" vgdb-error value changed from 0 to 999999 +Missing separate debuginfo for /lib64/libpthread.so.0 +Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef" +Missing separate debuginfo for /lib64/libc.so.6 +Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7" general valgrind monitor commands: help [debug] : monitor command help. With debug: + debugging commands v.wait [<ms>] : sleep <ms> (default 0) then continue |
|
From: Rich C. <rc...@wi...> - 2014-03-20 02:34:13
|
valgrind revision: 13882
VEX revision: 2841
C compiler: gcc (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]
GDB: GNU gdb (GDB; openSUSE Factory) 7.6.50.20130731-cvs
Assembler: GNU assembler (GNU Binutils; openSUSE Factory) 2.23.2
C library: GNU C Library (GNU libc) stable release version 2.18 (git )
uname -mrs: Linux 3.11.4-3-desktop x86_64
Vendor version: Welcome to openSUSE 13.1 "Bottle" Beta 1 - Kernel %r (%t).
Nightly build on rodan ( Linux 3.11.4-3-desktop x86_64 )
Started at 2014-03-19 19:22:01 CDT
Ended at 2014-03-19 21:34:01 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
== 588 tests, 6 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
memcheck/tests/dw4 (stderr)
memcheck/tests/err_disable3 (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/threadname (stderr)
memcheck/tests/threadname_xml (stderr)
exp-sgcheck/tests/hackedbz2 (stderr)
=================================================
./valgrind-new/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-03-19 20:32:38.926452748 -0500
+++ hackedbz2.stderr.out 2014-03-19 21:32:43.439266729 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-new/memcheck/tests/dw4.stderr.diff
=================================================
--- dw4.stderr.exp 2014-03-19 20:32:53.995627557 -0500
+++ dw4.stderr.out 2014-03-19 20:50:59.072214937 -0500
@@ -1,3 +1,11 @@
+
+parse_type_DIE: confused by:
+ <1><492>: DW_TAG_structure_type
+ DW_AT_signature : 8 byte signature: 9b d0 55 13 bb 1e e9 37
+
+WARNING: Serious error when reading debug info
+When reading debug info from /usr/local/src/valgrind/nightly/valgrind-new/memcheck/tests/dw4:
+parse_type_DIE: confused by the above DIE
Uninitialised byte(s) found during client check request
at 0x........: croak (dw4.c:27)
by 0x........: main (dw4.c:49)
@@ -8,12 +16,10 @@
Uninitialised byte(s) found during client check request
at 0x........: croak (dw4.c:27)
by 0x........: main (dw4.c:51)
- Location 0x........ is 0 bytes inside S2[0].i,
- a global variable declared at dw4.c:42
+ Address 0x........ is 4 bytes inside data symbol "S2"
Uninitialised byte(s) found during client check request
at 0x........: croak (dw4.c:27)
by 0x........: main (dw4.c:52)
- Location 0x........ is 0 bytes inside local.i,
- declared at dw4.c:46, in frame #1 of thread 1
+ Address 0x........ is on thread 1's stack
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-03-19 20:32:48.057558673 -0500
+++ err_disable3.stderr.out 2014-03-19 20:51:05.834293380 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-new/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-03-19 20:32:53.865626049 -0500
+++ err_disable4.stderr.out 2014-03-19 20:51:10.201344040 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-new/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-03-19 20:32:47.742555019 -0500
+++ threadname.stderr.out 2014-03-19 20:56:55.284347159 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-new/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-03-19 20:32:45.483528813 -0500
+++ threadname_xml.stderr.out 2014-03-19 20:56:57.310370662 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
=================================================
./valgrind-old/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-03-19 19:23:08.731076593 -0500
+++ hackedbz2.stderr.out 2014-03-19 20:30:02.265635412 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-old/memcheck/tests/dw4.stderr.diff
=================================================
--- dw4.stderr.exp 2014-03-19 19:24:17.338872475 -0500
+++ dw4.stderr.out 2014-03-19 19:48:21.693627644 -0500
@@ -1,3 +1,11 @@
+
+parse_type_DIE: confused by:
+ <1><492>: DW_TAG_structure_type
+ DW_AT_signature : 8 byte signature: 9b d0 55 13 bb 1e e9 37
+
+WARNING: Serious error when reading debug info
+When reading debug info from /usr/local/src/valgrind/nightly/valgrind-old/memcheck/tests/dw4:
+parse_type_DIE: confused by the above DIE
Uninitialised byte(s) found during client check request
at 0x........: croak (dw4.c:27)
by 0x........: main (dw4.c:49)
@@ -8,12 +16,10 @@
Uninitialised byte(s) found during client check request
at 0x........: croak (dw4.c:27)
by 0x........: main (dw4.c:51)
- Location 0x........ is 0 bytes inside S2[0].i,
- a global variable declared at dw4.c:42
+ Address 0x........ is 4 bytes inside data symbol "S2"
Uninitialised byte(s) found during client check request
at 0x........: croak (dw4.c:27)
by 0x........: main (dw4.c:52)
- Location 0x........ is 0 bytes inside local.i,
- declared at dw4.c:46, in frame #1 of thread 1
+ Address 0x........ is on thread 1's stack
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-03-19 19:24:08.463769520 -0500
+++ err_disable3.stderr.out 2014-03-19 19:48:28.458706122 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-old/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2014-03-19 19:24:22.722934932 -0500
+++ err_disable4.stderr.out 2014-03-19 19:48:32.731755691 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
=================================================
./valgrind-old/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-03-19 19:23:38.889426444 -0500
+++ threadname.stderr.out 2014-03-19 19:54:19.411777337 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-old/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-03-19 19:24:01.084683919 -0500
+++ threadname_xml.stderr.out 2014-03-19 19:54:21.458801083 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
|