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
(17) |
2
(10) |
3
(5) |
|
4
(12) |
5
(12) |
6
(15) |
7
(17) |
8
(13) |
9
(18) |
10
(10) |
|
11
|
12
(2) |
13
(20) |
14
(16) |
15
(17) |
16
(19) |
17
(17) |
|
18
(14) |
19
(12) |
20
|
21
(5) |
22
(12) |
23
(10) |
24
(1) |
|
25
|
26
(2) |
27
|
28
(2) |
29
|
30
(1) |
31
(2) |
|
From: <sv...@va...> - 2014-05-14 23:38:35
|
Author: sewardj
Date: Wed May 14 23:38:23 2014
New Revision: 2861
Log:
Implement VFPv4 VFMA and VFMS (F32 and F64 versions). Fixes #331057.
Patch from Janne Hellsten (jjh...@gm...) with algebraic
rearrangement for the VFMS cases so as to make result signs match with
the hardware when some of the inputs are infinities.
Modified:
trunk/priv/guest_arm_toIR.c
Modified: trunk/priv/guest_arm_toIR.c
==============================================================================
--- trunk/priv/guest_arm_toIR.c (original)
+++ trunk/priv/guest_arm_toIR.c Wed May 14 23:38:23 2014
@@ -13527,6 +13527,27 @@
condT);
DIP("fdivd%s d%u, d%u, d%u\n", nCC(conq), dD, dN, dM);
goto decode_success_vfp;
+ case BITS4(1,1,0,0): /* VFMA: d + n * m (fused) */
+ /* XXXROUNDINGFIXME look up ARM reference for fused
+ multiply-add rounding */
+ putDReg(dD, triop(Iop_AddF64, rm,
+ getDReg(dD),
+ triop(Iop_MulF64, rm, getDReg(dN),
+ getDReg(dM))),
+ condT);
+ DIP("vfmad%s d%u, d%u, d%u\n", nCC(conq), dD, dN, dM);
+ goto decode_success_vfp;
+ case BITS4(1,1,0,1): /* VFMS: d + (-n * m) (fused) */
+ /* XXXROUNDINGFIXME look up ARM reference for fused
+ multiply-add rounding */
+ putDReg(dD, triop(Iop_AddF64, rm,
+ getDReg(dD),
+ triop(Iop_MulF64, rm,
+ unop(Iop_NegF64, getDReg(dN)),
+ getDReg(dM))),
+ condT);
+ DIP("vfmsd%s d%u, d%u, d%u\n", nCC(conq), dD, dN, dM);
+ goto decode_success_vfp;
default:
break;
}
@@ -13991,6 +14012,27 @@
condT);
DIP("fdivs%s s%u, s%u, s%u\n", nCC(conq), fD, fN, fM);
goto decode_success_vfp;
+ case BITS4(1,1,0,0): /* VFMA: d + n * m (fused) */
+ /* XXXROUNDINGFIXME look up ARM reference for fused
+ multiply-add rounding */
+ putFReg(fD, triop(Iop_AddF32, rm,
+ getFReg(fD),
+ triop(Iop_MulF32, rm, getFReg(fN),
+ getFReg(fM))),
+ condT);
+ DIP("vfmas%s s%u, s%u, s%u\n", nCC(conq), fD, fN, fM);
+ goto decode_success_vfp;
+ case BITS4(1,1,0,1): /* VFMS: d + (-n * m) (fused) */
+ /* XXXROUNDINGFIXME look up ARM reference for fused
+ multiply-add rounding */
+ putFReg(fD, triop(Iop_AddF32, rm,
+ getFReg(fD),
+ triop(Iop_MulF32, rm,
+ unop(Iop_NegF32, getFReg(fN)),
+ getFReg(fM))),
+ condT);
+ DIP("vfmss%s s%u, s%u, s%u\n", nCC(conq), fD, fN, fM);
+ goto decode_success_vfp;
default:
break;
}
|
|
From: <sv...@va...> - 2014-05-14 21:53:56
|
Author: philippe
Date: Wed May 14 21:53:48 2014
New Revision: 13966
Log:
minor comment reformatting
Modified:
trunk/include/pub_tool_addrinfo.h
Modified: trunk/include/pub_tool_addrinfo.h
==============================================================================
--- trunk/include/pub_tool_addrinfo.h (original)
+++ trunk/include/pub_tool_addrinfo.h Wed May 14 21:53:48 2014
@@ -47,8 +47,8 @@
// Block_ClientArenaMallocd and Block_ClientArenaFree are used when the tool
// replaces the malloc/free/... functions but does not maintain detailed
// information about Client allocated heap blocks.
-// Block_ValgrindArenaMallocd and Block_ValgrindArenaFree are used for heap blocks
-// of Valgrind internal heap.
+// Block_ValgrindArenaMallocd and Block_ValgrindArenaFree are used for heap
+// blocks of Valgrind internal heap.
typedef enum {
Block_Mallocd = 111,
Block_Freed,
@@ -90,11 +90,11 @@
ThreadId tid; // Which thread's stack?
} Stack;
- // This covers heap blocks (normal and from mempools), user-defined blocks,
- // and Arena blocks.
+ // This covers heap blocks (normal and from mempools), user-defined
+ // blocks and Arena blocks.
struct {
BlockKind block_kind;
- const HChar* block_desc; // "block", "mempool" or user-defined or arena
+ const HChar* block_desc; // "block","mempool","user-defined",arena
SizeT block_szB;
PtrdiffT rwoffset;
ExeContext* allocated_at; // might be null_ExeContext.
|
Author: philippe
Date: Wed May 14 20:39:27 2014
New Revision: 13965
Log:
Factorises the address code description and printing
of memcheck and helgrind in a common module:
pub_tool_addrinfo.h pub_core_addrinfo.h m_addrinfo.c
At the same time, the factorised code is made usable by other
tools also (and is used by the gdbserver command 'v.info location'
which replaces the helgrind 'describe addr' introduced 1 week ago
and which is now callable by all tools).
The new address description code can describe more addresses
(e.g. for memcheck, if the block is not on the free list anymore,
but is in an arena free list, this will also be described).
Similarly, helgrind address description can now describe more addresses
when --read-var-info=no is given (e.g. global symbols are
described, or addresses on the stack are described as
being on the stack, freed blocks in the arena free list are
described, ...).
See e.g. the change in helgrind/tests/annotate_rwlock.stderr.exp
or locked_vs_unlocked2.stderr.exp
The patch touches many files, but is basically a lot of improvements
in helgrind output files.
The code changes are mostly refactorisation of existing code.
Added:
trunk/coregrind/m_addrinfo.c
trunk/coregrind/pub_core_addrinfo.h
trunk/gdbserver_tests/filter_helgrind_monitor (with props)
trunk/gdbserver_tests/hginfo.stderr.exp
trunk/gdbserver_tests/hginfo.stderrB.exp
trunk/gdbserver_tests/hginfo.stdinB.gdb
trunk/gdbserver_tests/hginfo.stdoutB.exp
trunk/gdbserver_tests/hginfo.vgtest
trunk/include/pub_tool_addrinfo.h
Modified:
trunk/NEWS
trunk/coregrind/Makefile.am
trunk/coregrind/m_gdbserver/m_gdbserver.c
trunk/coregrind/m_gdbserver/server.c
trunk/coregrind/m_libcprint.c
trunk/coregrind/m_mallocfree.c
trunk/coregrind/m_tooliface.c
trunk/coregrind/pub_core_mallocfree.h
trunk/coregrind/pub_core_tooliface.h
trunk/docs/xml/manual-core-adv.xml
trunk/gdbserver_tests/Makefile.am
trunk/gdbserver_tests/mchelp.stdoutB.exp
trunk/gdbserver_tests/mssnapshot.stderrB.exp
trunk/gdbserver_tests/mssnapshot.vgtest
trunk/helgrind/docs/hg-manual.xml
trunk/helgrind/hg_addrdescr.c
trunk/helgrind/hg_addrdescr.h
trunk/helgrind/hg_errors.c
trunk/helgrind/hg_main.c
trunk/helgrind/tests/annotate_rwlock.stderr.exp
trunk/helgrind/tests/free_is_write.stderr.exp
trunk/helgrind/tests/hg01_all_ok.c
trunk/helgrind/tests/hg03_inherit.stderr.exp
trunk/helgrind/tests/hg04_race.stderr.exp
trunk/helgrind/tests/hg05_race2.stderr.exp
trunk/helgrind/tests/locked_vs_unlocked1_fwd.stderr.exp
trunk/helgrind/tests/locked_vs_unlocked1_rev.stderr.exp
trunk/helgrind/tests/locked_vs_unlocked2.stderr.exp
trunk/helgrind/tests/locked_vs_unlocked3.stderr.exp
trunk/helgrind/tests/pth_barrier1.stderr.exp
trunk/helgrind/tests/pth_barrier2.stderr.exp
trunk/helgrind/tests/pth_barrier3.stderr.exp
trunk/helgrind/tests/pth_cond_destroy_busy.stderr.exp
trunk/helgrind/tests/rwlock_race.stderr.exp
trunk/helgrind/tests/tc01_simple_race.stderr.exp
trunk/helgrind/tests/tc05_simple_race.stderr.exp
trunk/helgrind/tests/tc06_two_races.stderr.exp
trunk/helgrind/tests/tc16_byterace.stderr.exp
trunk/helgrind/tests/tc19_shadowmem.stderr.exp
trunk/helgrind/tests/tc20_verifywrap.stderr.exp
trunk/helgrind/tests/tc21_pthonce.stderr.exp
trunk/include/Makefile.am
trunk/include/pub_tool_gdbserver.h
trunk/include/pub_tool_libcprint.h
trunk/include/pub_tool_tooliface.h
trunk/memcheck/mc_errors.c
trunk/memcheck/mc_main.c
trunk/memcheck/tests/big_blocks_freed_list.c
trunk/memcheck/tests/big_blocks_freed_list.stderr.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed May 14 20:39:27 2014
@@ -15,8 +15,6 @@
VALGRIND_ENABLE_ADDR_ERROR_REPORTING_IN_RANGE
* Helgrind:
- - Helgrind GDB server monitor command 'describe <address>'
- allowing to describe an address (e.g. where it was allocated).
- Helgrind GDB server monitor command 'info locks' giving
the list of locks, their location, and their status.
@@ -28,6 +26,12 @@
* New and modified GDB server monitor features:
+ - The GDB server monitor command 'v.info location <address>'
+ outputs information about an address. The information produced depends
+ on the tool and on the options given to valgrind.
+ Possibly, the following are described: global variables, local (stack)
+ variables, allocated or freed blocks, ...
+
- The option "--vgdb-stop-at=event1,event2,..." allows the user
to ask GDB server to stop before program execution, at the end
of the program execution and on Valgrind internal errors.
Modified: trunk/coregrind/Makefile.am
==============================================================================
--- trunk/coregrind/Makefile.am (original)
+++ trunk/coregrind/Makefile.am Wed May 14 20:39:27 2014
@@ -158,6 +158,7 @@
#----------------------------------------------------------------------------
noinst_HEADERS = \
+ pub_core_addrinfo.h \
pub_core_aspacehl.h \
pub_core_aspacemgr.h \
pub_core_basics.h \
@@ -271,6 +272,7 @@
endif
COREGRIND_SOURCES_COMMON = \
+ m_addrinfo.c \
m_cache.c \
m_commandline.c \
m_clientstate.c \
Added: trunk/coregrind/m_addrinfo.c
==============================================================================
--- trunk/coregrind/m_addrinfo.c (added)
+++ trunk/coregrind/m_addrinfo.c Wed May 14 20:39:27 2014
@@ -0,0 +1,354 @@
+
+/*--------------------------------------------------------------------*/
+/*--- Obtaining information about an address. ---*/
+/*--- m_addrinfo.c ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+ This file is part of Valgrind, a dynamic binary instrumentation
+ framework.
+
+ Copyright (C) 2008-2013 OpenWorks Ltd
+ in...@op...
+
+ 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.
+*/
+
+#include "pub_core_basics.h"
+#include "pub_core_libcassert.h"
+#include "pub_core_libcbase.h"
+#include "pub_core_libcprint.h"
+#include "pub_core_xarray.h"
+#include "pub_core_debuginfo.h"
+#include "pub_core_execontext.h"
+#include "pub_core_addrinfo.h"
+#include "pub_core_mallocfree.h"
+#include "pub_core_machine.h"
+#include "pub_core_options.h"
+
+void VG_(describe_addr) ( Addr a, /*OUT*/AddrInfo* ai )
+{
+ ThreadId tid;
+ Addr stack_min, stack_max;
+ VgSectKind sect;
+
+ /* -- Perhaps the variable type/location data describes it? -- */
+ ai->Addr.Variable.descr1
+ = VG_(newXA)( VG_(malloc), "mc.da.descr1",
+ VG_(free), sizeof(HChar) );
+ ai->Addr.Variable.descr2
+ = VG_(newXA)( VG_(malloc), "mc.da.descr2",
+ VG_(free), sizeof(HChar) );
+
+ (void) VG_(get_data_description)( ai->Addr.Variable.descr1,
+ ai->Addr.Variable.descr2, a );
+ /* If there's nothing in descr1/2, free them. Why is it safe to to
+ VG_(indexXA) at zero here? Because VG_(get_data_description)
+ guarantees to zero terminate descr1/2 regardless of the outcome
+ of the call. So there's always at least one element in each XA
+ after the call.
+ */
+ if (0 == VG_(strlen)( VG_(indexXA)( ai->Addr.Variable.descr1, 0 ))) {
+ VG_(deleteXA)( ai->Addr.Variable.descr1 );
+ ai->Addr.Variable.descr1 = NULL;
+ }
+ if (0 == VG_(strlen)( VG_(indexXA)( ai->Addr.Variable.descr2, 0 ))) {
+ VG_(deleteXA)( ai->Addr.Variable.descr2 );
+ ai->Addr.Variable.descr2 = NULL;
+ }
+ /* Assume (assert) that VG_(get_data_description) fills in descr1
+ before it fills in descr2 */
+ if (ai->Addr.Variable.descr1 == NULL)
+ vg_assert(ai->Addr.Variable.descr2 == NULL);
+ /* So did we get lucky? */
+ if (ai->Addr.Variable.descr1 != NULL) {
+ ai->tag = Addr_Variable;
+ return;
+ }
+ /* -- Have a look at the low level data symbols - perhaps it's in
+ there. -- */
+ VG_(memset)( &ai->Addr.DataSym.name,
+ 0, sizeof(ai->Addr.DataSym.name));
+ if (VG_(get_datasym_and_offset)(
+ a, &ai->Addr.DataSym.name[0],
+ sizeof(ai->Addr.DataSym.name)-1,
+ &ai->Addr.DataSym.offset )) {
+ ai->tag = Addr_DataSym;
+ vg_assert( ai->Addr.DataSym.name
+ [ sizeof(ai->Addr.DataSym.name)-1 ] == 0);
+ return;
+ }
+ /* -- Perhaps it's on a thread's stack? -- */
+ VG_(thread_stack_reset_iter)(&tid);
+ while ( VG_(thread_stack_next)(&tid, &stack_min, &stack_max) ) {
+ if (stack_min - VG_STACK_REDZONE_SZB <= a && a <= stack_max) {
+ ai->tag = Addr_Stack;
+ ai->Addr.Stack.tid = tid;
+ return;
+ }
+ }
+
+ /* -- Maybe it is in one of the m_mallocfree.c arenas. -- */
+ {
+ AddrArenaInfo aai;
+ VG_(describe_arena_addr) ( a, &aai );
+ if (aai.name != NULL) {
+ ai->tag = Addr_Block;
+ if (aai.aid == VG_AR_CLIENT)
+ ai->Addr.Block.block_kind
+ = aai.free ? Block_ClientArenaFree : Block_ClientArenaMallocd;
+ else
+ ai->Addr.Block.block_kind
+ = aai.free
+ ? Block_ValgrindArenaFree : Block_ValgrindArenaMallocd;
+ ai->Addr.Block.block_desc = aai.name;
+ ai->Addr.Block.block_szB = aai.block_szB;
+ ai->Addr.Block.rwoffset = aai.rwoffset;
+ ai->Addr.Block.allocated_at = VG_(null_ExeContext)();
+ ai->Addr.Block.freed_at = VG_(null_ExeContext)();
+ return;
+ }
+ }
+
+ /* -- last ditch attempt at classification -- */
+ vg_assert( sizeof(ai->Addr.SectKind.objname) > 4 );
+ VG_(memset)( &ai->Addr.SectKind.objname,
+ 0, sizeof(ai->Addr.SectKind.objname));
+ VG_(strcpy)( ai->Addr.SectKind.objname, "???" );
+ sect = VG_(DebugInfo_sect_kind)( &ai->Addr.SectKind.objname[0],
+ sizeof(ai->Addr.SectKind.objname)-1, a);
+ if (sect != Vg_SectUnknown) {
+ ai->tag = Addr_SectKind;
+ ai->Addr.SectKind.kind = sect;
+ vg_assert( ai->Addr.SectKind.objname
+ [ sizeof(ai->Addr.SectKind.objname)-1 ] == 0);
+ return;
+ }
+ /* -- Clueless ... -- */
+ ai->tag = Addr_Unknown;
+ return;
+}
+
+void VG_(clear_addrinfo) ( AddrInfo* ai)
+{
+ switch (ai->tag) {
+ case Addr_Unknown:
+ break;
+
+ case Addr_Stack:
+ break;
+
+ case Addr_Block:
+ break;
+
+ case Addr_DataSym:
+ break;
+
+ case Addr_Variable:
+ if (ai->Addr.Variable.descr1 != NULL) {
+ VG_(deleteXA)( ai->Addr.Variable.descr1 );
+ ai->Addr.Variable.descr1 = NULL;
+ }
+ if (ai->Addr.Variable.descr2 != NULL) {
+ VG_(deleteXA)( ai->Addr.Variable.descr2 );
+ ai->Addr.Variable.descr2 = NULL;
+ }
+ break;
+
+ case Addr_SectKind:
+ break;
+
+ default:
+ VG_(core_panic)("VG_(clear_addrinfo)");
+ }
+
+ ai->tag = Addr_Undescribed;
+}
+
+static Bool is_arena_BlockKind(BlockKind bk)
+{
+ switch (bk) {
+ case Block_Mallocd:
+ case Block_Freed:
+ case Block_MempoolChunk:
+ case Block_UserG: return False;
+
+ case Block_ClientArenaMallocd:
+ case Block_ClientArenaFree:
+ case Block_ValgrindArenaMallocd:
+ case Block_ValgrindArenaFree: return True;
+
+ default: vg_assert (0);
+ }
+}
+
+static void pp_addrinfo_WRK ( Addr a, AddrInfo* ai, Bool mc, Bool maybe_gcc )
+{
+ const HChar* xpre = VG_(clo_xml) ? " <auxwhat>" : " ";
+ const HChar* xpost = VG_(clo_xml) ? "</auxwhat>" : "";
+
+ vg_assert (!maybe_gcc || mc); // maybe_gcc can only be given in mc mode.
+
+ switch (ai->tag) {
+ case Addr_Unknown:
+ if (maybe_gcc) {
+ VG_(emit)( "%sAddress 0x%llx is just below the stack ptr. "
+ "To suppress, use: --workaround-gcc296-bugs=yes%s\n",
+ xpre, (ULong)a, xpost );
+ } else {
+ VG_(emit)( "%sAddress 0x%llx "
+ "is not stack'd, malloc'd or %s%s\n",
+ xpre,
+ (ULong)a,
+ mc ? "(recently) free'd" : "on a free list",
+ xpost );
+ }
+ break;
+
+ case Addr_Stack:
+ VG_(emit)( "%sAddress 0x%llx is on thread %d's stack%s\n",
+ xpre, (ULong)a, ai->Addr.Stack.tid, xpost );
+ break;
+
+ case Addr_Block: {
+ SizeT block_szB = ai->Addr.Block.block_szB;
+ PtrdiffT rwoffset = ai->Addr.Block.rwoffset;
+ SizeT delta;
+ const HChar* relative;
+
+ if (rwoffset < 0) {
+ delta = (SizeT)(-rwoffset);
+ relative = "before";
+ } else if (rwoffset >= block_szB) {
+ delta = rwoffset - block_szB;
+ relative = "after";
+ } else {
+ delta = rwoffset;
+ relative = "inside";
+ }
+ if (is_arena_BlockKind (ai->Addr.Block.block_kind))
+ VG_(emit)(
+ "%sAddress 0x%lx is %'lu bytes %s a%s block of size %'lu"
+ " in arena \"%s\"%s\n",
+ xpre,
+ a, delta,
+ relative,
+ ai->Addr.Block.block_kind==Block_ClientArenaMallocd
+ || ai->Addr.Block.block_kind==Block_ValgrindArenaMallocd
+ ? "" : "n unallocated",
+ block_szB,
+ ai->Addr.Block.block_desc, // arena name
+ xpost
+ );
+ else
+ VG_(emit)(
+ "%sAddress 0x%lx is %'lu bytes %s a %s of size %'lu %s%s\n",
+ xpre,
+ a, delta,
+ relative,
+ ai->Addr.Block.block_desc,
+ block_szB,
+ ai->Addr.Block.block_kind==Block_Mallocd ? "alloc'd"
+ : ai->Addr.Block.block_kind==Block_Freed ? "free'd"
+ : "client-defined",
+ xpost
+ );
+ if (ai->Addr.Block.block_kind==Block_Mallocd) {
+ VG_(pp_ExeContext)(ai->Addr.Block.allocated_at);
+ tl_assert (ai->Addr.Block.freed_at == VG_(null_ExeContext)());
+ }
+ else if (ai->Addr.Block.block_kind==Block_Freed) {
+ VG_(pp_ExeContext)(ai->Addr.Block.freed_at);
+ if (ai->Addr.Block.allocated_at != VG_(null_ExeContext)()) {
+ VG_(emit)(
+ "%s block was alloc'd at%s\n",
+ xpre,
+ xpost
+ );
+ VG_(pp_ExeContext)(ai->Addr.Block.allocated_at);
+ }
+ }
+ else if (ai->Addr.Block.block_kind==Block_MempoolChunk
+ || ai->Addr.Block.block_kind==Block_UserG) {
+ // client-defined
+ VG_(pp_ExeContext)(ai->Addr.Block.allocated_at);
+ tl_assert (ai->Addr.Block.freed_at == VG_(null_ExeContext)());
+ /* Nb: cannot have a freed_at, as a freed client-defined block
+ has a Block_Freed block_kind. */
+ } else {
+ // Client or Valgrind arena. At least currently, we never
+ // have stacktraces for these.
+ tl_assert (ai->Addr.Block.allocated_at == VG_(null_ExeContext)());
+ tl_assert (ai->Addr.Block.freed_at == VG_(null_ExeContext)());
+ }
+
+ break;
+ }
+
+ case Addr_DataSym:
+ VG_(emit)( "%sAddress 0x%llx is %llu bytes "
+ "inside data symbol \"%pS\"%s\n",
+ xpre,
+ (ULong)a,
+ (ULong)ai->Addr.DataSym.offset,
+ ai->Addr.DataSym.name,
+ xpost );
+ break;
+
+ case Addr_Variable:
+ /* Note, no need for XML tags here, because descr1/2 will
+ already have <auxwhat> or <xauxwhat>s on them, in XML
+ mode. */
+ if (ai->Addr.Variable.descr1)
+ VG_(emit)( "%s%s\n",
+ VG_(clo_xml) ? " " : " ",
+ (HChar*)VG_(indexXA)(ai->Addr.Variable.descr1, 0) );
+ if (ai->Addr.Variable.descr2)
+ VG_(emit)( "%s%s\n",
+ VG_(clo_xml) ? " " : " ",
+ (HChar*)VG_(indexXA)(ai->Addr.Variable.descr2, 0) );
+ break;
+
+ case Addr_SectKind:
+ VG_(emit)( "%sAddress 0x%llx is in the %pS segment of %pS%s\n",
+ xpre,
+ (ULong)a,
+ VG_(pp_SectKind)(ai->Addr.SectKind.kind),
+ ai->Addr.SectKind.objname,
+ xpost );
+ break;
+
+ default:
+ VG_(tool_panic)("mc_pp_AddrInfo");
+ }
+}
+
+void VG_(pp_addrinfo) ( Addr a, AddrInfo* ai )
+{
+ pp_addrinfo_WRK (a, ai, False /*mc*/, False /*maybe_gcc*/);
+}
+
+void VG_(pp_addrinfo_mc) ( Addr a, AddrInfo* ai, Bool maybe_gcc )
+{
+ pp_addrinfo_WRK (a, ai, True /*mc*/, maybe_gcc);
+}
+
+
+/*--------------------------------------------------------------------*/
+/*--- end m_addrinfo.c ---*/
+/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/m_gdbserver/m_gdbserver.c
==============================================================================
--- trunk/coregrind/m_gdbserver/m_gdbserver.c (original)
+++ trunk/coregrind/m_gdbserver/m_gdbserver.c Wed May 14 20:39:27 2014
@@ -1404,7 +1404,7 @@
return False;
}
-void VG_(strtok_get_address_and_size) (Addr* address,
+Bool VG_(strtok_get_address_and_size) (Addr* address,
SizeT* szB,
HChar **ssaveptr)
{
@@ -1419,7 +1419,7 @@
VG_(gdb_printf) ("missing or malformed address\n");
*address = (Addr) 0;
*szB = 0;
- return;
+ return False;
}
ws = VG_(strtok_r) (NULL, " ", ssaveptr);
if (ws == NULL) {
@@ -1451,8 +1451,9 @@
"hex 0x..... or dec ...... or binary .....b\n");
*address = (Addr) 0;
*szB = 0;
- return;
+ return False;
}
+ return True;
}
void VG_(gdbserver_status_output)(void)
Modified: trunk/coregrind/m_gdbserver/server.c
==============================================================================
--- trunk/coregrind/m_gdbserver/server.c (original)
+++ trunk/coregrind/m_gdbserver/server.c Wed May 14 20:39:27 2014
@@ -31,6 +31,8 @@
#include "pub_core_syswrap.h" // VG_(show_open_fds)
#include "pub_core_scheduler.h"
#include "pub_core_transtab.h"
+#include "pub_core_debuginfo.h"
+#include "pub_core_addrinfo.h"
unsigned long cont_thread;
unsigned long general_thread;
@@ -224,6 +226,7 @@
" v.wait [<ms>] : sleep <ms> (default 0) then continue\n"
" v.info all_errors : show all errors found so far\n"
" v.info last_error : show last error found\n"
+" v.info location <addr> : show information about location <addr>\n"
" v.info n_errs_found [msg] : show the nr of errors found so far and the given msg\n"
" v.info open_fds : show open file descriptors (only if --track-fds=yes)\n"
" v.kill : kill the Valgrind process\n"
@@ -341,7 +344,7 @@
wcmd = strtok_r (NULL, " ", &ssaveptr);
switch (kwdid = VG_(keyword_id)
("all_errors n_errs_found last_error gdbserver_status memory"
- " scheduler stats open_fds exectxt",
+ " scheduler stats open_fds exectxt location",
wcmd, kwd_report_all)) {
case -2:
case -1:
@@ -407,6 +410,31 @@
VG_(print_ExeContext_stats) (True /* with_stacktraces */);
ret = 1;
break;
+ case 9: { /* location */
+ /* Note: we prefer 'v.info location' and not 'v.info address' as
+ v.info address is inconsistent with the GDB (native)
+ command 'info address' which gives the address for a symbol.
+ GDB equivalent command of 'v.info location' is 'info symbol'. */
+ Addr address;
+ SizeT dummy_sz = 0x1234;
+ if (VG_(strtok_get_address_and_size) (&address, &dummy_sz, &ssaveptr)) {
+ // If tool provides location information, use that.
+ if (VG_(needs).info_location) {
+ VG_TDICT_CALL(tool_info_location, address);
+ }
+ // If tool does not provide location information, use the common one.
+ // Also use the common to compare with tool when debug log is set.
+ if (!VG_(needs).info_location || VG_(debugLog_getLevel)() > 0 ) {
+ AddrInfo ai;
+ ai.tag = Addr_Undescribed;
+ VG_(describe_addr) (address, &ai);
+ VG_(pp_addrinfo) (address, &ai);
+ VG_(clear_addrinfo) (&ai);
+ }
+ }
+ ret = 1;
+ break;
+ }
default:
vg_assert(0);
}
@@ -431,8 +459,7 @@
ret = 1;
- VG_(strtok_get_address_and_size) (&address, &verbosity, &ssaveptr);
- if (address != (Addr) 0 || verbosity != 0) {
+ if (VG_(strtok_get_address_and_size) (&address, &verbosity, &ssaveptr)) {
/* we need to force the output to log for the translation trace,
as low level VEX tracing cannot be redirected to gdb. */
int saved_command_output_to_log = command_output_to_log;
Modified: trunk/coregrind/m_libcprint.c
==============================================================================
--- trunk/coregrind/m_libcprint.c (original)
+++ trunk/coregrind/m_libcprint.c Wed May 14 20:39:27 2014
@@ -168,6 +168,25 @@
return ret;
}
+static UInt emit_WRK ( const HChar* format, va_list vargs )
+{
+ if (VG_(clo_xml)) {
+ return VG_(vprintf_xml)(format, vargs);
+ } else if (VG_(log_output_sink).fd == -2) {
+ return VG_(vprintf) (format, vargs);
+ } else {
+ return VG_(vmessage)(Vg_UserMsg, format, vargs);
+ }
+}
+UInt VG_(emit) ( const HChar* format, ... )
+{
+ UInt ret;
+ va_list vargs;
+ va_start(vargs, format);
+ ret = emit_WRK(format, vargs);
+ va_end(vargs);
+ return ret;
+}
/* --------- sprintf --------- */
Modified: trunk/coregrind/m_mallocfree.c
==============================================================================
--- trunk/coregrind/m_mallocfree.c (original)
+++ trunk/coregrind/m_mallocfree.c Wed May 14 20:39:27 2014
@@ -943,6 +943,33 @@
}
+// Find the superblock containing the given address.
+// If superblock not found, return NULL.
+static
+Superblock* maybe_findSb ( Arena* a, Addr ad )
+{
+ SizeT min = 0;
+ SizeT max = a->sblocks_used;
+
+ while (min <= max) {
+ Superblock * sb;
+ SizeT pos = min + (max - min)/2;
+ if (pos < 0 || pos >= a->sblocks_used)
+ return NULL;
+ sb = a->sblocks[pos];
+ if ((Addr)&sb->payload_bytes[0] <= ad
+ && ad < (Addr)&sb->payload_bytes[sb->n_payload_bytes]) {
+ return sb;
+ } else if ((Addr)&sb->payload_bytes[0] <= ad) {
+ min = pos + 1;
+ } else {
+ max = pos - 1;
+ }
+ }
+ return NULL;
+}
+
+
/*------------------------------------------------------------*/
/*--- Functions for working with freelists. ---*/
/*------------------------------------------------------------*/
@@ -1413,6 +1440,43 @@
}
}
+void VG_(describe_arena_addr) ( Addr a, AddrArenaInfo* aai )
+{
+ UInt i;
+ Superblock *sb;
+ Arena *arena;
+
+ for (i = 0; i < VG_N_ARENAS; i++) {
+ if (i == VG_AR_CLIENT && !client_inited)
+ continue;
+ arena = arenaId_to_ArenaP(i);
+ sb = maybe_findSb( arena, a );
+ if (sb != NULL) {
+ Word j;
+ SizeT b_bszB;
+ Block *b = NULL;
+
+ aai->aid = i;
+ aai->name = arena->name;
+ for (j = 0; j < sb->n_payload_bytes; j += mk_plain_bszB(b_bszB)) {
+ b = (Block*)&sb->payload_bytes[j];
+ b_bszB = get_bszB_as_is(b);
+ if (a < (Addr)b + mk_plain_bszB(b_bszB))
+ break;
+ }
+ vg_assert (b);
+ aai->block_szB = get_pszB(arena, b);
+ aai->rwoffset = a - (Addr)get_block_payload(arena, b);
+ aai->free = !is_inuse_block(b);
+ return;
+ }
+ }
+ aai->aid = 0;
+ aai->name = NULL;
+ aai->block_szB = 0;
+ aai->rwoffset = 0;
+ aai->free = False;
+}
/*------------------------------------------------------------*/
/*--- Creating and deleting blocks. ---*/
Modified: trunk/coregrind/m_tooliface.c
==============================================================================
--- trunk/coregrind/m_tooliface.c (original)
+++ trunk/coregrind/m_tooliface.c Wed May 14 20:39:27 2014
@@ -93,6 +93,7 @@
.syscall_wrapper = False,
.sanity_checks = False,
.print_stats = False,
+ .info_location = False,
.var_info = False,
.malloc_replacement = False,
.xml_output = False,
@@ -303,6 +304,14 @@
VG_(tdict).tool_print_stats = print_stats;
}
+void VG_(needs_info_location) (
+ void (*info_location)(Addr)
+)
+{
+ VG_(needs).info_location = True;
+ VG_(tdict).tool_info_location = info_location;
+}
+
void VG_(needs_malloc_replacement)(
void* (*malloc) ( ThreadId, SizeT ),
void* (*__builtin_new) ( ThreadId, SizeT ),
Added: trunk/coregrind/pub_core_addrinfo.h
==============================================================================
--- trunk/coregrind/pub_core_addrinfo.h (added)
+++ trunk/coregrind/pub_core_addrinfo.h Wed May 14 20:39:27 2014
@@ -0,0 +1,42 @@
+
+/*--------------------------------------------------------------------*/
+/*--- Obtaining information about an address. pub_core_addrinfo.h ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+ This file is part of Valgrind, a dynamic binary instrumentation
+ framework.
+
+ Copyright (C) 2014-2014 Philippe Waroquiers
+
+ 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.
+*/
+
+#ifndef __PUB_CORE_ADDRINFO_H
+#define __PUB_CORE_ADDRINFO_H
+
+#include "pub_tool_addrinfo.h"
+
+// No core-only exports; everything in this module is visible to both
+// the core and tools.
+
+#endif // __PUB_CORE_ADDRINFO_H
+
+/*--------------------------------------------------------------------*/
+/*--- end ---*/
+/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/pub_core_mallocfree.h
==============================================================================
--- trunk/coregrind/pub_core_mallocfree.h (original)
+++ trunk/coregrind/pub_core_mallocfree.h Wed May 14 20:39:27 2014
@@ -127,6 +127,23 @@
extern void VG_(print_arena_cc_analysis) ( void );
+typedef
+ struct _AddrArenaInfo
+ AddrArenaInfo;
+
+struct _AddrArenaInfo {
+ ArenaId aid;
+ const HChar* name; // arena name, !NULL if Addr a points in an arena.
+ SizeT block_szB;
+ PtrdiffT rwoffset;
+ Bool free; // True if this is in the arena free zone.
+};
+/* If Addr a points in one of the allocation arenas, describes Addr a in *aai
+ otherwise sets *aai to 0/NULL/...
+ Note that no information is produced for addresses allocated with
+ VG_(arena_perm_malloc). */
+extern void VG_(describe_arena_addr) ( Addr a, /*OUT*/AddrArenaInfo* aai );
+
#endif // __PUB_CORE_MALLOCFREE_H
/*--------------------------------------------------------------------*/
Modified: trunk/coregrind/pub_core_tooliface.h
==============================================================================
--- trunk/coregrind/pub_core_tooliface.h (original)
+++ trunk/coregrind/pub_core_tooliface.h Wed May 14 20:39:27 2014
@@ -89,6 +89,7 @@
Bool syscall_wrapper;
Bool sanity_checks;
Bool print_stats;
+ Bool info_location;
Bool var_info;
Bool malloc_replacement;
Bool xml_output;
@@ -153,6 +154,9 @@
// VG_(needs).print_stats
void (*tool_print_stats)(void);
+ // VG_(needs).info_location
+ void (*tool_info_location)(Addr a);
+
// VG_(needs).malloc_replacement
void* (*tool_malloc) (ThreadId, SizeT);
void* (*tool___builtin_new) (ThreadId, SizeT);
Modified: trunk/docs/xml/manual-core-adv.xml
==============================================================================
--- trunk/docs/xml/manual-core-adv.xml (original)
+++ trunk/docs/xml/manual-core-adv.xml Wed May 14 20:39:27 2014
@@ -1267,6 +1267,7 @@
<para>This section describes the Valgrind monitor commands, available
regardless of the Valgrind tool selected. For the tool specific
commands, refer to <xref linkend="mc-manual.monitor-commands"/>,
+<xref linkend="hg-manual.monitor-commands"/>,
<xref linkend="cl-manual.monitor-commands"/> and
<xref linkend="ms-manual.monitor-commands"/>. </para>
@@ -1296,6 +1297,32 @@
</listitem>
<listitem>
+ <para><varname>v.info location <addr></varname> outputs
+ information about the location <addr>. Possibly, the
+ following are described: global variables, local (stack)
+ variables, allocated or freed blocks, ... The information
+ produced depends on the tool and on the options given to valgrind.
+ Some tools (e.g. memcheck and helgrind) produce more detailed
+ information for client heap blocks. For example, these tools show
+ the stacktrace where the heap block was allocated. If a tool does
+ not replace the malloc/free/... functions, then client heap blocks
+ will not be described. Use the
+ option <varname>--read-var-info=yes</varname> to obtain more
+ detailed information about global or local (stack) variables.
+ </para>
+<programlisting><![CDATA[
+(gdb) monitor v.info location 0x8050b20
+ Location 0x8050b20 is 0 bytes inside global var "mx"
+ declared at tc19_shadowmem.c:19
+
+(gdb) mo v.in loc 0x582f33c
+ Location 0x582f33c is 0 bytes inside local var "info"
+ declared at tc19_shadowmem.c:282, in frame #1 of thread 3
+(gdb)
+]]></programlisting>
+ </listitem>
+
+ <listitem>
<para><varname>v.info n_errs_found [msg]</varname> shows the number of
errors found so far, the nr of errors shown so far and the current
value of the <option>--vgdb-error</option> argument. The optional
Modified: trunk/gdbserver_tests/Makefile.am
==============================================================================
--- trunk/gdbserver_tests/Makefile.am (original)
+++ trunk/gdbserver_tests/Makefile.am Wed May 14 20:39:27 2014
@@ -5,10 +5,15 @@
invoker simulate_control_c make_local_links \
filter_gdb filter_make_empty \
filter_memcheck_monitor filter_stderr filter_vgdb \
- send_signal
+ filter_helgrind_monitor send_signal
EXTRA_DIST = \
README_DEVELOPERS \
+ hginfo.stderrB.exp \
+ hginfo.stderr.exp \
+ hginfo.stdinB.gdb \
+ hginfo.stdoutB.exp \
+ hginfo.vgtest \
mcblocklistsearch.stderr.exp \
mcblocklistsearch.stdinB.gdb \
mcblocklistsearch.vgtest \
Added: trunk/gdbserver_tests/filter_helgrind_monitor
==============================================================================
--- trunk/gdbserver_tests/filter_helgrind_monitor (added)
+++ trunk/gdbserver_tests/filter_helgrind_monitor Wed May 14 20:39:27 2014
@@ -0,0 +1,10 @@
+#! /bin/sh
+
+# used to filter helgrind output shown by gdb/vgdb.
+
+dir=`dirname $0`
+
+$dir/../helgrind/tests/filter_stderr "$@" |
+
+# filter vgdb messages
+$dir/filter_vgdb
Added: trunk/gdbserver_tests/hginfo.stderr.exp
==============================================================================
--- trunk/gdbserver_tests/hginfo.stderr.exp (added)
+++ trunk/gdbserver_tests/hginfo.stderr.exp Wed May 14 20:39:27 2014
@@ -0,0 +1,3 @@
+(action at startup) vgdb me ...
+
+
Added: trunk/gdbserver_tests/hginfo.stderrB.exp
==============================================================================
--- trunk/gdbserver_tests/hginfo.stderrB.exp (added)
+++ trunk/gdbserver_tests/hginfo.stderrB.exp Wed May 14 20:39:27 2014
@@ -0,0 +1,18 @@
+relaying data between gdb and process ....
+vgdb-error value changed from 0 to 999999
+Lock ga 0x........ {
+ Address 0x........ is 0 bytes inside data symbol "mx"
+ kind mbRec
+ { W1:thread #x tid 2 }
+}
+ Address 0x........ is 0 bytes inside a block of size 1,008 alloc'd
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: th (hg01_all_ok.c:22)
+ by 0x........: mythread_wrapper (hg_intercepts.c:...)
+ ...
+Lock ga 0x........ {
+ Address 0x........ is 0 bytes inside data symbol "mx"
+ kind mbRec
+ { W1:thread #x tid 3 }
+}
+ Address 0x........ is 0 bytes inside an unallocated block of size 1,008 in arena "client"
Added: trunk/gdbserver_tests/hginfo.stdinB.gdb
==============================================================================
--- trunk/gdbserver_tests/hginfo.stdinB.gdb (added)
+++ trunk/gdbserver_tests/hginfo.stdinB.gdb Wed May 14 20:39:27 2014
@@ -0,0 +1,20 @@
+# connect gdb to Valgrind gdbserver:
+target remote | ./vgdb --wait=60 --vgdb-prefix=./vgdb-prefix-hginfo
+echo vgdb launched process attached\n
+monitor v.set vgdb-error 999999
+#
+#
+# insert break:
+break breakme
+#
+# continue till each break and execute via gdb the monitor commands
+# ptr must be allocated at this state:
+continue
+monitor info locks
+eval "monitor v.info location %p", ptr
+# ptr must be freed at this state
+continue
+monitor info locks
+eval "monitor v.info location %p", ptr
+continue
+quit
Added: trunk/gdbserver_tests/hginfo.stdoutB.exp
==============================================================================
--- trunk/gdbserver_tests/hginfo.stdoutB.exp (added)
+++ trunk/gdbserver_tests/hginfo.stdoutB.exp Wed May 14 20:39:27 2014
@@ -0,0 +1,11 @@
+Breakpoint 1 at 0x........: file hg01_all_ok.c, line 13.
+Continuing.
+[New Thread ....]
+Breakpoint 1, breakme () at hg01_all_ok.c:13
+13 if (shared == 1)
+Continuing.
+[New Thread ....]
+Breakpoint 1, breakme () at hg01_all_ok.c:13
+13 if (shared == 1)
+Continuing.
+Program exited normally.
Added: trunk/gdbserver_tests/hginfo.vgtest
==============================================================================
--- trunk/gdbserver_tests/hginfo.vgtest (added)
+++ trunk/gdbserver_tests/hginfo.vgtest Wed May 14 20:39:27 2014
@@ -0,0 +1,13 @@
+# test helgrind monitor command
+# test 'v.info location' monitor command
+prog: ../helgrind/tests/hg01_all_ok
+vgopts: --tool=helgrind --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-hginfo -q
+prereq: test -e gdb.eval
+stdout_filter: filter_make_empty
+stderr_filter: filter_stderr
+progB: gdb
+argsB: --quiet -l 60 --nx ../helgrind/tests/hg01_all_ok
+stdinB: hginfo.stdinB.gdb
+stdoutB_filter: filter_gdb
+stderrB_filter: filter_helgrind_monitor
+stderrB_filter_args: hg01_all_ok.c
Modified: trunk/gdbserver_tests/mchelp.stdoutB.exp
==============================================================================
--- trunk/gdbserver_tests/mchelp.stdoutB.exp (original)
+++ trunk/gdbserver_tests/mchelp.stdoutB.exp Wed May 14 20:39:27 2014
@@ -3,6 +3,7 @@
v.wait [<ms>] : sleep <ms> (default 0) then continue
v.info all_errors : show all errors found so far
v.info last_error : show last error found
+ v.info location <addr> : show information about location <addr>
v.info n_errs_found [msg] : show the nr of errors found so far and the given msg
v.info open_fds : show open file descriptors (only if --track-fds=yes)
v.kill : kill the Valgrind process
@@ -47,6 +48,7 @@
v.wait [<ms>] : sleep <ms> (default 0) then continue
v.info all_errors : show all errors found so far
v.info last_error : show last error found
+ v.info location <addr> : show information about location <addr>
v.info n_errs_found [msg] : show the nr of errors found so far and the given msg
v.info open_fds : show open file descriptors (only if --track-fds=yes)
v.kill : kill the Valgrind process
Modified: trunk/gdbserver_tests/mssnapshot.stderrB.exp
==============================================================================
--- trunk/gdbserver_tests/mssnapshot.stderrB.exp (original)
+++ trunk/gdbserver_tests/mssnapshot.stderrB.exp Wed May 14 20:39:27 2014
@@ -5,6 +5,7 @@
v.wait [<ms>] : sleep <ms> (default 0) then continue
v.info all_errors : show all errors found so far
v.info last_error : show last error found
+ v.info location <addr> : show information about location <addr>
v.info n_errs_found [msg] : show the nr of errors found so far and the given msg
v.info open_fds : show open file descriptors (only if --track-fds=yes)
v.kill : kill the Valgrind process
Modified: trunk/gdbserver_tests/mssnapshot.vgtest
==============================================================================
--- trunk/gdbserver_tests/mssnapshot.vgtest (original)
+++ trunk/gdbserver_tests/mssnapshot.vgtest Wed May 14 20:39:27 2014
@@ -1,4 +1,4 @@
-# test the memcheck monitor help
+# test the massif help and massif snapshots.
prereq: test -e gdb
prog: t
vgopts: --tool=massif --vgdb=yes --vgdb-error=0 --vgdb-prefix=./vgdb-prefix-mssnapshot
Modified: trunk/helgrind/docs/hg-manual.xml
==============================================================================
--- trunk/helgrind/docs/hg-manual.xml (original)
+++ trunk/helgrind/docs/hg-manual.xml Wed May 14 20:39:27 2014
@@ -1291,8 +1291,8 @@
</para>
<programlisting><![CDATA[
Lock ga 0x8049a20 {
-Location 0x8049a20 is 0 bytes inside global var "s_rwlock"
-declared at rwlock_race.c:17
+ Location 0x8049a20 is 0 bytes inside global var "s_rwlock"
+ declared at rwlock_race.c:17
kind rdwr
{ R1:thread #3 tid 3 }
}
@@ -1300,27 +1300,6 @@
</listitem>
- <listitem>
- <para><varname>describe <addr></varname> describes the address
- <addr>. For example, an heap address will be described by the
- length of the heap block and the stacktrace where this block was allocated.
- The option <varname>--read-var-info=yes</varname> allows to give information
- about global or local variables.
- </para>
-<programlisting><![CDATA[
-(gdb) monitor describe 0x404e028
-
-address 0x404E028 is 0 bytes inside a block of size 100 alloc'd
-==16448== at 0x4028AA5: malloc (vg_replace_malloc.c:292)
-==16448== by 0x8048BD7: main (tc19_shadowmem.c:144)
-(gdb) mo d 0xbec6f040
-
-Location 0xbec6f040 is 0 bytes inside info.child,
-declared at tc19_shadowmem.c:139, in frame #0 of thread 1
-(gdb)
-]]></programlisting>
- </listitem>
-
</itemizedlist>
</sect1>
Modified: trunk/helgrind/hg_addrdescr.c
==============================================================================
--- trunk/helgrind/hg_addrdescr.c (original)
+++ trunk/helgrind/hg_addrdescr.c Wed May 14 20:39:27 2014
@@ -36,19 +36,19 @@
#include "pub_tool_execontext.h"
#include "pub_tool_debuginfo.h"
#include "pub_tool_threadstate.h"
+#include "pub_tool_addrinfo.h"
#include "hg_basics.h"
#include "hg_addrdescr.h" /* self */
-void HG_(init_AddrDescr) ( AddrDescr* ad ) {
- VG_(memset)(ad, 0, sizeof(*ad) );
-}
-
-void HG_(describe_addr) ( Addr a, /*OUT*/AddrDescr* ad )
+void HG_(describe_addr) ( Addr a, /*OUT*/AddrInfo* ai )
{
- tl_assert(!ad->hctxt);
- tl_assert(!ad->descr1);
- tl_assert(!ad->descr2);
+ tl_assert(ai->tag == Addr_Undescribed);
+
+ /* hctxt/haddr/hszB describe the addr if it is a heap block. */
+ ExeContext* hctxt;
+ Addr haddr;
+ SizeT hszB;
/* First, see if it's in any heap block. Unfortunately this
means a linear search through all allocated heap blocks. The
@@ -57,135 +57,42 @@
should have an allocation context. */
Bool is_heapblock
= HG_(mm_find_containing_block)(
- &ad->hctxt,
- &ad->haddr,
- &ad->hszB,
+ &hctxt,
+ &haddr,
+ &hszB,
a
);
- tl_assert(is_heapblock == (ad->hctxt != NULL));
-
- if (!ad->hctxt) {
- /* It's not in any heap block. See if we can map it to a
- stack or global symbol. */
-
- ad->descr1
- = VG_(newXA)( HG_(zalloc), "hg.addrdescr.descr1",
- HG_(free), sizeof(HChar) );
- ad->descr2
- = VG_(newXA)( HG_(zalloc), "hg.addrdescr.descr2",
- HG_(free), sizeof(HChar) );
-
- (void) VG_(get_data_description)( ad->descr1,
- ad->descr2,
- a );
-
- /* If there's nothing in descr1/2, free it. Why is it safe to
- to VG_(indexXA) at zero here? Because
- VG_(get_data_description) guarantees to zero terminate
- descr1/2 regardless of the outcome of the call. So there's
- always at least one element in each XA after the call.
- */
- if (0 == VG_(strlen)( VG_(indexXA)(ad->descr1, 0 ))) {
- VG_(deleteXA)( ad->descr1 );
- ad->descr1 = NULL;
- }
- if (0 == VG_(strlen)( VG_(indexXA)( ad->descr2, 0 ))) {
- VG_(deleteXA)( ad->descr2 );
- ad->descr2 = NULL;
- }
- }
-}
-
-void HG_(pp_addrdescr) (Bool xml, const HChar* what, Addr addr,
- AddrDescr* ad,
- void(*print)(const HChar *format, ...))
-{
- /* If we have a description of the address in terms of a heap
- block, show it. */
- if (ad->hctxt) {
- SizeT delta = addr - ad->haddr;
- if (xml) {
- (*print)(" <auxwhat>%s %p is %ld bytes inside a block "
- "of size %ld alloc'd</auxwhat>\n", what,
- (void*)addr, delta,
- ad->hszB);
- VG_(pp_ExeContext)( ad->hctxt );
- } else {
- (*print)("\n");
- (*print)("%s %p is %ld bytes inside a block "
- "of size %ld alloc'd\n", what,
- (void*)addr, delta,
- ad->hszB);
- VG_(pp_ExeContext)( ad->hctxt );
- }
- }
-
- /* If we have a better description of the address, show it.
- Note that in XML mode, it will already by nicely wrapped up
- in tags, either <auxwhat> or <xauxwhat>, so we can just emit
- it verbatim. */
- if (xml) {
- if (ad->descr1)
- (*print)( " %s\n",
- (HChar*)VG_(indexXA)( ad->descr1, 0 ) );
- if (ad->descr2)
- (*print)( " %s\n",
- (HChar*)VG_(indexXA)( ad->descr2, 0 ) );
+ if (is_heapblock) {
+ tl_assert(is_heapblock == (hctxt != NULL));
+ ai->tag = Addr_Block;
+ ai->Addr.Block.block_kind = Block_Mallocd;
+ ai->Addr.Block.block_desc = "block";
+ ai->Addr.Block.block_szB = hszB;
+ ai->Addr.Block.rwoffset = (Word)(a) - (Word)(haddr);
+ ai->Addr.Block.allocated_at = hctxt;
+ ai->Addr.Block.freed_at = VG_(null_ExeContext)();;
} else {
- if (ad->descr1 || ad->descr2)
- (*print)("\n");
- if (ad->descr1)
- (*print)( "%s\n",
- (HChar*)VG_(indexXA)( ad->descr1, 0 ) );
- if (ad->descr2)
- (*print)( "%s\n",
- (HChar*)VG_(indexXA)( ad->descr2, 0 ) );
+ /* No block found. Search a non-heap block description. */
+ VG_(describe_addr) (a, ai);
}
}
-static void void_printf(const HChar *format, ...)
-{
- va_list vargs;
- va_start(vargs, format);
- VG_(vprintf)(format, vargs);
- va_end(vargs);
-}
-
-Bool HG_(get_and_pp_addrdescr) (const HChar* what, Addr addr)
+Bool HG_(get_and_pp_addrdescr) (Addr addr)
{
Bool ret;
- AddrDescr glad;
-
- HG_(init_AddrDescr) (&glad);
-
- HG_(describe_addr) (addr, &glad);
+ AddrInfo glai;
- HG_(pp_addrdescr) (False /* xml */, what, addr,
- &glad,
- void_printf);
- ret = glad.hctxt || glad.descr1 || glad.descr2;
+ glai.tag = Addr_Undescribed;
+ HG_(describe_addr) (addr, &glai);
+ VG_(pp_addrinfo) (addr, &glai);
+ ret = glai.tag != Addr_Unknown;
- HG_(clear_addrdesc) (&glad);
+ VG_(clear_addrinfo) (&glai);
return ret;
}
-void HG_(clear_addrdesc) ( AddrDescr* ad)
-{
- ad->hctxt = NULL;
- ad->haddr = 0;
- ad->hszB = 0;
- if (ad->descr1 != NULL) {
- VG_(deleteXA)( ad->descr1 );
- ad->descr1 = NULL;
- }
- if (ad->descr2 != NULL) {
- VG_(deleteXA)( ad->descr2 );
- ad->descr2 = NULL;
- }
-}
-
/*--------------------------------------------------------------------*/
/*--- end hg_addrdescr.c ---*/
/*--------------------------------------------------------------------*/
Modified: trunk/helgrind/hg_addrdescr.h
==============================================================================
--- trunk/helgrind/hg_addrdescr.h (original)
+++ trunk/helgrind/hg_addrdescr.h Wed May 14 20:39:27 2014
@@ -33,45 +33,22 @@
#ifndef __HG_ADDRDESCR_H
#define __HG_ADDRDESCR_H
-/*----------------------------------------------------------------*/
-/*--- Address Description ---*/
-/*--- Used e.g. to describe an address in a Race cond. error ---*/
-/*--- or a lock. ---*/
-/*----------------------------------------------------------------*/
-typedef
- struct {
- /* descr1/2 provide a description of stack/global locs */
- XArray* descr1; /* XArray* of HChar */
- XArray* descr2; /* XArray* of HChar */
- /* hctxt/haddr/hszB describe the addr if it is a heap block. */
- ExeContext* hctxt;
- Addr haddr;
- SizeT hszB;
- }
- AddrDescr;
-
-/* Initialises an empty AddrDescr. */
-void HG_(init_AddrDescr) ( AddrDescr* ad );
-
/* Describe an address as best you can, for error messages or
- lock description, putting the result in ad.
- This allocates some memory in ad, to be cleared with VG_(clear_addrdesc). */
-extern void HG_(describe_addr) ( Addr a, /*OUT*/AddrDescr* ad );
+ lock description, putting the result in ai.
+ This might allocate some memory in ai, to be cleared with
+ VG_(clear_addrinfo). */
+extern void HG_(describe_addr) ( Addr a, /*OUT*/AddrInfo* ai );
-/* Prints (using *print) the readable description of addr given in ad.
+/* Prints (using *print) the readable description of addr given in ai.
"what" identifies the type pointed to by addr (e.g. a lock). */
extern void HG_(pp_addrdescr) (Bool xml, const HChar* what, Addr addr,
- AddrDescr* ad,
+ AddrInfo* ai,
void(*print)(const HChar *format, ...));
/* Get a readable description of addr, then print it using HG_(pp_addrdescr)
using xml False and VG_(printf) to emit the characters.
Returns True if a description was found/printed, False otherwise. */
-extern Bool HG_(get_and_pp_addrdescr) (const HChar* what, Addr a);
-
-/* Free all memory allocated by HG_(describe_addr)
- Sets all elements of ad to 0/NULL. */
-extern void HG_(clear_addrdesc) ( AddrDescr* ad);
+extern Bool HG_(get_and_pp_addrdescr) (Addr a);
/* For error creation/address description:
map 'data_addr' to a malloc'd chunk, if any.
Modified: trunk/helgrind/hg_errors.c
==============================================================================
--- trunk/helgrind/hg_errors.c (original)
+++ trunk/helgrind/hg_errors.c Wed May 14 20:39:27 2014
@@ -40,6 +40,7 @@
#include "pub_tool_debuginfo.h"
#include "pub_tool_threadstate.h"
#include "pub_tool_options.h" // VG_(clo_xml)
+#include "pub_tool_addrinfo.h"
#include "hg_basics.h"
#include "hg_addrdescr.h"
@@ -292,7 +293,7 @@
struct {
Addr data_addr;
Int szB;
- AddrDescr data_addrdescr;
+ AddrInfo data_addrinfo;
Bool isWrite;
Thread* thr;
Lock** locksHeldW;
@@ -406,7 +407,7 @@
VG_(printf)("HG_(update_extra): "
"%d conflicting-event queries\n", xxx);
- HG_(describe_addr) (xe->XE.Race.data_addr, &xe->XE.Race.data_addrdescr);
+ HG_(describe_addr) (xe->XE.Race.data_addr, &xe->XE.Race.data_addrinfo);
/* And poke around in the conflicting-event map, to see if we
can rustle up a plausible-looking conflicting memory access
@@ -488,7 +489,7 @@
/* Skip on the detailed description of the raced-on address at this
point; it's expensive. Leave it for the update_extra function
if we ever make it that far. */
- HG_(init_AddrDescr) (&xe.XE.Race.data_addrdescr);
+ xe.XE.Race.data_addrinfo.tag = Addr_Undescribed;
// FIXME: tid vs thr
// Skip on any of the conflicting-access info at this point.
// It's expensive to obtain, and this error is more likely than
@@ -1232,10 +1233,7 @@
}
}
-
- HG_(pp_addrdescr) (xml, "Address", err_ga,
- &xe->XE.Race.data_addrdescr,
- emit);
+ VG_(pp_addrinfo) (err_ga, &xe->XE.Race.data_addrinfo);
break; /* case XE_Race */
} /* case XE_Race */
Modified: trunk/helgrind/hg_main.c
==============================================================================
--- trunk/helgrind/hg_main.c (original)
+++ trunk/helgrind/hg_main.c Wed May 14 20:39:27 2014
@@ -56,6 +56,7 @@
#include "pub_tool_libcproc.h" // VG_(atfork)
#include "pub_tool_aspacemgr.h" // VG_(am_is_valid_for_client)
#include "pub_tool_poolalloc.h"
+#include "pub_tool_addrinfo.h"
#include "hg_basics.h"
#include "hg_wordset.h"
@@ -470,11 +471,11 @@
{
space(d+0);
if (show_internal_data)
- VG_(printf)("Lock %p (ga %#lx) {", lk, lk->guestaddr);
+ VG_(printf)("Lock %p (ga %#lx) {\n", lk, lk->guestaddr);
else
- VG_(printf)("Lock ga %#lx {", lk->guestaddr);
+ VG_(printf)("Lock ga %#lx {\n", lk->guestaddr);
if (!show_lock_addrdescr
- || !HG_(get_and_pp_addrdescr) ("lock", (Addr) lk->guestaddr))
+ || !HG_(get_and_pp_addrdescr) ((Addr) lk->guestaddr))
VG_(printf)("\n");
if (sHOW_ADMIN) {
@@ -4745,7 +4746,6 @@
(
"\n"
"helgrind monitor commands:\n"
-" describe <addr> : outputs a description of <addr>\n"
" info locks : show list of locks and their status\n"
"\n");
}
@@ -4765,7 +4765,7 @@
starts with the same first letter(s) as an already existing
command. This ensures a shorter abbreviation for the user. */
switch (VG_(keyword_id)
- ("help info describe",
+ ("help info",
wcmd, kwd_report_duplicated_matches)) {
case -2: /* multiple matches */
return True;
@@ -4799,16 +4799,6 @@
tl_assert(0);
}
return True;
- case 2: { /* describe */
- Addr address;
- SizeT szB = 1;
- VG_(strtok_get_address_and_size) (&address, &szB, &ssaveptr);
- if (address == (Addr) 0 && szB == 0) return True;
- if (!HG_(get_and_pp_addrdescr) ("address", address))
- VG_(gdb_printf) ("No description found for address %p\n",
- (void*)address);
- return True;
- }
default:
tl_assert(0);
return False;
@@ -5391,6 +5381,11 @@
initialise_data_structures(hbthr_root);
}
+static void hg_info_location (Addr a)
+{
+ (void) HG_(get_and_pp_addrdescr) (a);
+}
+
static void hg_pre_clo_init ( void )
{
VG_(details_name) ("Helgrind");
@@ -5431,6 +5426,7 @@
// hg_expensive_sanity_check);
VG_(needs_print_stats) (hg_print_stats);
+ VG_(needs_info_location) (hg_info_location);
VG_(needs_malloc_replacement) (hg_cli__malloc,
hg_cli____builtin_new,
Modified: trunk/helgrind/tests/annotate_rwlock.stderr.exp
==============================================================================
--- trunk/helgrind/tests/annotate_rwlock.stderr.exp (original)
+++ trunk/helgrind/tests/annotate_rwlock.stderr.exp Wed May 14 20:39:27 2014
@@ -29,6 +29,7 @@
by 0x........: thread_func (annotate_rwlock.c:147)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
+ Address 0x........ is 4 bytes inside data symbol "s_rwlock"
----------------------------------------------------------------
@@ -45,6 +46,7 @@
by 0x........: thread_func (annotate_rwlock.c:144)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
+ Address 0x........ is 8 bytes inside data symbol "s_rwlock"
----------------------------------------------------------------
@@ -61,6 +63,7 @@
by 0x........: thread_func (annotate_rwlock.c:149)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
+ Address 0x........ is 8 bytes inside data symbol "s_rwlock"
----------------------------------------------------------------
@@ -77,6 +80,7 @@
by 0x........: thread_func (annotate_rwlock.c:149)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
+ Address 0x........ is 8 bytes inside data symbol "s_rwlock"
----------------------------------------------------------------
@@ -93,6 +97,7 @@
by 0x........: thread_func (annotate_rwlock.c:149)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
+ Address 0x........ is 4 bytes inside data symbol "s_rwlock"
----------------------------------------------------------------
@@ -113,5 +118,6 @@
by 0x........: thread_func (annotate_rwlock.c:149)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
+ Address 0x........ is 4 bytes inside data symbol "s_rwlock"
Finished.
Modified: trunk/helgrind/tests/free_is_write.stderr.exp
==============================================================================
--- trunk/helgrind/tests/free_is_write.stderr.exp (original)
+++ trunk/helgrind/tests/free_is_write.stderr.exp Wed May 14 20:39:27 2014
@@ -24,6 +24,7 @@
This conflicts with a previous read of size 1 by thread #x
Locks held: none
at 0x........: main (free_is_write.c:36)
+ Address 0x........ is 5 bytes inside an unallocated block of size 16 in arena "client"
Done.
Modified: trunk/helgrind/tests/hg01_all_ok.c
==============================================================================
--- trunk/helgrind/tests/hg01_all_ok.c (original)
+++ trunk/helgrind/tests/hg01_all_ok.c Wed May 14 20:39:27 2014
@@ -1,15 +1,31 @@
/* All OK */
-
+#include <stdlib.h>
+#include <string.h>
#include <pthread.h>
static pthread_mutex_t mx = PTHREAD_MUTEX_INITIALIZER;
-static int shared;
+static int shared = 0;
+static char *ptr;
+
+static void breakme(void)
+{
+ if (shared == 1)
+ memset (ptr, 0x55, 1000);
+}
static void *th(void *v)
{
pthread_mutex_lock(&mx);
shared++;
+ if (shared == 1) {
+ ptr = malloc (1008);
+ breakme();
+ }
+ if (shared == 2) {
+ free (ptr);
+ breakme();
+ }
pthread_mutex_unlock(&mx);
return 0;
Modified: trunk/helgrind/tests/hg03_inherit.stderr.exp
==============================================================================
--- trunk/helgrind/tests/hg03_inherit.stderr.exp (original)
+++ trunk/helgrind/tests/hg03_inherit.stderr.exp Wed May 14 20:39:27 2014
@@ -22,9 +22,8 @@
This conflicts with a previous read of size 4 by thread #x
Locks held: none
at 0x........: main (hg03_inherit.c:60)
-
-Location 0x........ is 0 bytes inside shared[1],
-a global variable declared at hg03_inherit.c:11
+ Location 0x........ is 0 bytes inside shared[1],
+ a global variable declared at hg03_inherit.c:11
ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Modified: trunk/helgrind/tests/hg04_race.stderr.exp
==============================================================================
--- trunk/helgrind/tests/hg04_race.stderr.exp (original)
+++ trunk/helgrind/tests/hg04_race.stderr.exp Wed May 14 20:39:27 2014
@@ -28,9 +28,8 @@
at 0x........: th (hg04_race.c:10)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
-
-Location 0x........ is 0 bytes inside global var "shared"
-declared at hg04_race.c:6
+ Location 0x........ is 0 bytes inside global var "shared"
+ declared at hg04_race.c:6
----------------------------------------------------------------
@@ -45,9 +44,8 @@
at 0x........: th (hg04_race.c:10)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
-
-Location 0x........ is 0 bytes inside global var "shared"
-declared at hg04_race.c:6
+ Location 0x........ is 0 bytes inside global var "shared"
+ declared at hg04_race.c:6
ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Modified: trunk/helgrind/tests/hg05_race2.stderr.exp
==============================================================================
--- trunk/helgrind/tests/hg05_race2.stderr.exp (original)
+++ trunk/helgrind/tests/hg05_race2.stderr.exp Wed May 14 20:39:27 2014
@@ -28,9 +28,8 @@
at 0x........: th (hg05_race2.c:17)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
-
-Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
-declared at hg05_race2.c:24, in frame #x of thread x
+ Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
+ declared at hg05_race2.c:24, in frame #x of thread x
----------------------------------------------------------------
@@ -45,9 +44,8 @@
at 0x........: th (hg05_race2.c:17)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
-
-Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
-declared at hg05_race2.c:24, in frame #x of thread x
+ Location 0x........ is 0 bytes inside foo.poot[5].plop[11],
+ declared at hg05_race2.c:24, in frame #x of thread x
ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Modified: trunk/helgrind/tests/locked_vs_unlocked1_fwd.stderr.exp
==============================================================================
--- trunk/helgrind/tests/locked_vs_unlocked1_fwd.stderr.exp (original)
+++ trunk/helgrind/tests/locked_vs_unlocked1_fwd.stderr.exp Wed May 14 20:39:27 2014
@@ -33,4 +33,5 @@
at 0x........: child_fn (locked_vs_unlocked1.c:19)
by 0x........: mythread_wrapper (hg_intercepts.c:...)
...
+ Address 0x........ is 0 bytes inside data symbol "x"
Modified: trunk/helgrind/tests/locked_vs_unlocked1_rev.stderr.exp
==============================================================================
--- trunk/helgrind/tests/locked_vs_unlocked1_rev.stderr.exp (original)
+++ trunk/helgrind/tests/locked_vs_unlocked1_rev.stderr.exp Wed May 14 20:39:27 2014
@@ -33,4 +33,5 @@
at 0x........: child_fn (locked_vs_unlocked1.c:19)
by 0x...........
[truncated message content] |
|
From: <sv...@va...> - 2014-05-14 13:29:13
|
Author: sewardj
Date: Wed May 14 13:29:04 2014
New Revision: 13964
Log:
Update.
Modified:
trunk/NEWS
trunk/docs/internals/3_9_BUGSTATUS.txt
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed May 14 13:29:04 2014
@@ -116,9 +116,12 @@
client requests
332276 Implement additional Xen hypercalls
332658 ldrd.w r1, r2, [PC, #imm] does not adjust for 32bit alignment
+333145 Tests for missaligned PC+#imm access for arm
333228 AAarch64 Missing instruction encoding: mrs %[reg], ctr_el0
333230 AAarch64 missing instruction encodings: dc, ic, dsb.
+333428 ldr.w pc [rD, #imm] instruction leads to assertion
333666 Recognize MPX instructions and bnd prefix.
+334049 lzcnt fails silently (x86_32)
334705 sendmsg and recvmsg should guard against bogus msghdr fields.
334727 Build fails with -Werror=format-security
n-i-bz Fix KVM_CREATE_IRQCHIP ioctl handling
Modified: trunk/docs/internals/3_9_BUGSTATUS.txt
==============================================================================
--- trunk/docs/internals/3_9_BUGSTATUS.txt (original)
+++ trunk/docs/internals/3_9_BUGSTATUS.txt Wed May 14 13:29:04 2014
@@ -26,13 +26,10 @@
331057 unhandled instruction: 0xEEE01B20 (vfma.f64) (has patch)
331178 disInstr(arm): unhandled instruction: 0xEE190F1D
Probably WONTFIX or CANTFIX
-333145 Tests for missaligned PC+#imm access for arm
-333428 ldr.w pc [rD, #imm] instruction leads to assertion
=== VEX/x86 ============================================================
333625 Program under valgrind calculates complex exp() wrogly
-334049 lzcnt fails silently (x86_32)
=== VEX/mips ===========================================================
|
|
From: <sv...@va...> - 2014-05-14 11:36:04
|
Author: mjw
Date: Wed May 14 11:35:54 2014
New Revision: 13963
Log:
Use safe_to_deref in coregrind syswrap-generic.c (msghdr_foreachfield).
Call ML_(safe_to_deref) before using msghdr msg_name, msg_iov or msg_control.
Fixes bug #334705.
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/syswrap-generic.c
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed May 14 11:35:54 2014
@@ -119,6 +119,7 @@
333228 AAarch64 Missing instruction encoding: mrs %[reg], ctr_el0
333230 AAarch64 missing instruction encodings: dc, ic, dsb.
333666 Recognize MPX instructions and bnd prefix.
+334705 sendmsg and recvmsg should guard against bogus msghdr fields.
334727 Build fails with -Werror=format-security
n-i-bz Fix KVM_CREATE_IRQCHIP ioctl handling
n-i-bz s390x: Fix memory corruption for multithreaded applications
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-generic.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c Wed May 14 11:35:54 2014
@@ -951,13 +951,15 @@
if ( recv )
foreach_func ( tid, False, fieldName, (Addr)&msg->msg_flags, sizeof( msg->msg_flags ) );
- if ( msg->msg_name ) {
+ if ( ML_(safe_to_deref)(&msg->msg_name, sizeof (void *))
+ && msg->msg_name ) {
VG_(sprintf) ( fieldName, "(%s.msg_name)", name );
foreach_func ( tid, False, fieldName,
(Addr)msg->msg_name, msg->msg_namelen );
}
- if ( msg->msg_iov ) {
+ if ( ML_(safe_to_deref)(&msg->msg_iov, sizeof (void *))
+ && msg->msg_iov ) {
struct vki_iovec *iov = msg->msg_iov;
UInt i;
@@ -975,7 +977,8 @@
}
}
- if ( msg->msg_control )
+ if ( ML_(safe_to_deref) (&msg->msg_control, sizeof (void *))
+ && msg->msg_control )
{
VG_(sprintf) ( fieldName, "(%s.msg_control)", name );
foreach_func ( tid, False, fieldName,
|
|
From: <sv...@va...> - 2014-05-14 10:50:29
|
Author: mjw
Date: Wed May 14 10:50:14 2014
New Revision: 13962
Log:
Support -Wformat -Werror=format-security.
Check if gcc supports -Wformat -Werror=format-security and use it if so.
Fix m_gdbserver/remote-utils.c sr_perror call. Fixes Bug #334727.
Modified:
trunk/Makefile.tool-tests.am
trunk/NEWS
trunk/configure.ac
trunk/coregrind/m_gdbserver/remote-utils.c
Modified: trunk/Makefile.tool-tests.am
==============================================================================
--- trunk/Makefile.tool-tests.am (original)
+++ trunk/Makefile.tool-tests.am Wed May 14 10:50:14 2014
@@ -32,6 +32,10 @@
CFLAGS += -Wno-write-strings
endif
+if HAS_ERROR_FORMAT_SECURITY
+CFLAGS += -Wformat -Werror=format-security
+endif
+
if COMPILER_IS_CLANG
CFLAGS += -Wno-format-extra-args # perf/tinycc.c
CFLAGS += -Wno-literal-range # none/tests/amd64/fxtract.c
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed May 14 10:50:14 2014
@@ -119,6 +119,7 @@
333228 AAarch64 Missing instruction encoding: mrs %[reg], ctr_el0
333230 AAarch64 missing instruction encodings: dc, ic, dsb.
333666 Recognize MPX instructions and bnd prefix.
+334727 Build fails with -Werror=format-security
n-i-bz Fix KVM_CREATE_IRQCHIP ioctl handling
n-i-bz s390x: Fix memory corruption for multithreaded applications
n-i-bz vex arm->IR: allow PC as basereg in some LDRD cases
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Wed May 14 10:50:14 2014
@@ -1681,6 +1681,31 @@
AM_CONDITIONAL(HAS_WRITE_STRINGS_WARNING, test x$no_write_strings = xyes)
+
+# does this compiler support -Wformat -Werror=format-security ?
+AC_MSG_CHECKING([if gcc accepts -Wformat -Werror=format-security])
+
+safe_CFLAGS=$CFLAGS
+CFLAGS="-Wformat -Werror=format-security"
+
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
+ return 0;
+]])], [
+error_format_security=yes
+AC_MSG_RESULT([yes])
+], [
+error_format_security=no
+AC_MSG_RESULT([no])
+])
+CFLAGS=$safe_CFLAGS
+
+if test x$no_write_strings = xyes; then
+ CFLAGS="$CFLAGS -Wformat -Werror=format-security"
+ CXXFLAGS="$CXXFLAGS -Wformat -Werror=format-security"
+fi
+
+AM_CONDITIONAL(HAS_ERROR_FORMAT_SECURITY, test x$error_format_security = xyes)
+
# does this compiler support -Wno-empty-body ?
AC_MSG_CHECKING([if gcc accepts -Wno-empty-body])
Modified: trunk/coregrind/m_gdbserver/remote-utils.c
==============================================================================
--- trunk/coregrind/m_gdbserver/remote-utils.c (original)
+++ trunk/coregrind/m_gdbserver/remote-utils.c Wed May 14 10:50:14 2014
@@ -39,7 +39,7 @@
static
void sr_extended_perror (SysRes sr, const HChar *msg)
{
- sr_perror (sr, msg);
+ sr_perror (sr, "%s", msg);
if (VG_(clo_verbosity) > 0 || VG_(debugLog_getLevel)() >= 1) {
Int i;
vki_sigset_t cursigset;
|
|
From: Philippe W. <phi...@sk...> - 2014-05-14 04:48:43
|
valgrind revision: 13961 VEX revision: 2860 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-05-13 20:00:11 PDT Ended at 2014-05-13 21:45:28 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 == 578 tests, 32 stderr failures, 3 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) 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.5s ( 6.6x, -----) me: 2.9s (12.5x, -----) ca:17.9s (77.9x, -----) he: 1.7s ( 7.6x, -----) ca: 5.5s (23.9x, -----) dr: 1.7s ( 7.4x, -----) ma: 2.1s ( 9.3x, -----) bigcode1 valgrind-old:0.23s no: 1.6s ( 6.8x, -2.6%) me: 2.9s (12.5x, 0.0%) ca:17.9s (77.7x, 0.2%) he: 1.8s ( 7.6x, -0.6%) ca: 5.3s (23.0x, 4.0%) dr: 1.7s ( 7.4x, 0.6%) ma: 2.1s ( 9.2x, 0.9%) -- bigcode2 -- bigcode2 valgrind-new:0.23s no: 1.5s ( 6.6x, -----) me: 3.0s (13.0x, -----) ca:18.1s (78.9x, -----) he: 2.1s ( 9.2x, -----) ca: 5.5s (23.7x, -----) 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, 1.0%) ca:18.2s (79.0x, -0.1%) he: 2.1s ( 9.1x, 0.9%) ca: 5.5s (23.7x, 0.0%) dr: 1.8s ( 8.0x, 0.0%) ma: 2.1s ( 9.2x, 0.5%) -- bz2 -- bz2 valgrind-new:0.72s no: 4.6s ( 6.3x, -----) me:11.6s (16.1x, -----) ca:25.8s (35.9x, -----) he:14.9s (20.8x, -----) ca:24.2s (33.6x, -----) dr:19.2s (26.7x, -----) ma: 4.7s ( 6.5x, -----) bz2 valgrind-old:0.72s no: 4.6s ( 6.4x, -0.4%) me:11.2s (15.5x, 3.4%) ca:25.8s (35.8x, 0.2%) he:14.9s (20.7x, 0.3%) ca:24.2s (33.6x, 0.0%) dr:19.2s (26.7x, 0.0%) ma: 4.7s ( 6.5x, 0.2%) -- fbench -- fbench valgrind-new:0.34s no: 2.1s ( 6.3x, -----) me: 5.2s (15.4x, -----) ca: 8.5s (25.0x, -----) he: 5.3s (15.5x, -----) ca: 7.5s (22.0x, -----) dr: 4.9s (14.4x, -----) ma: 2.2s ( 6.4x, -----) fbench valgrind-old:0.34s no: 2.1s ( 6.2x, 1.9%) me: 5.2s (15.3x, 0.8%) ca: 8.5s (25.0x, 0.0%) he: 5.2s (15.4x, 0.8%) ca: 7.5s (22.2x, -0.8%) dr: 4.8s (14.1x, 1.4%) ma: 2.1s ( 6.3x, 1.4%) -- ffbench -- ffbench valgrind-new:0.45s no: 1.3s ( 3.0x, -----) me: 2.4s ( 5.4x, -----) ca: 2.5s ( 5.5x, -----) he: 7.0s (15.6x, -----) ca: 7.3s (16.2x, -----) dr: 4.9s (11.0x, -----) ma: 1.1s ( 2.4x, -----) ffbench valgrind-old:0.45s no: 1.3s ( 3.0x, -0.8%) me: 2.5s ( 5.5x, -2.1%) ca: 2.5s ( 5.6x, -1.2%) he: 6.9s (15.4x, 1.3%) ca: 7.0s (15.6x, 4.1%) dr: 4.9s (10.9x, 0.4%) ma: 1.0s ( 2.2x, 6.5%) -- heap -- heap valgrind-new:0.41s no: 2.4s ( 5.9x, -----) me: 9.8s (23.8x, -----) ca:13.2s (32.3x, -----) he:12.1s (29.5x, -----) ca:12.1s (29.5x, -----) dr: 8.6s (21.0x, -----) ma: 8.8s (21.4x, -----) heap valgrind-old:0.41s no: 2.4s ( 5.9x, -0.8%) me: 9.8s (24.0x, -0.7%) ca:13.2s (32.3x, 0.0%) he:12.1s (29.6x, -0.4%) ca:12.1s (29.5x, 0.1%) dr: 8.6s (21.0x, 0.1%) ma: 8.8s (21.3x, 0.1%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.43s no: 2.6s ( 6.1x, -----) me:13.8s (32.0x, -----) ca:14.2s (33.0x, -----) he:13.2s (30.6x, -----) ca:13.1s (30.5x, -----) dr: 9.6s (22.4x, -----) ma: 8.9s (20.7x, -----) heap_pdb4 valgrind-old:0.43s no: 2.6s ( 6.0x, 1.5%) me:13.8s (32.1x, -0.4%) ca:14.2s (32.9x, 0.4%) he:13.5s (31.4x, -2.6%) ca:13.1s (30.5x, -0.1%) dr: 9.6s (22.3x, 0.3%) ma: 8.9s (20.8x, -0.3%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (17.7x, -----) me: 2.2s (73.0x, -----) ca: 1.9s (63.3x, -----) he: 1.8s (60.7x, -----) ca: 1.9s (61.7x, -----) dr: 1.6s (53.7x, -----) ma: 1.6s (52.0x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (17.3x, 1.9%) me: 2.2s (72.7x, 0.5%) ca: 1.9s (63.3x, 0.0%) he: 1.8s (61.0x, -0.5%) ca: 1.9s (62.0x, -0.5%) dr: 1.6s (53.7x, -0.0%) ma: 1.6s (52.0x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.8s (10.7x, -----) me: 3.4s (48.6x, -----) ca: 4.7s (67.0x, -----) he: 4.9s (69.9x, -----) ca: 2.9s (41.4x, -----) dr: 2.4s (33.9x, -----) ma: 2.3s (32.3x, -----) many-xpts valgrind-old:0.07s no: 0.7s (10.6x, 1.3%) me: 3.4s (48.4x, 0.3%) ca: 4.7s (67.1x, -0.2%) he: 4.9s (69.7x, 0.2%) ca: 2.9s (41.0x, 1.0%) dr: 2.4s (33.7x, 0.4%) ma: 2.3s (32.4x, -0.4%) -- sarp -- sarp valgrind-new:0.02s no: 0.4s (20.5x, -----) me: 3.0s (152.0x, -----) ca: 3.0s (149.5x, -----) he:11.2s (559.5x, -----) ca: 1.7s (84.0x, -----) dr: 1.1s (55.0x, -----) ma: 0.4s (21.0x, -----) sarp valgrind-old:0.02s no: 0.4s (19.5x, 4.9%) me: 3.0s (151.5x, 0.3%) ca: 3.0s (149.5x, 0.0%) he:11.2s (560.0x, -0.1%) ca: 1.7s (83.0x, 1.2%) dr: 1.1s (53.0x, 3.6%) ma: 0.4s (21.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.27s no: 3.0s (11.0x, -----) me:13.8s (51.2x, -----) ca:17.4s (64.3x, -----) he:19.0s (70.4x, -----) ca:15.6s (57.7x, -----) dr:12.1s (44.7x, -----) ma: 3.8s (14.1x, -----) tinycc valgrind-old:0.27s no: 3.0s (11.0x, 0.3%) me:13.9s (51.3x, -0.3%) ca:17.3s (64.1x, 0.3%) he:19.1s (70.6x, -0.3%) ca:15.6s (57.6x, 0.2%) dr:12.1s (44.7x, 0.1%) ma: 3.8s (14.2x, -0.3%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 53m35.873s user 52m14.040s sys 0m22.197s |
|
From: Christian B. <bor...@de...> - 2014-05-14 04:12:23
|
valgrind revision: 13961 VEX revision: 2860 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.21-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-05-14 03:45:01 CEST Ended at 2014-05-14 06:12:10 CEST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 645 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.22s no: 4.3s (19.7x, -----) me: 6.9s (31.2x, -----) ca:26.4s (119.9x, -----) he: 5.1s (23.0x, -----) ca: 9.2s (41.6x, -----) dr: 5.4s (24.5x, -----) ma: 4.6s (20.8x, -----) bigcode1 valgrind-old:0.22s no: 4.3s (19.6x, 0.2%) me: 6.9s (31.4x, -0.6%) ca:26.4s (119.8x, 0.0%) he: 5.1s (23.0x, 0.0%) ca: 9.1s (41.5x, 0.1%) dr: 5.4s (24.5x, 0.2%) ma: 4.6s (20.8x, 0.0%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 7.2s (30.2x, -----) me:13.8s (57.4x, -----) ca:39.5s (164.8x, -----) he:10.1s (42.1x, -----) ca:14.2s (59.3x, -----) dr: 9.6s (39.8x, -----) ma: 8.1s (33.6x, -----) bigcode2 valgrind-old:0.24s no: 7.2s (30.0x, 0.4%) me:13.8s (57.4x, 0.0%) ca:39.6s (164.9x, -0.1%) he:10.1s (42.1x, 0.1%) ca:14.3s (59.4x, -0.2%) dr: 9.6s (39.9x, -0.2%) ma: 8.1s (33.8x, -0.4%) -- bz2 -- bz2 valgrind-new:0.69s no: 5.1s ( 7.4x, -----) me:12.6s (18.3x, -----) ca:30.7s (44.5x, -----) he:19.6s (28.4x, -----) ca:34.3s (49.7x, -----) dr:29.5s (42.7x, -----) ma: 3.9s ( 5.6x, -----) bz2 valgrind-old:0.69s no: 5.1s ( 7.4x, 0.0%) me:12.6s (18.3x, -0.2%) ca:30.7s (44.4x, 0.1%) he:19.6s (28.4x, -0.1%) ca:34.3s (49.7x, 0.0%) dr:29.5s (42.7x, -0.0%) ma: 3.9s ( 5.6x, 0.0%) -- fbench -- fbench valgrind-new:0.41s no: 1.6s ( 3.9x, -----) me: 4.2s (10.2x, -----) ca: 9.3s (22.7x, -----) he: 6.3s (15.4x, -----) 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.6%) me: 4.2s (10.2x, 0.0%) ca: 9.3s (22.6x, 0.3%) he: 6.3s (15.4x, -0.3%) ca: 7.2s (17.5x, -0.3%) dr: 5.4s (13.2x, 0.0%) ma: 1.7s ( 4.1x, 0.6%) -- ffbench -- ffbench valgrind-new:0.20s no: 1.1s ( 5.2x, -----) me: 2.9s (14.7x, -----) ca: 3.0s (15.0x, -----) he:44.1s (220.4x, -----) ca: 9.6s (48.0x, -----) dr: 6.8s (33.9x, -----) ma: 1.0s ( 4.8x, -----) ffbench valgrind-old:0.20s no: 1.1s ( 5.3x, -1.0%) me: 2.9s (14.7x, 0.3%) ca: 3.0s (15.0x, 0.0%) he:44.1s (220.5x, -0.0%) ca: 9.6s (48.0x, 0.0%) dr: 6.8s (34.0x, -0.1%) ma: 1.0s ( 4.8x, 0.0%) -- heap -- heap valgrind-new:0.23s no: 1.9s ( 8.1x, -----) me: 8.7s (37.8x, -----) ca:13.1s (57.1x, -----) he:13.1s (56.9x, -----) ca:11.2s (48.7x, -----) dr: 7.6s (32.9x, -----) ma: 7.8s (33.9x, -----) heap valgrind-old:0.23s no: 1.9s ( 8.1x, 0.0%) me: 8.7s (37.7x, 0.2%) ca:13.2s (57.2x, -0.1%) he:13.1s (56.7x, 0.3%) ca:11.2s (48.7x, 0.0%) dr: 7.6s (33.0x, -0.1%) ma: 7.9s (34.2x, -1.0%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.22s no: 2.0s ( 9.3x, -----) me:12.9s (58.7x, -----) ca:14.2s (64.5x, -----) he:14.3s (65.0x, -----) ca:12.3s (56.0x, -----) dr: 8.5s (38.5x, -----) ma: 7.9s (35.9x, -----) heap_pdb4 valgrind-old:0.22s no: 2.0s ( 9.3x, 0.0%) me:12.8s (58.4x, 0.5%) ca:14.2s (64.6x, -0.1%) he:14.3s (65.1x, -0.1%) ca:12.3s (56.0x, -0.2%) dr: 8.5s (38.6x, -0.2%) ma: 8.0s (36.5x, -1.5%) -- many-loss-records -- many-loss-records valgrind-new:0.02s no: 0.5s (23.5x, -----) me: 2.1s (104.0x, -----) ca: 1.9s (97.0x, -----) he: 2.2s (109.5x, -----) ca: 1.9s (95.5x, -----) dr: 1.7s (86.0x, -----) ma: 1.6s (82.0x, -----) many-loss-records valgrind-old:0.02s no: 0.5s (23.5x, 0.0%) me: 2.1s (104.0x, 0.0%) ca: 1.9s (97.0x, 0.0%) he: 2.2s (109.5x, 0.0%) ca: 1.9s (95.5x, 0.0%) dr: 1.7s (86.0x, 0.0%) ma: 1.6s (82.0x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.6s ( 9.0x, -----) me: 3.1s (45.0x, -----) ca:373.8s (5339.9x, -----) he: 6.7s (96.1x, -----) ca: 2.8s (39.7x, -----) dr: 2.5s (35.9x, -----) ma: 2.6s (37.0x, -----) many-xpts valgrind-old:0.07s no: 0.6s ( 9.0x, 0.0%) me: 3.1s (45.0x, 0.0%) ca:374.0s (5343.4x, -0.1%) he: 6.7s (95.7x, 0.4%) ca: 2.8s (39.9x, -0.4%) dr: 2.5s (35.9x, 0.0%) ma: 2.6s (37.0x, 0.0%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (19.0x, -----) me: 3.5s (116.0x, -----) ca: 3.1s (105.0x, -----) he:18.0s (600.7x, -----) ca: 2.0s (68.3x, -----) dr: 1.4s (45.0x, -----) ma: 0.5s (16.0x, -----) sarp valgrind-old:0.03s no: 0.6s (19.0x, 0.0%) me: 3.5s (116.3x, -0.3%) ca: 3.1s (105.0x, 0.0%) he:18.0s (600.7x, 0.0%) ca: 2.0s (68.3x, 0.0%) dr: 1.4s (45.0x, 0.0%) ma: 0.5s (16.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.22s no: 2.8s (12.8x, -----) me:14.4s (65.5x, -----) ca:29.9s (136.0x, -----) he:28.2s (128.0x, -----) ca:21.4s (97.2x, -----) dr:20.4s (92.6x, -----) ma: 4.0s (18.0x, -----) tinycc valgrind-old:0.22s no: 2.8s (12.8x, 0.0%) me:14.5s (66.0x, -0.8%) ca:29.9s (136.0x, -0.0%) he:28.2s (128.0x, 0.0%) ca:21.4s (97.1x, 0.1%) dr:20.4s (92.6x, 0.0%) ma: 4.0s (18.1x, -0.3%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 110m40.478s user 110m3.287s sys 0m30.224s |
|
From: Tom H. <to...@co...> - 2014-05-14 03:24:20
|
valgrind revision: 13961 VEX revision: 2860 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.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2014-05-14 03:51:13 BST Ended at 2014-05-14 04:23:57 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 649 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: Rich C. <rc...@wi...> - 2014-05-14 03:03:26
|
valgrind revision: 13961 VEX revision: 2860 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-05-13 21:30:01 CDT Ended at 2014-05-13 22:03:16 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 == 671 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-05-13 21:47:49.434044870 -0500 +++ mssnapshot.stderrB.out 2014-05-13 21:52:08.475673001 -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-05-13 21:31:28.633955660 -0500 +++ mssnapshot.stderrB.out 2014-05-13 21:36:38.997131600 -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: Tom H. <to...@co...> - 2014-05-14 02:48:21
|
valgrind revision: 13961 VEX revision: 2860 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.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2014-05-14 03:12:55 BST Ended at 2014-05-14 03:48:07 BST 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 == 678 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Tom H. <to...@co...> - 2014-05-14 02:41:43
|
valgrind revision: 13961 VEX revision: 2860 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.10-200.fc20.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2014-05-14 03:03:01 BST Ended at 2014-05-14 03:41:31 BST 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 == 678 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Rich C. <rc...@wi...> - 2014-05-14 02:31:51
|
valgrind revision: 13961
VEX revision: 2860
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-05-13 19:22:01 CDT
Ended at 2014-05-13 21:31:42 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
== 592 tests, 5 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures ==
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-05-13 20:29:22.195522424 -0500
+++ hackedbz2.stderr.out 2014-05-13 21:30:26.275027405 -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/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-05-13 20:28:43.872077854 -0500
+++ err_disable3.stderr.out 2014-05-13 20:49:06.838264816 -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-05-13 20:28:50.614156066 -0500
+++ err_disable4.stderr.out 2014-05-13 20:49:10.692309525 -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-05-13 20:28:47.163116032 -0500
+++ threadname.stderr.out 2014-05-13 20:54:55.860313630 -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-05-13 20:28:49.079138259 -0500
+++ threadname_xml.stderr.out 2014-05-13 20:54:57.855336773 -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-05-13 19:23:28.007652054 -0500
+++ hackedbz2.stderr.out 2014-05-13 20:23:53.097704740 -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/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-05-13 19:23:35.692741204 -0500
+++ err_disable3.stderr.out 2014-05-13 19:42:08.989655953 -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-05-13 19:23:38.968779208 -0500
+++ err_disable4.stderr.out 2014-05-13 19:42:12.840700627 -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-05-13 19:23:36.434749812 -0500
+++ threadname.stderr.out 2014-05-13 19:48:01.883749684 -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-05-13 19:23:37.521762422 -0500
+++ threadname_xml.stderr.out 2014-05-13 19:48:03.913773233 -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>
|
|
From: Tom H. <to...@co...> - 2014-05-14 02:28:41
|
valgrind revision: 13961 VEX revision: 2860 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.10-200.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-05-14 02:51:03 BST Ended at 2014-05-14 03:28:23 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 678 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-05-14 02:21:00
|
valgrind revision: 13961 VEX revision: 2860 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.10-200.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-05-14 02:41:09 BST Ended at 2014-05-14 03:20:44 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 678 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-05-14 02:12:47
|
valgrind revision: 13961 VEX revision: 2860 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.10-200.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-05-14 02:31:36 BST Ended at 2014-05-14 03:12:32 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 678 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/hackedbz2 (stderr) |