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
(1) |
2
(10) |
3
(10) |
4
(14) |
5
(10) |
|
6
|
7
(1) |
8
(14) |
9
(10) |
10
(4) |
11
(2) |
12
(4) |
|
13
|
14
(2) |
15
(11) |
16
(10) |
17
|
18
|
19
(18) |
|
20
(14) |
21
(10) |
22
(1) |
23
(11) |
24
(14) |
25
(10) |
26
(6) |
|
27
(13) |
28
(13) |
29
(12) |
30
(13) |
|
|
|
|
From: <sv...@va...> - 2014-04-20 22:10:41
|
Author: philippe
Date: Sun Apr 20 22:10:24 2014
New Revision: 13903
Log:
* Factorise code between is_valid_for_client and is_valid_for_valgrind.
* Implement VG_(am_is_valid_for_valgrind)
* Use it in gdbsrv to check accessibility when hostvisibility is activated
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
trunk/coregrind/m_gdbserver/target.c
trunk/coregrind/pub_core_aspacemgr.h
Modified: trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
==============================================================================
--- trunk/coregrind/m_aspacemgr/aspacemgr-linux.c (original)
+++ trunk/coregrind/m_aspacemgr/aspacemgr-linux.c Sun Apr 20 22:10:24 2014
@@ -1294,12 +1294,12 @@
}
-/* Test if a piece of memory is addressable by the client with at
+/* Test if a piece of memory is addressable by client or by valgrind with at
least the "prot" protection permissions by examining the underlying
- segments. If freeOk is True then SkFree areas are also allowed.
+ segments. If client && freeOk is True then SkFree areas are also allowed.
*/
static
-Bool is_valid_for_client( Addr start, SizeT len, UInt prot, Bool freeOk )
+Bool is_valid_for( Bool client, Addr start, SizeT len, UInt prot, Bool freeOk )
{
Int i, iLo, iHi;
Bool needR, needW, needX;
@@ -1327,18 +1327,32 @@
iHi = find_nsegment_idx(start + len - 1);
}
- for (i = iLo; i <= iHi; i++) {
- if ( (nsegments[i].kind == SkFileC
- || nsegments[i].kind == SkAnonC
- || nsegments[i].kind == SkShmC
- || (nsegments[i].kind == SkFree && freeOk)
- || (nsegments[i].kind == SkResvn && freeOk))
- && (needR ? nsegments[i].hasR : True)
- && (needW ? nsegments[i].hasW : True)
- && (needX ? nsegments[i].hasX : True) ) {
- /* ok */
- } else {
- return False;
+ if (client) {
+ for (i = iLo; i <= iHi; i++) {
+ if ( (nsegments[i].kind == SkFileC
+ || nsegments[i].kind == SkAnonC
+ || nsegments[i].kind == SkShmC
+ || (nsegments[i].kind == SkFree && freeOk)
+ || (nsegments[i].kind == SkResvn && freeOk))
+ && (needR ? nsegments[i].hasR : True)
+ && (needW ? nsegments[i].hasW : True)
+ && (needX ? nsegments[i].hasX : True) ) {
+ /* ok */
+ } else {
+ return False;
+ }
+ }
+ } else {
+ for (i = iLo; i <= iHi; i++) {
+ if ( (nsegments[i].kind == SkFileV
+ || nsegments[i].kind == SkAnonV)
+ && (needR ? nsegments[i].hasR : True)
+ && (needW ? nsegments[i].hasW : True)
+ && (needX ? nsegments[i].hasX : True) ) {
+ /* ok */
+ } else {
+ return False;
+ }
}
}
return True;
@@ -1350,7 +1364,8 @@
Bool VG_(am_is_valid_for_client)( Addr start, SizeT len,
UInt prot )
{
- return is_valid_for_client( start, len, prot, False/*free not OK*/ );
+ return is_valid_for(/* client */ True,
+ start, len, prot, False/*free not OK*/ );
}
/* Variant of VG_(am_is_valid_for_client) which allows free areas to
@@ -1360,32 +1375,15 @@
Bool VG_(am_is_valid_for_client_or_free_or_resvn)
( Addr start, SizeT len, UInt prot )
{
- return is_valid_for_client( start, len, prot, True/*free is OK*/ );
+ return is_valid_for(/* client */ True,
+ start, len, prot, True/*free is OK*/ );
}
-/* Test if a piece of memory is addressable by valgrind with at least
- PROT_NONE protection permissions by examining the underlying
- segments. */
-static Bool is_valid_for_valgrind( Addr start, SizeT len )
+Bool VG_(am_is_valid_for_valgrind) ( Addr start, SizeT len, UInt prot )
{
- Int i, iLo, iHi;
-
- if (len == 0)
- return True; /* somewhat dubious case */
- if (start + len < start)
- return False; /* reject wraparounds */
-
- iLo = find_nsegment_idx(start);
- iHi = find_nsegment_idx(start + len - 1);
- for (i = iLo; i <= iHi; i++) {
- if (nsegments[i].kind == SkFileV || nsegments[i].kind == SkAnonV) {
- /* ok */
- } else {
- return False;
- }
- }
- return True;
+ return is_valid_for(/* client */ False,
+ start, len, prot, False/*irrelevant*/ );
}
@@ -2657,7 +2655,8 @@
( start, len, VKI_PROT_NONE ))
goto eINVAL;
} else {
- if (!is_valid_for_valgrind( start, len ))
+ if (!VG_(am_is_valid_for_valgrind)
+ ( start, len, VKI_PROT_NONE ))
goto eINVAL;
}
Modified: trunk/coregrind/m_gdbserver/target.c
==============================================================================
--- trunk/coregrind/m_gdbserver/target.c (original)
+++ trunk/coregrind/m_gdbserver/target.c Sun Apr 20 22:10:24 2014
@@ -452,9 +452,11 @@
{
const void *sourceaddr = C2v (memaddr);
dlog(2, "reading memory %p size %d\n", sourceaddr, len);
- if (VG_(am_is_valid_for_client_or_free_or_resvn) ((Addr) sourceaddr,
- len, VKI_PROT_READ)
- || (hostvisibility /* TBD: && check valgrind read accessibility */)) {
+ if (VG_(am_is_valid_for_client) ((Addr) sourceaddr,
+ len, VKI_PROT_READ)
+ || (hostvisibility
+ && VG_(am_is_valid_for_valgrind) ((Addr) sourceaddr,
+ len, VKI_PROT_READ))) {
VG_(memcpy) (myaddr, sourceaddr, len);
return 0;
} else {
@@ -469,10 +471,11 @@
void *targetaddr = C2v (memaddr);
dlog(2, "writing memory %p size %d\n", targetaddr, len);
is_valid_client_memory
- = VG_(am_is_valid_for_client_or_free_or_resvn) ((Addr)targetaddr,
- len, VKI_PROT_WRITE);
+ = VG_(am_is_valid_for_client) ((Addr)targetaddr, len, VKI_PROT_WRITE);
if (is_valid_client_memory
- || (hostvisibility /* TBD: && check valgrind write accessibility */)) {
+ || (hostvisibility
+ && VG_(am_is_valid_for_valgrind) ((Addr) targetaddr,
+ len, VKI_PROT_READ))) {
if (len > 0) {
VG_(memcpy) (targetaddr, myaddr, len);
if (is_valid_client_memory && VG_(tdict).track_post_mem_write) {
Modified: trunk/coregrind/pub_core_aspacemgr.h
==============================================================================
--- trunk/coregrind/pub_core_aspacemgr.h (original)
+++ trunk/coregrind/pub_core_aspacemgr.h Sun Apr 20 22:10:24 2014
@@ -86,6 +86,12 @@
// extern Bool VG_(am_is_valid_for_client)
// ( Addr start, SizeT len, UInt prot );
+/* Same as VG_(am_is_valid_for_client) but for valgrind :
+ test if memory is addressable by valgrind with at least
+ the protection 'prot'. */
+extern Bool VG_(am_is_valid_for_valgrind)
+ ( Addr start, SizeT len, UInt prot );
+
/* Variant of VG_(am_is_valid_for_client) which allows free areas to
be consider part of the client's addressable space. It also
considers reservations to be allowable, since from the client's
|
|
From: <sv...@va...> - 2014-04-20 19:50:23
|
Author: philippe
Date: Sun Apr 20 19:50:13 2014
New Revision: 13902
Log:
Cleanup some old leftover of AIX port + fix a comment
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
trunk/coregrind/m_mallocfree.c
trunk/coregrind/pub_core_aspacemgr.h
Modified: trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
==============================================================================
--- trunk/coregrind/m_aspacemgr/aspacemgr-linux.c (original)
+++ trunk/coregrind/m_aspacemgr/aspacemgr-linux.c Sun Apr 20 19:50:13 2014
@@ -2421,21 +2421,6 @@
}
-/* Similarly, acquire new address space for the client but with
- considerable restrictions on what can be done with it: (1) the
- actual protections may exceed those stated in 'prot', (2) the
- area's protections cannot be later changed using any form of
- mprotect, and (3) the area cannot be freed using any form of
- munmap. On Linux this behaves the same as
- VG_(am_mmap_anon_float_client). On AIX5 this *may* allocate memory
- by using sbrk, so as to make use of large pages on AIX. */
-
-SysRes VG_(am_sbrk_anon_float_client) ( SizeT length, Int prot )
-{
- return VG_(am_mmap_anon_float_client) ( length, prot );
-}
-
-
/* Map anonymously at an unconstrained address for V, and update the
segment array accordingly. This is fundamentally how V allocates
itself more address space when needed. */
@@ -2541,15 +2526,6 @@
return sr_isError(sres) ? NULL : (void*)sr_Res(sres);
}
-/* Same comments apply as per VG_(am_sbrk_anon_float_client). On
- Linux this behaves the same as VG_(am_mmap_anon_float_valgrind). */
-
-SysRes VG_(am_sbrk_anon_float_valgrind)( SizeT cszB )
-{
- return VG_(am_mmap_anon_float_valgrind)( cszB );
-}
-
-
/* Map a file at an unconstrained address for V, and update the
segment array accordingly. Use the provided flags */
Modified: trunk/coregrind/m_mallocfree.c
==============================================================================
--- trunk/coregrind/m_mallocfree.c (original)
+++ trunk/coregrind/m_mallocfree.c Sun Apr 20 19:50:13 2014
@@ -815,12 +815,8 @@
if (a->clientmem) {
// client allocation -- return 0 to client if it fails
- if (unsplittable)
- sres = VG_(am_mmap_anon_float_client)
- ( cszB, VKI_PROT_READ|VKI_PROT_WRITE|VKI_PROT_EXEC );
- else
- sres = VG_(am_sbrk_anon_float_client)
- ( cszB, VKI_PROT_READ|VKI_PROT_WRITE|VKI_PROT_EXEC );
+ sres = VG_(am_mmap_anon_float_client)
+ ( cszB, VKI_PROT_READ|VKI_PROT_WRITE|VKI_PROT_EXEC );
if (sr_isError(sres))
return 0;
sb = (Superblock*)(AddrH)sr_Res(sres);
@@ -830,10 +826,7 @@
VG_(am_set_segment_isCH_if_SkAnonC)( VG_(am_find_nsegment)( (Addr)sb ) );
} else {
// non-client allocation -- abort if it fails
- if (unsplittable)
- sres = VG_(am_mmap_anon_float_valgrind)( cszB );
- else
- sres = VG_(am_sbrk_anon_float_valgrind)( cszB );
+ sres = VG_(am_mmap_anon_float_valgrind)( cszB );
if (sr_isError(sres)) {
VG_(out_of_memory_NORETURN)("newSuperblock", cszB);
/* NOTREACHED */
@@ -1610,7 +1603,7 @@
vg_assert(a->sblocks_used <= a->sblocks_size);
if (a->sblocks_used == a->sblocks_size) {
Superblock ** array;
- SysRes sres = VG_(am_sbrk_anon_float_valgrind)(sizeof(Superblock *) *
+ SysRes sres = VG_(am_mmap_anon_float_valgrind)(sizeof(Superblock *) *
a->sblocks_size * 2);
if (sr_isError(sres)) {
VG_(out_of_memory_NORETURN)("arena_init", sizeof(Superblock *) *
Modified: trunk/coregrind/pub_core_aspacemgr.h
==============================================================================
--- trunk/coregrind/pub_core_aspacemgr.h (original)
+++ trunk/coregrind/pub_core_aspacemgr.h Sun Apr 20 19:50:13 2014
@@ -229,27 +229,11 @@
update the segment array accordingly. */
extern SysRes VG_(am_mmap_anon_float_client) ( SizeT length, Int prot );
-/* Similarly, acquire new address space for the client but with
- considerable restrictions on what can be done with it: (1) the
- actual protections may exceed those stated in 'prot', (2) the
- area's protections cannot be later changed using any form of
- mprotect, and (3) the area cannot be freed using any form of
- munmap. On Linux this behaves the same as
- VG_(am_mmap_anon_float_client). On AIX5 this *may* allocate memory
- by using sbrk, so as to make use of large pages on AIX. */
-extern SysRes VG_(am_sbrk_anon_float_client) ( SizeT length, Int prot );
-
-
/* Map anonymously at an unconstrained address for V, and update the
segment array accordingly. This is fundamentally how V allocates
itself more address space when needed. */
extern SysRes VG_(am_mmap_anon_float_valgrind)( SizeT cszB );
-/* Same comments apply as per VG_(am_sbrk_anon_float_client). On
- Linux this behaves the same as VG_(am_mmap_anon_float_valgrind). */
-extern SysRes VG_(am_sbrk_anon_float_valgrind)( SizeT cszB );
-
-
/* Map privately a file at an unconstrained address for V, and update the
segment array accordingly. This is used by V for transiently
mapping in object files to read their debug info. */
@@ -363,7 +347,7 @@
VgStack;
-/* Allocate and initialise a VgStack (anonymous client space).
+/* Allocate and initialise a VgStack (anonymous valgrind space).
Protect the stack active area and the guard areas appropriately.
Returns NULL on failure, else the address of the bottom of the
stack. On success, also sets *initial_sp to what the stack pointer
|
Author: philippe
Date: Sun Apr 20 14:20:37 2014
New Revision: 13901
Log:
* New option --aspace-minaddr=<address> allows to (possibly) make
use of some more memory by decreasing the default value
or solve some conflicts with system libraries by increasing the value.
See user manual for details.
Note that the lowest accepted possible value is 0x1000, which is
the current value used by Macos in 32bits.
On linux, 0x10000 (64KB) seems to cause not much conflicts.
Default values are unchanged (i.e. are the same as when there
was no clo option).
Modified:
trunk/NEWS
trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
trunk/coregrind/m_main.c
trunk/coregrind/pub_core_options.h
trunk/docs/xml/manual-core.xml
trunk/none/tests/cmdline1.stdout.exp
trunk/none/tests/cmdline2.stdout.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Sun Apr 20 14:20:37 2014
@@ -34,6 +34,12 @@
- A new monitor command "v.set hostvisibility" that allows GDB server
to provide access to Valgrind internal host status/memory.
+* New option --aspace-minaddr=<address> allows to (possibly) make
+ use of some more memory by decreasing the default value above which
+ Valgrind maps memory or solve some conflicts with system libraries
+ by increasing the value.
+ See user manual for details.
+
* ==================== FIXED BUGS ====================
The following bugs have been fixed or resolved. Note that "n-i-bz"
Modified: trunk/coregrind/m_aspacemgr/aspacemgr-linux.c
==============================================================================
--- trunk/coregrind/m_aspacemgr/aspacemgr-linux.c (original)
+++ trunk/coregrind/m_aspacemgr/aspacemgr-linux.c Sun Apr 20 14:20:37 2014
@@ -105,6 +105,9 @@
to some low-ish value at startup (64M) and aspacem_maxAddr is
derived from the stack pointer at system startup. This seems a
reliable way to establish the initial boundaries.
+ A command line option allows to change the value of aspacem_minAddr,
+ so as to allow memory hungry applications to use the lowest
+ part of the memory.
64-bit Linux is similar except for the important detail that the
upper boundary is set to 64G. The reason is so that all
@@ -316,6 +319,19 @@
/* Limits etc */
+
+Addr VG_(clo_aspacem_minAddr)
+#if defined(VGO_darwin)
+# if VG_WORDSIZE == 4
+ = (Addr) 0x00001000;
+# else
+ = (Addr) 0x100000000; // 4GB page zero
+# endif
+#else
+ = (Addr) 0x04000000; // 64M
+#endif
+
+
// The smallest address that aspacem will try to allocate
static Addr aspacem_minAddr = 0;
@@ -1629,16 +1645,16 @@
nsegments[0] = seg;
nsegments_used = 1;
+ aspacem_minAddr = VG_(clo_aspacem_minAddr);
+
#if defined(VGO_darwin)
# if VG_WORDSIZE == 4
- aspacem_minAddr = (Addr) 0x00001000;
aspacem_maxAddr = (Addr) 0xffffffff;
aspacem_cStart = aspacem_minAddr;
aspacem_vStart = 0xf0000000; // 0xc0000000..0xf0000000 available
# else
- aspacem_minAddr = (Addr) 0x100000000; // 4GB page zero
aspacem_maxAddr = (Addr) 0x7fffffffffff;
aspacem_cStart = aspacem_minAddr;
@@ -1657,8 +1673,6 @@
" sp_at_startup = 0x%010llx (supplied)\n",
(ULong)sp_at_startup );
- aspacem_minAddr = (Addr) 0x04000000; // 64M
-
# if VG_WORDSIZE == 8
aspacem_maxAddr = (Addr)0x1000000000ULL - 1; // 64G
# ifdef ENABLE_INNER
@@ -1671,7 +1685,7 @@
aspacem_maxAddr = VG_PGROUNDDN( sp_at_startup ) - 1;
# endif
- aspacem_cStart = aspacem_minAddr; // 64M
+ aspacem_cStart = aspacem_minAddr;
aspacem_vStart = VG_PGROUNDUP(aspacem_minAddr
+ (aspacem_maxAddr - aspacem_minAddr + 1) / 2);
# ifdef ENABLE_INNER
Modified: trunk/coregrind/m_main.c
==============================================================================
--- trunk/coregrind/m_main.c (original)
+++ trunk/coregrind/m_main.c Sun Apr 20 14:20:37 2014
@@ -179,6 +179,7 @@
" program counters in max <number> frames) [0]\n"
" --num-transtab-sectors=<number> size of translated code cache [%d]\n"
" more sectors may increase performance, but use more memory.\n"
+" --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed]\n"
" --show-emwarns=no|yes show warnings about emulation limits? [no]\n"
" --require-text-symbol=:sonamepattern:symbolpattern abort run if the\n"
" stated shared object doesn't have the stated\n"
@@ -493,10 +494,11 @@
else if VG_STREQ( arg, "-d") {}
else if VG_STREQN(17, arg, "--max-stackframe=") {}
else if VG_STREQN(17, arg, "--main-stacksize=") {}
- else if VG_STREQN(12, arg, "--sim-hints=") {}
+ else if VG_STREQN(12, arg, "--sim-hints=") {}
else if VG_STREQN(15, arg, "--profile-heap=") {}
else if VG_STREQN(20, arg, "--core-redzone-size=") {}
else if VG_STREQN(15, arg, "--redzone-size=") {}
+ else if VG_STREQN(17, arg, "--aspace-minaddr=") {}
/* Obsolete options. Report an error and exit */
else if VG_STREQN(34, arg, "--vex-iropt-precise-memory-exns=no") {
@@ -1542,10 +1544,12 @@
//--------------------------------------------------------------
/* Start the debugging-log system ASAP. First find out how many
"-d"s were specified. This is a pre-scan of the command line. Also
- get --profile-heap=yes, --core-redzone-size, --redzone-size which are
- needed by the time we start up dynamic memory management. */
+ get --profile-heap=yes, --core-redzone-size, --redzone-size
+ --aspace-minaddr which are needed by the time we start up dynamic
+ memory management. */
loglevel = 0;
for (i = 1; i < argc; i++) {
+ const HChar* tmp_str;
if (argv[i][0] != '-') break;
if VG_STREQ(argv[i], "--") break;
if VG_STREQ(argv[i], "-d") loglevel++;
@@ -1554,6 +1558,23 @@
0, MAX_CLO_REDZONE_SZB) {}
if VG_BINT_CLO(argv[i], "--redzone-size", VG_(clo_redzone_size),
0, MAX_CLO_REDZONE_SZB) {}
+ if VG_STR_CLO(argv[i], "--aspace-minaddr", tmp_str) {
+# if VG_WORDSIZE == 4
+ const Addr max = (Addr) 0x40000000; // 1Gb
+# else
+ const Addr max = (Addr) 0x200000000; // 8Gb
+# endif
+ Bool ok = VG_(parse_Addr) (&tmp_str, &VG_(clo_aspacem_minAddr));
+ if (!ok)
+ VG_(fmsg_bad_option)(argv[i], "Invalid address\n");
+
+ if (!VG_IS_PAGE_ALIGNED(VG_(clo_aspacem_minAddr))
+ || VG_(clo_aspacem_minAddr) < (Addr) 0x1000
+ || VG_(clo_aspacem_minAddr) > max) // 1Gb
+ VG_(fmsg_bad_option)(argv[i],
+ "Must be a page aligned address between "
+ "0x1000 and 0x%lx\n", max);
+ }
}
/* ... and start the debug logger. Now we can safely emit logging
Modified: trunk/coregrind/pub_core_options.h
==============================================================================
--- trunk/coregrind/pub_core_options.h (original)
+++ trunk/coregrind/pub_core_options.h Sun Apr 20 14:20:37 2014
@@ -297,6 +297,10 @@
/* Max number of sectors that will be used by the translation code cache. */
extern UInt VG_(clo_num_transtab_sectors);
+/* Only client requested fixed mapping can be done below
+ VG_(clo_aspacem_minAddr). */
+extern Addr VG_(clo_aspacem_minAddr);
+
/* Delay startup to allow GDB to be attached? Default: NO */
extern Bool VG_(clo_wait_for_gdb);
Modified: trunk/docs/xml/manual-core.xml
==============================================================================
--- trunk/docs/xml/manual-core.xml (original)
+++ trunk/docs/xml/manual-core.xml Sun Apr 20 14:20:37 2014
@@ -2062,6 +2062,35 @@
</listitem>
</varlistentry>
+ <varlistentry id="opt.aspace-minaddr" xreflabel="----aspace-minaddr">
+ <term>
+ <option><![CDATA[--aspace-minaddr=<address> [default: depends
+ on the platform] ]]></option>
+ </term>
+ <listitem>
+ <para>To avoid potential conflicts with some system libraries,
+ Valgrind does not use the address space
+ below <option>--aspace-minaddr</option> value, keeping it
+ reserved in case a library specifically requests memory in this
+ region. So, some "pessimistic" value is guessed by Valgrind
+ depending on the platform. On linux, by default, Valgrind avoids
+ using the first 64MB even if typically there is no conflict in
+ this complete zone. You can use the
+ option <option>--aspace-minaddr</option> to have your memory
+ hungry application benefitting from more of this lower memory.
+ On the other hand, if you encounter a conflict, increasing
+ aspace-minaddr value might solve it. Conflicts will typically
+ manifest themselves with mmap failures in the low range of the
+ address space. The
+ provided <computeroutput>address</computeroutput> must be page
+ aligned and must be equal or bigger to 0x1000 (4KB). To find the
+ default value on your platform, do something such as
+ <computeroutput>valgrind -d -d date 2>&1 | grep -i minaddr</computeroutput>. Values lower than 0x10000 (64KB) are known to create problems
+ on some distributions.
+ </para>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="opt.show-emwarns" xreflabel="--show-emwarns">
<term>
<option><![CDATA[--show-emwarns=<yes|no> [default: no] ]]></option>
Modified: trunk/none/tests/cmdline1.stdout.exp
==============================================================================
--- trunk/none/tests/cmdline1.stdout.exp (original)
+++ trunk/none/tests/cmdline1.stdout.exp Sun Apr 20 14:20:37 2014
@@ -92,6 +92,7 @@
program counters in max <number> frames) [0]
--num-transtab-sectors=<number> size of translated code cache [16]
more sectors may increase performance, but use more memory.
+ --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed]
--show-emwarns=no|yes show warnings about emulation limits? [no]
--require-text-symbol=:sonamepattern:symbolpattern abort run if the
stated shared object doesn't have the stated
Modified: trunk/none/tests/cmdline2.stdout.exp
==============================================================================
--- trunk/none/tests/cmdline2.stdout.exp (original)
+++ trunk/none/tests/cmdline2.stdout.exp Sun Apr 20 14:20:37 2014
@@ -92,6 +92,7 @@
program counters in max <number> frames) [0]
--num-transtab-sectors=<number> size of translated code cache [16]
more sectors may increase performance, but use more memory.
+ --aspace-minaddr=0xPP avoid mapping memory below 0xPP [guessed]
--show-emwarns=no|yes show warnings about emulation limits? [no]
--require-text-symbol=:sonamepattern:symbolpattern abort run if the
stated shared object doesn't have the stated
|
|
From: <sv...@va...> - 2014-04-20 13:41:23
|
Author: philippe
Date: Sun Apr 20 13:41:10 2014
New Revision: 13900
Log:
- 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.
- A new monitor command "v.set hostvisibility" that allows GDB server
to provide access to Valgrind internal host status/memory.
Modified:
trunk/NEWS
trunk/coregrind/m_gdbserver/m_gdbserver.c
trunk/coregrind/m_gdbserver/remote-utils.c
trunk/coregrind/m_gdbserver/server.c
trunk/coregrind/m_gdbserver/target.c
trunk/coregrind/m_gdbserver/target.h
trunk/coregrind/m_libcassert.c
trunk/coregrind/m_main.c
trunk/coregrind/m_options.c
trunk/coregrind/pub_core_gdbserver.h
trunk/coregrind/pub_core_libcassert.h
trunk/coregrind/pub_core_options.h
trunk/docs/xml/manual-core-adv.xml
trunk/docs/xml/manual-core.xml
trunk/gdbserver_tests/mchelp.stdoutB.exp
trunk/none/tests/cmdline1.stdout.exp
trunk/none/tests/cmdline2.stdout.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Sun Apr 20 13:41:10 2014
@@ -24,9 +24,16 @@
* New and modified GDB server monitor features:
+ - 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.
+
- A new monitor command "v.info stats" that shows various valgrind core and
tool statistics.
+ - A new monitor command "v.set hostvisibility" that allows GDB server
+ to provide access to Valgrind internal host status/memory.
+
* ==================== FIXED BUGS ====================
The following bugs have been fixed or resolved. Note that "n-i-bz"
Modified: trunk/coregrind/m_gdbserver/m_gdbserver.c
==============================================================================
--- trunk/coregrind/m_gdbserver/m_gdbserver.c (original)
+++ trunk/coregrind/m_gdbserver/m_gdbserver.c Sun Apr 20 13:41:10 2014
@@ -588,11 +588,22 @@
invalidate_if_jump_not_yet_gdbserved (VG_(get_IP) (tid), who);
}
+Bool VG_(gdbserver_init_done) (void)
+{
+ return gdbserver_called > 0;
+}
+
+Bool VG_(gdbserver_stop_at) (VgdbStopAt stopat)
+{
+ return gdbserver_called > 0 && VgdbStopAtiS(stopat, VG_(clo_vgdb_stop_at));
+}
+
void VG_(gdbserver_prerun_action) (ThreadId tid)
{
// Using VG_(dyn_vgdb_error) allows the user to control if gdbserver
// stops after a fork.
- if (VG_(dyn_vgdb_error) == 0) {
+ if (VG_(dyn_vgdb_error) == 0
+ || VgdbStopAtiS(VgdbStopAt_Startup, VG_(clo_vgdb_stop_at))) {
/* The below call allows gdb to attach at startup
before the first guest instruction is executed. */
VG_(umsg)("(action at startup) vgdb me ... \n");
@@ -1457,7 +1468,8 @@
"interrupts intr_tid %d gs_non_busy %d gs_busy %d tid_non_intr %d\n"
"gdbserved addresses %d (-1 = not initialized)\n"
"watchpoints %d (-1 = not initialized)\n"
- "vgdb-error %d\n",
+ "vgdb-error %d\n"
+ "hostvisibility %s\n",
gdbserver_called,
valgrind_single_stepping(),
@@ -1468,5 +1480,6 @@
nr_gdbserved_addresses,
nr_watchpoints,
- VG_(dyn_vgdb_error));
+ VG_(dyn_vgdb_error),
+ hostvisibility ? "yes" : "no");
}
Modified: trunk/coregrind/m_gdbserver/remote-utils.c
==============================================================================
--- trunk/coregrind/m_gdbserver/remote-utils.c (original)
+++ trunk/coregrind/m_gdbserver/remote-utils.c Sun Apr 20 13:41:10 2014
@@ -407,21 +407,23 @@
{
const int pid = VG_(getpid)();
remote_finish(orderly_finish);
- if (pid == pid_from_to_creator) {
- dlog(1, "unlinking\n %s\n %s\n %s\n",
- from_gdb, to_gdb, shared_mem);
- if (VG_(unlink) (from_gdb) == -1)
- warning ("could not unlink %s\n", from_gdb);
- if (VG_(unlink) (to_gdb) == -1)
- warning ("could not unlink %s\n", to_gdb);
- if (VG_(unlink) (shared_mem) == -1)
- warning ("could not unlink %s\n", shared_mem);
- }
- else {
- dlog(1, "not creator => not unlinking %s and %s\n", from_gdb, to_gdb);
- }
+ dlog(1, "%d (creator %d) maybe unlinking \n %s\n %s\n %s\n",
+ pid, pid_from_to_creator,
+ from_gdb ? from_gdb : "NULL",
+ to_gdb ? to_gdb : "NULL",
+ shared_mem ? shared_mem : "NULL");
+ if (pid == pid_from_to_creator && from_gdb && VG_(unlink) (from_gdb) == -1)
+ warning ("could not unlink %s\n", from_gdb);
+ if (pid == pid_from_to_creator && to_gdb && VG_(unlink) (to_gdb) == -1)
+ warning ("could not unlink %s\n", to_gdb);
+ if (pid == pid_from_to_creator && shared_mem && VG_(unlink) (shared_mem) == -1)
+ warning ("could not unlink %s\n", shared_mem);
free (from_gdb);
+ from_gdb = NULL;
free (to_gdb);
+ to_gdb = NULL;
+ free (shared_mem);
+ shared_mem = NULL;
}
Bool remote_connected(void)
Modified: trunk/coregrind/m_gdbserver/server.c
==============================================================================
--- trunk/coregrind/m_gdbserver/server.c (original)
+++ trunk/coregrind/m_gdbserver/server.c Sun Apr 20 13:41:10 2014
@@ -119,7 +119,6 @@
void kill_request (const char *msg)
{
VG_(umsg) ("%s", msg);
- remote_close();
VG_(exit) (0);
}
@@ -243,6 +242,8 @@
" v.info scheduler : show valgrind thread state and stacktrace\n"
" v.info stats : show various valgrind and tool stats\n"
" v.set debuglog <level> : set valgrind debug log level to <level>\n"
+" v.set hostvisibility [yes*|no] : (en/dis)ables access by gdb/gdbserver to\n"
+" Valgrind internal host status/memory\n"
" v.translate <addr> [<traceflags>] : debug translation of <addr> with <traceflags>\n"
" (default traceflags 0b00100000 : show after instrumentation)\n"
" An additional flag 0b100000000 allows to show gdbserver instrumentation\n");
@@ -253,7 +254,7 @@
wcmd = strtok_r (NULL, " ", &ssaveptr);
switch (kwdid = VG_(keyword_id)
("vgdb-error debuglog merge-recursive-frames"
- " gdb_output log_output mixed_output",
+ " gdb_output log_output mixed_output hostvisibility ",
wcmd, kwd_report_all)) {
case -2:
case -1:
@@ -305,6 +306,32 @@
VG_(gdb_printf)
("valgrind output will go to log, interactive output will go to gdb\n");
break;
+ case 6: /* hostvisibility */
+ wcmd = strtok_r (NULL, " ", &ssaveptr);
+ if (wcmd != NULL) {
+ switch (VG_(keyword_id) ("yes no", wcmd, kwd_report_all)) {
+ case -2:
+ case -1: break;
+ case 0:
+ hostvisibility = True;
+ break;
+ case 1:
+ hostvisibility = False;
+ break;
+ default: tl_assert (0);
+ }
+ } else {
+ hostvisibility = True;
+ }
+ if (hostvisibility)
+ VG_(gdb_printf)
+ ("Enabled access to Valgrind memory/status by GDB\n"
+ "If not yet done, tell GDB which valgrind file(s) to use:\n"
+ "add-symbol-file <tool or preloaded file> <loadaddr>\n");
+ else
+ VG_(gdb_printf)
+ ("Disabled access to Valgrind memory/status by GDB\n");
+ break;
default:
vg_assert (0);
}
Modified: trunk/coregrind/m_gdbserver/target.c
==============================================================================
--- trunk/coregrind/m_gdbserver/target.c (original)
+++ trunk/coregrind/m_gdbserver/target.c Sun Apr 20 13:41:10 2014
@@ -446,46 +446,55 @@
usr_store_inferior_registers (regno);
}
+Bool hostvisibility = False;
+
int valgrind_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
{
const void *sourceaddr = C2v (memaddr);
dlog(2, "reading memory %p size %d\n", sourceaddr, len);
- if (!VG_(am_is_valid_for_client_or_free_or_resvn) ((Addr) sourceaddr,
- len, VKI_PROT_READ)) {
+ if (VG_(am_is_valid_for_client_or_free_or_resvn) ((Addr) sourceaddr,
+ len, VKI_PROT_READ)
+ || (hostvisibility /* TBD: && check valgrind read accessibility */)) {
+ VG_(memcpy) (myaddr, sourceaddr, len);
+ return 0;
+ } else {
dlog(1, "error reading memory %p size %d\n", sourceaddr, len);
return -1;
}
- VG_(memcpy) (myaddr, sourceaddr, len);
- return 0;
}
int valgrind_write_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len)
{
+ Bool is_valid_client_memory;
void *targetaddr = C2v (memaddr);
dlog(2, "writing memory %p size %d\n", targetaddr, len);
- if (!VG_(am_is_valid_for_client_or_free_or_resvn) ((Addr)targetaddr,
- len, VKI_PROT_WRITE)) {
+ is_valid_client_memory
+ = VG_(am_is_valid_for_client_or_free_or_resvn) ((Addr)targetaddr,
+ len, VKI_PROT_WRITE);
+ if (is_valid_client_memory
+ || (hostvisibility /* TBD: && check valgrind write accessibility */)) {
+ if (len > 0) {
+ VG_(memcpy) (targetaddr, myaddr, len);
+ if (is_valid_client_memory && VG_(tdict).track_post_mem_write) {
+ /* Inform the tool of the post memwrite. Note that we do the
+ minimum necessary to avoid complains from e.g.
+ memcheck. The idea is that the debugger is as least
+ intrusive as possible. So, we do not inform of the pre
+ mem write (and in any case, this would cause problems with
+ memcheck that does not like our CorePart in
+ pre_mem_write. */
+ ThreadState *tst =
+ (ThreadState *) inferior_target_data (current_inferior);
+ ThreadId tid = tst->tid;
+ VG_(tdict).track_post_mem_write( Vg_CoreClientReq, tid,
+ (Addr) targetaddr, len );
+ }
+ }
+ return 0;
+ } else {
dlog(1, "error writing memory %p size %d\n", targetaddr, len);
return -1;
}
- if (len > 0) {
- VG_(memcpy) (targetaddr, myaddr, len);
- if (VG_(tdict).track_post_mem_write) {
- /* Inform the tool of the post memwrite. Note that we do the
- minimum necessary to avoid complains from e.g.
- memcheck. The idea is that the debugger is as least
- intrusive as possible. So, we do not inform of the pre
- mem write (and in any case, this would cause problems with
- memcheck that does not like our CorePart in
- pre_mem_write. */
- ThreadState *tst =
- (ThreadState *) inferior_target_data (current_inferior);
- ThreadId tid = tst->tid;
- VG_(tdict).track_post_mem_write( Vg_CoreClientReq, tid,
- (Addr) targetaddr, len );
- }
- }
- return 0;
}
/* insert or remove a breakpoint */
Modified: trunk/coregrind/m_gdbserver/target.h
==============================================================================
--- trunk/coregrind/m_gdbserver/target.h (original)
+++ trunk/coregrind/m_gdbserver/target.h Sun Apr 20 13:41:10 2014
@@ -233,5 +233,8 @@
Bool *mod);
+// True means gdbserver can access (internal) Valgrind memory.
+// Otherwise, only the client memory can be accessed.
+extern Bool hostvisibility;
#endif /* TARGET_H */
Modified: trunk/coregrind/m_libcassert.c
==============================================================================
--- trunk/coregrind/m_libcassert.c (original)
+++ trunk/coregrind/m_libcassert.c Sun Apr 20 13:41:10 2014
@@ -33,6 +33,7 @@
#include "pub_core_vkiscnums.h"
#include "pub_core_libcsetjmp.h" // to keep threadstate.h happy
#include "pub_core_threadstate.h"
+#include "pub_core_gdbserver.h"
#include "pub_core_aspacemgr.h"
#include "pub_core_libcbase.h"
#include "pub_core_libcassert.h"
@@ -228,9 +229,33 @@
#define BACKTRACE_DEPTH 100 // nice and deep!
-/* Pull down the entire world */
-void VG_(exit)( Int status )
+__attribute__ ((__noreturn__))
+static void exit_wrk( Int status, Bool gdbserver_call_allowed)
{
+ static Bool exit_called = False;
+ // avoid recursive exit during gdbserver call.
+
+ if (gdbserver_call_allowed && !exit_called) {
+ const ThreadId atid = 1; // Arbitrary tid used to call/terminate gdbsrv.
+ exit_called = True;
+ if (status != 0 && VG_(gdbserver_stop_at) (VgdbStopAt_ValgrindAbExit)) {
+ if (VG_(gdbserver_init_done)()) {
+ VG_(umsg)("(action at valgrind abnormal exit) vgdb me ... \n");
+ VG_(gdbserver) (atid);
+ } else {
+ VG_(umsg)("(action at valgrind abnormal exit) "
+ "Early valgrind exit : vgdb not yet usable\n");
+ }
+ }
+ if (VG_(gdbserver_init_done)()) {
+ // Always terminate the gdbserver when Valgrind exits, so as
+ // to e.g. cleanup the FIFOs.
+ VG_(gdbserver_exit) (atid,
+ status == 0 ? VgSrc_ExitProcess : VgSrc_FatalSig);
+ }
+ }
+ exit_called = True;
+
#if defined(VGO_linux)
(void)VG_(do_syscall1)(__NR_exit_group, status );
#elif defined(VGO_darwin)
@@ -245,6 +270,19 @@
*(volatile Int*)0 = 'x';
}
+/* Pull down the entire world */
+void VG_(exit)( Int status )
+{
+ exit_wrk (status, True);
+}
+
+/* Pull down the entire world */
+void VG_(client_exit)( Int status )
+{
+ exit_wrk (status, False);
+}
+
+
// Print the scheduler status.
static void show_sched_status_wrk ( Bool host_stacktrace,
Bool valgrind_stack_usage,
@@ -305,7 +343,8 @@
if (valgrind_stack_usage && stack != 0)
VG_(printf)("valgrind stack top usage: %ld of %ld\n",
VG_STACK_ACTIVE_SZB
- - VG_(am_get_VgStack_unused_szB)(stack, VG_STACK_ACTIVE_SZB),
+ - VG_(am_get_VgStack_unused_szB)(stack,
+ VG_STACK_ACTIVE_SZB),
(SizeT) VG_STACK_ACTIVE_SZB);
}
VG_(printf)("\n");
Modified: trunk/coregrind/m_main.c
==============================================================================
--- trunk/coregrind/m_main.c (original)
+++ trunk/coregrind/m_main.c Sun Apr 20 13:41:10 2014
@@ -108,6 +108,8 @@
" --vgdb-error=<number> invoke gdbserver after <number> errors [%d]\n"
" to get started quickly, use --vgdb-error=0\n"
" and follow the on-screen directions\n"
+" --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none]\n"
+" where event is one of startup exit valgrindabexit all none\n"
" --track-fds=no|yes track open file descriptors? [no]\n"
" --time-stamp=no|yes add timestamps to log messages? [no]\n"
" --log-fd=<number> log messages to file descriptor [2=stderr]\n"
@@ -537,6 +539,11 @@
}
else if VG_INT_CLO (arg, "--vgdb-poll", VG_(clo_vgdb_poll)) {}
else if VG_INT_CLO (arg, "--vgdb-error", VG_(clo_vgdb_error)) {}
+ else if VG_STR_CLO (arg, "--vgdb-stop-at", tmp_str) {
+ if (!VG_(parse_enum_set)("startup,exit,valgrindabexit", tmp_str,
+ &VG_(clo_vgdb_stop_at)))
+ VG_(fmsg_bad_option)(arg, "");
+ }
else if VG_STR_CLO (arg, "--vgdb-prefix", VG_(clo_vgdb_prefix)) {
VG_(arg_vgdb_prefix) = arg;
}
@@ -2414,7 +2421,13 @@
vg_assert(VG_(count_living_threads)() >= 1);
}
+ /* Final call to gdbserver, if requested. */
+ if (VG_(gdbserver_stop_at) (VgdbStopAt_Exit)) {
+ VG_(umsg)("(action at exit) vgdb me ... \n");
+ VG_(gdbserver) (tid);
+ }
VG_(threads)[tid].status = VgTs_Empty;
+
//--------------------------------------------------------------
// Finalisation: cleanup, messages, etc. Order not so important, only
// affects what order the messages come.
@@ -2489,7 +2502,7 @@
/* Flush any output cached by previous calls to VG_(message). */
VG_(message_flush)();
- /* terminate gdbserver if ever it was started. We terminate it here
+ /* Terminate gdbserver if ever it was started. We terminate it here
so that it get the output above if output was redirected to
gdb */
VG_(gdbserver_exit) (tid, tids_schedretcode);
@@ -2508,11 +2521,11 @@
if an error was found */
if (VG_(clo_error_exitcode) > 0
&& VG_(get_n_errs_found)() > 0) {
- VG_(exit)( VG_(clo_error_exitcode) );
+ VG_(client_exit)( VG_(clo_error_exitcode) );
} else {
/* otherwise, return the client's exit code, in the normal
way. */
- VG_(exit)( VG_(threads)[tid].os_state.exitcode );
+ VG_(client_exit)( VG_(threads)[tid].os_state.exitcode );
}
/* NOT ALIVE HERE! */
VG_(core_panic)("entered the afterlife in main() -- ExitT/P");
Modified: trunk/coregrind/m_options.c
==============================================================================
--- trunk/coregrind/m_options.c (original)
+++ trunk/coregrind/m_options.c Sun Apr 20 13:41:10 2014
@@ -56,6 +56,7 @@
#endif
Int VG_(clo_vgdb_poll) = 5000;
Int VG_(clo_vgdb_error) = 999999999;
+UInt VG_(clo_vgdb_stop_at) = 0;
const HChar *VG_(clo_vgdb_prefix) = NULL;
const HChar *VG_(arg_vgdb_prefix) = NULL;
Bool VG_(clo_vgdb_shadow_registers) = False;
Modified: trunk/coregrind/pub_core_gdbserver.h
==============================================================================
--- trunk/coregrind/pub_core_gdbserver.h (original)
+++ trunk/coregrind/pub_core_gdbserver.h Sun Apr 20 13:41:10 2014
@@ -31,6 +31,7 @@
#define __PUB_CORE_GDBSERVER_H
#include "pub_tool_gdbserver.h"
+#include "pub_core_options.h"
#include "pub_core_threadstate.h" // VgSchedReturnCode
/* Return the default path prefix for the named pipes (FIFOs) used by vgdb/gdb
@@ -44,6 +45,13 @@
// If VG_(clo_vgdb) == No, the below has no effect.
void VG_(gdbserver_prerun_action) (ThreadId tid);
+// True if the initialisation of gdbserver was done,
+// i.e. VG_(gdbserver_prerun_action) was called.
+Bool VG_(gdbserver_init_done) (void);
+
+// True if gdbserver should stop execution for the specified stop at reason
+Bool VG_(gdbserver_stop_at) (VgdbStopAt stopat);
+
// True if there is some activity from vgdb
// If it returns True, then extern void VG_(gdbserver) can be called
// to handle this incoming vgdb request.
Modified: trunk/coregrind/pub_core_libcassert.h
==============================================================================
--- trunk/coregrind/pub_core_libcassert.h (original)
+++ trunk/coregrind/pub_core_libcassert.h Sun Apr 20 13:41:10 2014
@@ -66,6 +66,9 @@
__attribute__ ((__noreturn__))
extern void VG_(core_panic_at) ( const HChar* str, UnwindStartRegs* );
+/* Exits with status as client exit code. */
+extern void VG_(client_exit)( Int status );
+
/* Called when some unhandleable client behaviour is detected.
Prints a msg and aborts. */
extern void VG_(unimplemented) ( const HChar* msg )
Modified: trunk/coregrind/pub_core_options.h
==============================================================================
--- trunk/coregrind/pub_core_options.h (original)
+++ trunk/coregrind/pub_core_options.h Sun Apr 20 13:41:10 2014
@@ -69,6 +69,26 @@
/* if > 0, checks every VG_(clo_vgdb_poll) BBS if vgdb wants to be served. */
extern Int VG_(clo_vgdb_poll);
+/* Specify when Valgrind gdbserver stops the execution and wait
+ for a GDB to connect. */
+typedef
+ enum { // Stop :
+ VgdbStopAt_Startup, // just before the client starts to execute.
+ VgdbStopAt_Exit, // just before the client exits.
+ VgdbStopAt_ValgrindAbExit // on abnormal valgrind exit.
+ }
+ VgdbStopAt;
+// Build mask to check or set VgdbStop_At a membership
+#define VgdbStopAt2S(a) (1 << (a))
+// VgdbStopAt a is member of the Set s ?
+#define VgdbStopAtiS(a,s) ((s) & VgdbStopAt2S(a))
+// A set with all VgdbStopAt:
+#define VgdbStopAtallS \
+ (VgdbStopAt2S(VgdbStopAt_Startup) \
+ | VgdbStopAt2S(VgdbStopAt_Exit) \
+ | VgdbStopAt2S(VgdbStopAt_ValgrindAbExit)
+extern UInt VG_(clo_vgdb_stop_at); // A set of VgdbStopAt reasons.
+
/* prefix for the named pipes (FIFOs) used by vgdb/gdb to communicate with valgrind */
extern const HChar *VG_(clo_vgdb_prefix);
Modified: trunk/docs/xml/manual-core-adv.xml
==============================================================================
--- trunk/docs/xml/manual-core-adv.xml (original)
+++ trunk/docs/xml/manual-core-adv.xml Sun Apr 20 13:41:10 2014
@@ -1456,6 +1456,40 @@
</listitem>
<listitem>
+ <para><varname>v.set hostvisibility [yes*|no]</varname> The value
+ "yes" indicates to gdbserver that GDB can look at the Valgrind
+ 'host' (internal) status/memory. "no" disables this access.
+ When hostvisibility is activated, GDB can e.g. look at Valgrind
+ global variables. As an example, to examine a Valgrind global
+ variable of the memcheck tool on an x86, do the following setup:</para>
+
+<screen><![CDATA[
+(gdb) monitor v.set hostvisibility yes
+(gdb) add-symbol-file /path/to/tool/executable/file/memcheck-x86-linux 0x38000000
+add symbol table from file "/path/to/tool/executable/file/memcheck-x86-linux" at
+ .text_addr = 0x38000000
+(y or n) y
+Reading symbols from /path/to/tool/executable/file/memcheck-x86-linux...done.
+(gdb)
+]]></screen>
+
+ <para>After that, variables defined in memcheck-x86-linux can be accessed, e.g.</para>
+
+<screen><![CDATA[
+(gdb) p /x vgPlain_threads[1].os_state
+$3 = {lwpid = 0x4688, threadgroup = 0x4688, parent = 0x0,
+ valgrind_stack_base = 0x62e78000, valgrind_stack_init_SP = 0x62f79fe0,
+ exitcode = 0x0, fatalsig = 0x0}
+(gdb) p vex_control
+$5 = {iropt_verbosity = 0, iropt_level = 2,
+ iropt_register_updates = VexRegUpdUnwindregsAtMemAccess,
+ iropt_unroll_thresh = 120, guest_max_insns = 60, guest_chase_thresh = 10,
+ guest_chase_cond = 0 '\000'}
+(gdb)
+]]></screen>
+ </listitem>
+
+ <listitem>
<para><varname>v.translate <address>
[<traceflags>]</varname> shows the translation of the block
containing <computeroutput>address</computeroutput> with the given
Modified: trunk/docs/xml/manual-core.xml
==============================================================================
--- trunk/docs/xml/manual-core.xml (original)
+++ trunk/docs/xml/manual-core.xml Sun Apr 20 13:41:10 2014
@@ -777,6 +777,46 @@
</listitem>
</varlistentry>
+ <varlistentry id="opt.vgdb-stop-at" xreflabel="--vgdb-stop-at">
+ <term>
+ <option><![CDATA[--vgdb-stop-at=<set> [default: none] ]]></option>
+ </term>
+ <listitem>
+ <para> Use this option when the Valgrind gdbserver is enabled with
+ <option>--vgdb=yes</option> or <option>--vgdb=full</option>.
+ The Valgrind gdbserver will be invoked for each error after
+ <option>--vgdb-error</option> have been reported.
+ You can additionally ask the Valgrind gdbserver to be invoked
+ for other events, specified in one of the following ways: </para>
+ <itemizedlist>
+ <listitem><para>a comma separated list of one or more of
+ <option>startup exit valgrindabexit</option>.</para>
+
+ <para>The values <option>startup</option> <option>exit</option>
+ <option>valgrindabexit</option> respectively indicate to
+ invoke gdbserver before your program is executed, after the
+ last instruction of your program, on Valgrind abnormal exit
+ (e.g. internal error, out of memory, ...).</para>
+
+ <para>Note: <option>startup</option> and
+ <option>--vgdb-error=0</option> will both cause Valgrind
+ gdbserver to be invoked before your program is executed. The
+ <option>--vgdb-error=0</option> will in addition cause your
+ program to stop on all subsequent errors.</para>
+
+ </listitem>
+
+ <listitem><para><option>all</option> to specify the complete set.
+ It is equivalent to
+ <option>--vgdb-stop-at=startup,exit,valgrindabexit</option>.</para>
+ </listitem>
+
+ <listitem><para><option>none</option> for the empty set.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
<varlistentry id="opt.track-fds" xreflabel="--track-fds">
<term>
<option><![CDATA[--track-fds=<yes|no> [default: no] ]]></option>
Modified: trunk/gdbserver_tests/mchelp.stdoutB.exp
==============================================================================
--- trunk/gdbserver_tests/mchelp.stdoutB.exp (original)
+++ trunk/gdbserver_tests/mchelp.stdoutB.exp Sun Apr 20 13:41:10 2014
@@ -64,6 +64,8 @@
v.info scheduler : show valgrind thread state and stacktrace
v.info stats : show various valgrind and tool stats
v.set debuglog <level> : set valgrind debug log level to <level>
+ v.set hostvisibility [yes*|no] : (en/dis)ables access by gdb/gdbserver to
+ Valgrind internal host status/memory
v.translate <addr> [<traceflags>] : debug translation of <addr> with <traceflags>
(default traceflags 0b00100000 : show after instrumentation)
An additional flag 0b100000000 allows to show gdbserver instrumentation
Modified: trunk/none/tests/cmdline1.stdout.exp
==============================================================================
--- trunk/none/tests/cmdline1.stdout.exp (original)
+++ trunk/none/tests/cmdline1.stdout.exp Sun Apr 20 13:41:10 2014
@@ -21,6 +21,8 @@
--vgdb-error=<number> invoke gdbserver after <number> errors [999999999]
to get started quickly, use --vgdb-error=0
and follow the on-screen directions
+ --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none]
+ where event is one of startup exit valgrindabexit all none
--track-fds=no|yes track open file descriptors? [no]
--time-stamp=no|yes add timestamps to log messages? [no]
--log-fd=<number> log messages to file descriptor [2=stderr]
Modified: trunk/none/tests/cmdline2.stdout.exp
==============================================================================
--- trunk/none/tests/cmdline2.stdout.exp (original)
+++ trunk/none/tests/cmdline2.stdout.exp Sun Apr 20 13:41:10 2014
@@ -21,6 +21,8 @@
--vgdb-error=<number> invoke gdbserver after <number> errors [999999999]
to get started quickly, use --vgdb-error=0
and follow the on-screen directions
+ --vgdb-stop-at=event1,event2,... invoke gdbserver for given events [none]
+ where event is one of startup exit valgrindabexit all none
--track-fds=no|yes track open file descriptors? [no]
--time-stamp=no|yes add timestamps to log messages? [no]
--log-fd=<number> log messages to file descriptor [2=stderr]
|
|
From: Philippe W. <phi...@sk...> - 2014-04-20 04:42:15
|
valgrind revision: 13899 VEX revision: 2848 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-04-19 20:00:12 PDT Ended at 2014-04-19 21:39:03 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 == 577 tests, 36 stderr failures, 7 stdout failures, 0 stderrB failures, 0 stdoutB failures, 2 post failures == memcheck/tests/linux/getregset (stdout) memcheck/tests/linux/getregset (stderr) memcheck/tests/ppc64/power_ISA2_05 (stdout) memcheck/tests/supp_unknown (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) massif/tests/big-alloc (post) massif/tests/deep-D (post) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/jm-vmx (stderr) none/tests/ppc32/test_isa_2_06_part2 (stdout) none/tests/ppc32/test_isa_2_06_part2 (stderr) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/jm-vmx (stderr) none/tests/ppc64/test_isa_2_06_part2 (stdout) none/tests/ppc64/test_isa_2_06_part2 (stderr) helgrind/tests/annotate_rwlock (stderr) helgrind/tests/free_is_write (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier1 (stderr) helgrind/tests/pth_barrier2 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/pth_destroy_cond (stderr) helgrind/tests/rwlock_race (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 1.6s ( 6.9x, -----) me: 2.9s (12.6x, -----) ca:18.5s (80.4x, -----) he: 1.8s ( 7.7x, -----) ca: 5.4s (23.3x, -----) dr: 1.7s ( 7.3x, -----) ma: 2.1s ( 9.3x, -----) bigcode1 valgrind-old:0.23s no: 1.6s ( 6.9x, 0.6%) me: 2.8s (12.3x, 2.4%) ca:18.3s (79.7x, 0.9%) he: 1.7s ( 7.6x, 1.1%) ca: 5.5s (23.7x, -1.9%) dr: 1.7s ( 7.4x, -1.2%) ma: 2.1s ( 9.3x, -0.5%) -- bigcode2 -- bigcode2 valgrind-new:0.23s no: 1.5s ( 6.6x, -----) me: 3.0s (13.0x, -----) ca:18.6s (80.8x, -----) he: 2.1s ( 9.1x, -----) ca: 5.5s (23.8x, -----) dr: 1.8s ( 8.0x, -----) ma: 2.1s ( 9.3x, -----) bigcode2 valgrind-old:0.23s no: 1.6s ( 6.7x, -2.6%) me: 2.9s (12.7x, 2.0%) ca:18.5s (80.6x, 0.3%) he: 2.1s ( 9.0x, 0.5%) ca: 5.5s (23.9x, -0.4%) dr: 1.8s ( 8.0x, 0.0%) ma: 2.1s ( 9.3x, 0.0%) -- bz2 -- bz2 valgrind-new:0.72s no: 4.6s ( 6.4x, -----) me:11.8s (16.4x, -----) ca:26.4s (36.7x, -----) he:14.8s (20.6x, -----) ca:24.3s (33.7x, -----) dr:20.4s (28.3x, -----) ma: 4.7s ( 6.5x, -----) bz2 valgrind-old:0.72s no: 4.6s ( 6.3x, 0.4%) me:11.8s (16.5x, -0.3%) ca:26.3s (36.6x, 0.3%) he:14.7s (20.4x, 0.9%) ca:24.3s (33.7x, 0.0%) dr:20.2s (28.1x, 0.9%) ma: 4.7s ( 6.5x, 0.0%) -- fbench -- fbench valgrind-new:0.34s no: 2.1s ( 6.3x, -----) me: 5.3s (15.6x, -----) ca: 8.5s (25.1x, -----) he: 5.2s (15.3x, -----) ca: 7.5s (21.9x, -----) dr: 5.0s (14.6x, -----) ma: 2.1s ( 6.3x, -----) fbench valgrind-old:0.34s no: 2.1s ( 6.2x, 1.4%) me: 5.3s (15.5x, 0.2%) ca: 8.6s (25.2x, -0.4%) he: 5.3s (15.5x, -1.2%) ca: 7.5s (22.1x, -0.8%) dr: 5.0s (14.7x, -0.2%) ma: 2.1s ( 6.3x, -0.5%) -- ffbench -- ffbench valgrind-new:0.45s no: 1.3s ( 2.9x, -----) me: 2.5s ( 5.7x, -----) ca: 2.5s ( 5.6x, -----) he: 6.9s (15.4x, -----) ca: 6.9s (15.3x, -----) dr: 5.1s (11.4x, -----) ma: 1.1s ( 2.4x, -----) ffbench valgrind-old:0.45s no: 1.3s ( 2.9x, 0.0%) me: 2.5s ( 5.6x, 0.4%) ca: 2.5s ( 5.6x, 0.4%) he: 7.0s (15.6x, -1.4%) ca: 7.2s (16.0x, -4.5%) dr: 5.1s (11.3x, 0.6%) ma: 1.1s ( 2.4x, 0.0%) -- heap -- heap valgrind-new:0.41s no: 2.5s ( 6.1x, -----) me: 9.7s (23.5x, -----) ca:13.4s (32.6x, -----) he:11.8s (28.7x, -----) ca:12.0s (29.3x, -----) dr: 8.3s (20.2x, -----) ma: 8.7s (21.3x, -----) heap valgrind-old:0.41s no: 2.4s ( 6.0x, 2.0%) me: 9.7s (23.7x, -0.7%) ca:13.4s (32.8x, -0.4%) he:11.8s (28.8x, -0.4%) ca:12.1s (29.5x, -0.8%) dr: 8.2s (20.0x, 1.0%) ma: 8.7s (21.2x, 0.1%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.42s no: 2.6s ( 6.1x, -----) me:13.8s (32.9x, -----) ca:14.3s (34.0x, -----) he:13.2s (31.5x, -----) ca:13.1s (31.2x, -----) dr: 9.0s (21.5x, -----) ma: 8.8s (21.1x, -----) heap_pdb4 valgrind-old:0.42s no: 2.6s ( 6.2x, -0.8%) me:13.6s (32.5x, 1.3%) ca:14.2s (33.9x, 0.3%) he:13.2s (31.5x, -0.1%) ca:13.1s (31.2x, 0.2%) dr: 9.2s (21.8x, -1.6%) ma: 8.8s (21.1x, 0.0%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (17.7x, -----) me: 2.2s (72.3x, -----) ca: 1.9s (63.3x, -----) he: 1.8s (60.3x, -----) ca: 1.8s (61.3x, -----) dr: 1.6s (51.7x, -----) ma: 1.6s (52.7x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (17.3x, 1.9%) me: 2.2s (72.0x, 0.5%) ca: 1.9s (63.3x, 0.0%) he: 1.8s (60.0x, 0.6%) ca: 1.9s (61.7x, -0.5%) dr: 1.5s (51.3x, 0.6%) ma: 1.6s (54.0x, -2.5%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.7s (10.6x, -----) me: 3.4s (48.3x, -----) ca: 4.7s (67.4x, -----) he: 4.8s (69.0x, -----) ca: 2.9s (41.1x, -----) dr: 2.3s (32.4x, -----) ma: 2.2s (32.1x, -----) many-xpts valgrind-old:0.07s no: 0.7s (10.6x, 0.0%) me: 3.4s (48.0x, 0.6%) ca: 4.7s (67.7x, -0.4%) he: 4.8s (68.9x, 0.2%) ca: 2.9s (41.1x, 0.0%) dr: 2.3s (32.3x, 0.4%) ma: 2.4s (34.0x, -5.8%) -- sarp -- sarp valgrind-new:0.02s no: 0.4s (19.5x, -----) me: 3.5s (174.5x, -----) ca: 2.9s (145.0x, -----) he:11.1s (557.0x, -----) ca: 1.8s (88.0x, -----) dr: 1.1s (52.5x, -----) ma: 0.4s (21.0x, -----) sarp valgrind-old:0.02s no: 0.4s (20.0x, -2.6%) me: 3.2s (160.0x, 8.3%) ca: 2.9s (146.5x, -1.0%) he:11.0s (548.0x, 1.6%) ca: 1.9s (95.5x, -8.5%) dr: 1.1s (53.5x, -1.9%) ma: 0.4s (21.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.27s no: 3.0s (11.0x, -----) me:14.1s (52.2x, -----) ca:17.4s (64.6x, -----) he:19.0s (70.4x, -----) ca:15.6s (57.9x, -----) dr:12.4s (45.9x, -----) ma: 3.8s (14.0x, -----) tinycc valgrind-old:0.27s no: 3.0s (11.0x, 0.3%) me:14.0s (51.9x, 0.7%) ca:17.5s (64.7x, -0.1%) he:18.9s (70.1x, 0.4%) ca:15.7s (58.1x, -0.4%) dr:12.4s (45.8x, 0.1%) ma: 3.8s (14.2x, -1.3%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 53m56.481s user 52m31.433s sys 0m20.099s |
|
From: Christian B. <bor...@de...> - 2014-04-20 04:14:21
|
valgrind revision: 13899 VEX revision: 2848 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.5.1-0.7.29) Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.23.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.101-0.15-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP3 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP3 gcc 4.3.4 on z196 (s390x) ) Started at 2014-04-20 03:45:01 CEST Ended at 2014-04-20 06:14:08 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 == 644 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_cond_destroy_busy (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.23s no: 4.3s (18.8x, -----) me: 6.8s (29.4x, -----) ca:26.4s (114.6x, -----) he: 5.1s (22.1x, -----) ca: 9.1s (39.7x, -----) dr: 5.5s (23.9x, -----) ma: 4.7s (20.5x, -----) bigcode1 valgrind-old:0.23s no: 4.3s (18.8x, 0.2%) me: 6.8s (29.4x, 0.0%) ca:26.5s (115.3x, -0.6%) he: 5.1s (22.1x, 0.0%) ca: 9.1s (39.6x, 0.2%) dr: 5.5s (23.9x, 0.0%) ma: 4.7s (20.4x, 0.4%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 7.3s (30.5x, -----) me:13.7s (57.1x, -----) ca:39.5s (164.5x, -----) he:10.1s (42.1x, -----) ca:14.2s (59.3x, -----) dr: 9.6s (40.0x, -----) ma: 8.1s (33.8x, -----) bigcode2 valgrind-old:0.24s no: 7.3s (30.3x, 0.5%) me:13.7s (57.1x, 0.1%) ca:39.8s (165.7x, -0.7%) he:10.1s (42.1x, 0.0%) ca:14.2s (59.0x, 0.4%) dr: 9.6s (40.2x, -0.4%) ma: 8.1s (33.9x, -0.1%) -- bz2 -- bz2 valgrind-new:0.69s no: 5.0s ( 7.3x, -----) me:12.9s (18.7x, -----) ca:30.7s (44.4x, -----) he:19.5s (28.3x, -----) ca:34.3s (49.8x, -----) dr:31.4s (45.4x, -----) ma: 3.6s ( 5.3x, -----) bz2 valgrind-old:0.69s no: 5.0s ( 7.2x, 0.2%) me:13.2s (19.1x, -2.3%) ca:30.8s (44.6x, -0.4%) he:19.5s (28.3x, -0.1%) ca:34.3s (49.7x, 0.2%) dr:32.1s (46.5x, -2.4%) ma: 3.6s ( 5.3x, 0.3%) -- fbench -- fbench valgrind-new:0.40s no: 1.6s ( 4.0x, -----) me: 4.2s (10.6x, -----) ca: 9.3s (23.2x, -----) he: 6.1s (15.3x, -----) ca: 7.2s (18.0x, -----) dr: 5.7s (14.3x, -----) ma: 1.7s ( 4.2x, -----) fbench valgrind-old:0.40s no: 1.6s ( 4.0x, 1.2%) me: 4.2s (10.6x, 0.0%) ca: 9.3s (23.4x, -0.5%) he: 6.1s (15.3x, 0.0%) ca: 7.2s (18.0x, -0.3%) dr: 5.7s (14.2x, 0.3%) ma: 1.7s ( 4.2x, -0.0%) -- ffbench -- ffbench valgrind-new:0.20s no: 1.1s ( 5.2x, -----) me: 3.1s (15.4x, -----) ca: 3.0s (15.1x, -----) he:43.6s (218.0x, -----) ca: 9.6s (48.1x, -----) dr: 6.9s (34.4x, -----) ma: 1.0s ( 4.8x, -----) ffbench valgrind-old:0.20s no: 1.0s ( 5.2x, 1.0%) me: 3.1s (15.6x, -1.0%) ca: 3.1s (15.3x, -1.3%) he:44.7s (223.3x, -2.4%) ca: 9.6s (48.1x, 0.0%) dr: 7.0s (34.8x, -1.2%) ma: 1.0s ( 4.8x, 0.0%) -- heap -- heap valgrind-new:0.23s no: 1.8s ( 7.7x, -----) me: 8.8s (38.0x, -----) ca:13.2s (57.4x, -----) he:12.5s (54.5x, -----) ca:11.2s (48.6x, -----) dr: 8.4s (36.7x, -----) ma: 7.9s (34.2x, -----) heap valgrind-old:0.23s no: 1.8s ( 7.7x, 0.0%) me: 8.7s (38.0x, 0.1%) ca:13.2s (57.6x, -0.2%) he:12.7s (55.3x, -1.4%) ca:11.2s (48.8x, -0.4%) dr: 8.3s (36.0x, 1.8%) ma: 8.2s (35.9x, -5.0%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.22s no: 2.1s ( 9.5x, -----) me:13.0s (59.1x, -----) ca:14.2s (64.8x, -----) he:14.0s (63.6x, -----) ca:12.4s (56.2x, -----) dr: 9.2s (41.6x, -----) ma: 7.9s (36.0x, -----) heap_pdb4 valgrind-old:0.22s no: 2.0s ( 8.9x, 6.7%) me:13.0s (59.0x, 0.2%) ca:14.3s (65.0x, -0.3%) he:14.1s (64.3x, -1.1%) ca:12.4s (56.4x, -0.2%) dr: 9.0s (41.0x, 1.5%) ma: 8.3s (37.8x, -4.9%) -- many-loss-records -- many-loss-records valgrind-new:0.03s no: 0.5s (15.7x, -----) me: 2.1s (70.0x, -----) ca: 1.9s (65.0x, -----) he: 2.1s (70.0x, -----) ca: 1.9s (63.7x, -----) dr: 1.8s (61.3x, -----) ma: 1.6s (55.0x, -----) many-loss-records valgrind-old:0.03s no: 0.5s (15.3x, 2.1%) me: 2.1s (69.0x, 1.4%) ca: 1.9s (64.7x, 0.5%) he: 2.1s (71.3x, -1.9%) ca: 1.9s (63.7x, 0.0%) dr: 1.8s (59.7x, 2.7%) ma: 1.7s (56.7x, -3.0%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.6s ( 8.6x, -----) me: 3.2s (45.7x, -----) ca:371.0s (5300.4x, -----) he: 6.5s (92.3x, -----) ca: 2.8s (39.9x, -----) dr: 2.7s (38.3x, -----) ma: 2.6s (37.6x, -----) many-xpts valgrind-old:0.07s no: 0.6s ( 8.6x, 0.0%) me: 3.2s (45.3x, 0.9%) ca:374.4s (5348.3x, -0.9%) he: 6.5s (92.7x, -0.5%) ca: 2.8s (39.9x, 0.0%) dr: 2.6s (37.7x, 1.5%) ma: 2.7s (38.3x, -1.9%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (18.7x, -----) me: 3.6s (119.7x, -----) ca: 3.1s (104.7x, -----) he:16.7s (558.0x, -----) ca: 2.0s (68.3x, -----) dr: 1.6s (52.3x, -----) ma: 0.5s (16.3x, -----) sarp valgrind-old:0.03s no: 0.6s (18.7x, 0.0%) me: 3.9s (130.0x, -8.6%) ca: 3.2s (106.3x, -1.6%) he:16.9s (561.7x, -0.7%) ca: 2.0s (68.3x, 0.0%) dr: 1.6s (52.7x, -0.6%) ma: 0.5s (16.3x, 0.0%) -- tinycc -- tinycc valgrind-new:0.22s no: 2.7s (12.1x, -----) me:15.0s (68.1x, -----) ca:30.0s (136.3x, -----) he:27.6s (125.5x, -----) ca:21.3s (97.0x, -----) dr:22.0s (100.1x, -----) ma: 4.0s (18.0x, -----) tinycc valgrind-old:0.22s no: 2.7s (12.1x, 0.0%) me:14.9s (67.8x, 0.5%) ca:30.1s (136.8x, -0.4%) he:27.9s (127.0x, -1.2%) ca:21.3s (96.9x, 0.1%) dr:22.3s (101.4x, -1.3%) ma: 4.0s (18.2x, -0.8%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 111m34.932s user 110m55.265s sys 0m33.481s |
|
From: Tom H. <to...@co...> - 2014-04-20 03:25:48
|
valgrind revision: 13899 VEX revision: 2848 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.8-200.fc20.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2014-04-20 03:51:21 BST Ended at 2014-04-20 04:25:30 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 == 646 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-04-20 03:01:32
|
valgrind revision: 13899 VEX revision: 2848 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-04-19 21:30:01 CDT Ended at 2014-04-19 22:01:20 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 == 668 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-04-19 21:46:29.897987905 -0500 +++ mssnapshot.stderrB.out 2014-04-19 21:50:11.838792928 -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-04-19 21:30:22.181993384 -0500 +++ mssnapshot.stderrB.out 2014-04-19 21:35:09.350980662 -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-04-20 02:53:17
|
valgrind revision: 13899 VEX revision: 2848 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.8-200.fc20.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2014-04-20 03:15:12 BST Ended at 2014-04-20 03:53:06 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 == 675 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Tom H. <to...@co...> - 2014-04-20 02:51:18
|
valgrind revision: 13899 VEX revision: 2848 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.8-200.fc20.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2014-04-20 03:08:46 BST Ended at 2014-04-20 03:51:03 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 == 675 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Tom H. <to...@co...> - 2014-04-20 02:32:35
|
valgrind revision: 13899 VEX revision: 2848 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.8-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-04-20 02:51:28 BST Ended at 2014-04-20 03:32:22 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 == 675 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-04-20 02:32:09
|
valgrind revision: 13899 VEX revision: 2848 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.8-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-04-20 02:41:09 BST Ended at 2014-04-20 03:31:56 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 == 675 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: Rich C. <rc...@wi...> - 2014-04-20 02:27:15
|
valgrind revision: 13899
VEX revision: 2848
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-04-19 19:22:01 CDT
Ended at 2014-04-19 21:27:02 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
== 590 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-04-19 20:25:04.983839665 -0500
+++ hackedbz2.stderr.out 2014-04-19 21:25:42.485036327 -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-04-19 20:24:59.581776999 -0500
+++ err_disable3.stderr.out 2014-04-19 20:43:46.203846325 -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-04-19 20:25:02.430810049 -0500
+++ err_disable4.stderr.out 2014-04-19 20:43:50.589897205 -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-04-19 20:25:02.453810316 -0500
+++ threadname.stderr.out 2014-04-19 20:49:42.432978745 -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-04-19 20:25:01.423798367 -0500
+++ threadname_xml.stderr.out 2014-04-19 20:49:44.489002595 -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-04-19 19:22:12.589078178 -0500
+++ hackedbz2.stderr.out 2014-04-19 20:23:08.998494183 -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-04-19 19:22:17.937140218 -0500
+++ err_disable3.stderr.out 2014-04-19 19:41:15.020330898 -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-04-19 19:22:18.266144035 -0500
+++ err_disable4.stderr.out 2014-04-19 19:41:20.644396140 -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-04-19 19:22:17.888139650 -0500
+++ threadname.stderr.out 2014-04-19 19:47:10.522454883 -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-04-19 19:22:15.910116704 -0500
+++ threadname_xml.stderr.out 2014-04-19 19:47:12.555478467 -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-04-20 02:12:43
|
valgrind revision: 13899 VEX revision: 2848 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.8-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-04-20 02:31:43 BST Ended at 2014-04-20 03:12:31 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 == 675 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/hackedbz2 (stderr) |