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
(30) |
2
(8) |
3
(5) |
4
(5) |
|
5
(3) |
6
(9) |
7
(5) |
8
(14) |
9
(17) |
10
(27) |
11
(10) |
|
12
(6) |
13
(10) |
14
(7) |
15
(16) |
16
(9) |
17
(14) |
18
(8) |
|
19
(5) |
20
(13) |
21
(21) |
22
(13) |
23
(4) |
24
(1) |
25
(4) |
|
26
(2) |
27
(7) |
28
(4) |
29
(5) |
30
(12) |
|
|
|
From: <sv...@va...> - 2015-04-23 21:28:19
|
Author: philippe
Date: Thu Apr 23 22:28:12 2015
New Revision: 15139
Log:
Add some internal documentation for 'svn ignore' maintenance;
reference it from README_DEVELOPERS_processes
Added:
trunk/docs/internals/svn-HOWTO.txt
Modified:
trunk/README_DEVELOPERS_processes
Modified: trunk/README_DEVELOPERS_processes
==============================================================================
--- trunk/README_DEVELOPERS_processes (original)
+++ trunk/README_DEVELOPERS_processes Thu Apr 23 22:28:12 2015
@@ -12,6 +12,9 @@
* Major release production:
See docs/internals/release-HOWTO.txt (currently a bit out of date)
+* Various guidelines/recommended usage for valgrind SVN
+ See docs/internals/svn-HOWTO.txt
+
* Minor/correction release production: TBD
Added: trunk/docs/internals/svn-HOWTO.txt
==============================================================================
--- trunk/docs/internals/svn-HOWTO.txt (added)
+++ trunk/docs/internals/svn-HOWTO.txt Thu Apr 23 22:28:12 2015
@@ -0,0 +1,38 @@
+-----------------------------------------------------------------------------
+Various guidelines/recommended usage for valgrind SVN
+-----------------------------------------------------------------------------
+
+Update the ignore property
+==========================
+For various type of files, the ignore property of the directory
+containing these files is to be updated.
+
+* Here is an example for a new test case:
+ $ svn stat
+ ? memcheck/tests/ppc32/power_ISA2_07
+ ? memcheck/tests/ppc64/power_ISA2_07
+
+ Grrr.....
+
+ $ cd memcheck/tests/ppc32
+ $ svn propget svn:ignore . > ignore-me
+ ...edit ignore-me, add executable to the list...
+ $ svn propset svn:ignore . -F ignore-me
+ $ rm ignore-me
+ $ svn commit
+
+ This is best done when a new testcase is added.
+
+* When adding a directory, look at the ignore property of a similar
+ directory for inspiration e.g.
+ $ svn propget svn:ignore auxprogs
+ .deps
+ getoff-amd64-darwin
+ getoff-x86-darwin
+ ...
+ libmpiwrap-x86-darwin.so.dSYM
+ Makefile
+ Makefile.in
+ valgrind-di-server
+ valgrind-listener
+
|
|
From: <sv...@va...> - 2015-04-23 15:20:11
|
Author: florian
Date: Thu Apr 23 16:20:00 2015
New Revision: 15138
Log:
Fix an assertion in the address space manager. BZ #345887.
The VG_(extend_stack) call needs to be properly guarded because the
passed-in address is not necessarily part of an extensible stack
segment. And an extensible stack segment is the only thing that
function should have to deal with.
Previously, the function VG_(am_addr_is_in_extensible_client_stack)
was introduced to guard VG_(extend_stack) but it was not added in all
places it should have been.
Also, extending the client stack during signal delivery (in sigframe-common.c)
was simply calling VG_(extend_stack) hoping it would do the right thing.
But that was not always the case. The new testcase
none/tests/linux/pthread-stack.c exercises this (3.10.1 errors out on it).
Renamed ML_(sf_extend_stack) to ML_(sf_maybe_extend_stack) and add
proper guard logic for VG_(extend_stack).
Testcases none/tests/{amd64|x86}-linux/bug345887.c by Ivo Raisr.
Added:
trunk/none/tests/amd64-linux/ (with props)
trunk/none/tests/amd64-linux/Makefile.am
trunk/none/tests/amd64-linux/bug345887.c
trunk/none/tests/amd64-linux/bug345887.stderr.exp
trunk/none/tests/amd64-linux/bug345887.vgtest
trunk/none/tests/amd64-linux/filter_minimal (with props)
trunk/none/tests/amd64-linux/filter_stderr (with props)
trunk/none/tests/linux/pthread-stack.c
trunk/none/tests/linux/pthread-stack.stderr.exp
trunk/none/tests/linux/pthread-stack.vgtest
trunk/none/tests/x86-linux/bug345887.c
trunk/none/tests/x86-linux/bug345887.stderr.exp
trunk/none/tests/x86-linux/bug345887.vgtest
trunk/none/tests/x86-linux/filter_minimal (with props)
Modified:
trunk/NEWS
trunk/configure.ac
trunk/coregrind/m_sigframe/priv_sigframe.h
trunk/coregrind/m_sigframe/sigframe-amd64-darwin.c
trunk/coregrind/m_sigframe/sigframe-amd64-linux.c
trunk/coregrind/m_sigframe/sigframe-arm-linux.c
trunk/coregrind/m_sigframe/sigframe-arm64-linux.c
trunk/coregrind/m_sigframe/sigframe-common.c
trunk/coregrind/m_sigframe/sigframe-mips32-linux.c
trunk/coregrind/m_sigframe/sigframe-mips64-linux.c
trunk/coregrind/m_sigframe/sigframe-ppc32-linux.c
trunk/coregrind/m_sigframe/sigframe-ppc64-linux.c
trunk/coregrind/m_sigframe/sigframe-s390x-linux.c
trunk/coregrind/m_sigframe/sigframe-tilegx-linux.c
trunk/coregrind/m_sigframe/sigframe-x86-darwin.c
trunk/coregrind/m_sigframe/sigframe-x86-linux.c
trunk/coregrind/m_signals.c
trunk/none/tests/Makefile.am
trunk/none/tests/linux/ (props changed)
trunk/none/tests/linux/Makefile.am
trunk/none/tests/x86-linux/ (props changed)
trunk/none/tests/x86-linux/Makefile.am
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Thu Apr 23 16:20:00 2015
@@ -151,6 +151,7 @@
345016 helgrind/tests/locked_vs_unlocked2 is failing sometimes
345394 Fix memcheck/tests/strchr on OS X
345637 Fix memcheck/tests/sendmsg on OS X
+345887 Fix an assertion in the address space manager
346307 fuse filesystem syscall deadlocks
n-i-bz Provide implementations of certain compiler builtins to support
compilers who may not provide those
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Thu Apr 23 16:20:00 2015
@@ -3033,6 +3033,7 @@
none/tests/tilegx/Makefile
none/tests/linux/Makefile
none/tests/darwin/Makefile
+ none/tests/amd64-linux/Makefile
none/tests/x86-linux/Makefile
exp-sgcheck/Makefile
exp-sgcheck/tests/Makefile
Modified: trunk/coregrind/m_sigframe/priv_sigframe.h
==============================================================================
--- trunk/coregrind/m_sigframe/priv_sigframe.h (original)
+++ trunk/coregrind/m_sigframe/priv_sigframe.h Thu Apr 23 16:20:00 2015
@@ -37,7 +37,8 @@
/* --------------- Implemented in sigframe-common.c ---------------*/
-Bool ML_(sf_extend_stack)( const ThreadState *tst, Addr addr, SizeT size );
+Bool ML_(sf_maybe_extend_stack)( const ThreadState *tst, Addr addr,
+ SizeT size, UInt flags );
#endif // __PRIV_SIGFRAME_H
Modified: trunk/coregrind/m_sigframe/sigframe-amd64-darwin.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-amd64-darwin.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-amd64-darwin.c Thu Apr 23 16:20:00 2015
@@ -109,7 +109,7 @@
entry to a function. */
tst = VG_(get_ThreadState)(tid);
- if (! ML_(sf_extend_stack)(tst, rsp, sp_top_of_frame - rsp))
+ if (! ML_(sf_maybe_extend_stack)(tst, rsp, sp_top_of_frame - rsp, flags))
return;
vg_assert(VG_IS_16_ALIGNED(rsp+8));
Modified: trunk/coregrind/m_sigframe/sigframe-amd64-linux.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-amd64-linux.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-amd64-linux.c Thu Apr 23 16:20:00 2015
@@ -412,7 +412,7 @@
rsp = VG_ROUNDDN(rsp, 16) - 8;
frame = (struct rt_sigframe *)rsp;
- if (! ML_(sf_extend_stack)(tst, rsp, sizeof(*frame)))
+ if (! ML_(sf_maybe_extend_stack)(tst, rsp, sizeof(*frame), flags))
return rsp_top_of_frame;
/* retaddr, siginfo, uContext fields are to be written */
Modified: trunk/coregrind/m_sigframe/sigframe-arm-linux.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-arm-linux.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-arm-linux.c Thu Apr 23 16:20:00 2015
@@ -185,7 +185,7 @@
sp -= size;
sp = VG_ROUNDDN(sp, 16);
- if(! ML_(sf_extend_stack)(tst, sp, size))
+ if (! ML_(sf_maybe_extend_stack)(tst, sp, size, flags))
I_die_here; // XXX Incorrect behavior
Modified: trunk/coregrind/m_sigframe/sigframe-arm64-linux.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-arm64-linux.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-arm64-linux.c Thu Apr 23 16:20:00 2015
@@ -173,7 +173,7 @@
sp -= size;
sp = VG_ROUNDDN(sp, 16);
- if (! ML_(sf_extend_stack)(tst, sp, size))
+ if (! ML_(sf_maybe_extend_stack)(tst, sp, size, flags))
return; // Give up. No idea if this is correct
struct rt_sigframe *rsf = (struct rt_sigframe *)sp;
Modified: trunk/coregrind/m_sigframe/sigframe-common.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-common.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-common.c Thu Apr 23 16:20:00 2015
@@ -54,16 +54,31 @@
/* Extend the stack segment downwards if needed so as to ensure the
new signal frames are mapped to something. Return a Bool
indicating whether or not the operation was successful. */
-Bool ML_(sf_extend_stack) ( const ThreadState *tst, Addr addr, SizeT size )
+Bool ML_(sf_maybe_extend_stack) ( const ThreadState *tst, Addr addr,
+ SizeT size, UInt flags )
{
ThreadId tid = tst->tid;
const NSegment *stackseg = NULL;
- if (VG_(extend_stack)(tid, addr)) {
+ if (flags & VKI_SA_ONSTACK) {
+ /* If the sigframe is allocated on an alternate stack, then we cannot
+ extend that stack. Nothing to do here. */
stackseg = VG_(am_find_nsegment)(addr);
- if (0 && stackseg)
- VG_(printf)("frame=%#lx seg=%#lx-%#lx\n",
- addr, stackseg->start, stackseg->end);
+ } else if (VG_(am_addr_is_in_extensible_client_stack)(addr)) {
+ if (VG_(extend_stack)(tid, addr)) {
+ stackseg = VG_(am_find_nsegment)(addr);
+ if (0 && stackseg)
+ VG_(printf)("frame=%#lx seg=%#lx-%#lx\n",
+ addr, stackseg->start, stackseg->end);
+ }
+ } else if ((stackseg = VG_(am_find_nsegment)(addr)) &&
+ VG_(am_is_valid_for_client)(addr, 1,
+ VKI_PROT_READ | VKI_PROT_WRITE)) {
+ /* We come here for explicitly defined pthread-stacks which can be
+ located in any client segment. */
+ } else {
+ /* Something unexpected */
+ stackseg = NULL;
}
if (stackseg == NULL || !stackseg->hasR || !stackseg->hasW) {
Modified: trunk/coregrind/m_sigframe/sigframe-mips32-linux.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-mips32-linux.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-mips32-linux.c Thu Apr 23 16:20:00 2015
@@ -148,7 +148,7 @@
}
tst = VG_(get_ThreadState)(tid);
- if (! ML_(sf_extend_stack)(tst, sp, sp_top_of_frame - sp))
+ if (! ML_(sf_maybe_extend_stack)(tst, sp, sp_top_of_frame - sp, flags))
return;
vg_assert(VG_IS_8_ALIGNED(sp));
Modified: trunk/coregrind/m_sigframe/sigframe-mips64-linux.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-mips64-linux.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-mips64-linux.c Thu Apr 23 16:20:00 2015
@@ -135,7 +135,7 @@
sp = sp_top_of_frame - sizeof(struct rt_sigframe);
tst = VG_(get_ThreadState)(tid);
- if (! ML_(sf_extend_stack)(tst, sp, sp_top_of_frame - sp))
+ if (! ML_(sf_maybe_extend_stack)(tst, sp, sp_top_of_frame - sp, flags))
return;
sp = VG_ROUNDDN(sp, 16);
Modified: trunk/coregrind/m_sigframe/sigframe-ppc32-linux.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-ppc32-linux.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-ppc32-linux.c Thu Apr 23 16:20:00 2015
@@ -650,7 +650,7 @@
tst = VG_(get_ThreadState)(tid);
- if (! ML_(sf_extend_stack)(tst, sp, sp_top_of_frame - sp))
+ if (! ML_(sf_maybe_extend_stack)(tst, sp, sp_top_of_frame - sp, flags))
return;
vg_assert(VG_IS_16_ALIGNED(sp));
Modified: trunk/coregrind/m_sigframe/sigframe-ppc64-linux.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-ppc64-linux.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-ppc64-linux.c Thu Apr 23 16:20:00 2015
@@ -158,7 +158,7 @@
sp = sp_top_of_frame - sizeof(struct rt_sigframe);
tst = VG_(get_ThreadState)(tid);
- if (! ML_(sf_extend_stack)(tst, sp, sp_top_of_frame - sp))
+ if (! ML_(sf_maybe_extend_stack)(tst, sp, sp_top_of_frame - sp, flags))
return;
vg_assert(VG_IS_16_ALIGNED(sp));
Modified: trunk/coregrind/m_sigframe/sigframe-s390x-linux.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-s390x-linux.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-s390x-linux.c Thu Apr 23 16:20:00 2015
@@ -298,7 +298,7 @@
sp -= sizeof(*frame);
frame = (struct sigframe *)sp;
- if (! ML_(sf_extend_stack)(tst, sp, sizeof(*frame)))
+ if (! ML_(sf_maybe_extend_stack)(tst, sp, sizeof(*frame), flags))
return sp_top_of_frame;
/* retcode, sigNo, sc, sregs fields are to be written */
@@ -358,7 +358,7 @@
sp -= sizeof(*frame);
frame = (struct rt_sigframe *)sp;
- if (! ML_(sf_extend_stack)(tst, sp, sizeof(*frame)))
+ if (! ML_(sf_maybe_extend_stack)(tst, sp, sizeof(*frame), flags))
return sp_top_of_frame;
/* retcode, sigNo, sc, sregs fields are to be written */
Modified: trunk/coregrind/m_sigframe/sigframe-tilegx-linux.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-tilegx-linux.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-tilegx-linux.c Thu Apr 23 16:20:00 2015
@@ -158,7 +158,7 @@
sp = sp_top_of_frame - sizeof(struct rt_sigframe);
tst = VG_(get_ThreadState)(tid);
- if (! ML_(sf_extend_stack)(tst, sp, sizeof(struct rt_sigframe)))
+ if (! ML_(sf_maybe_extend_stack)(tst, sp, sizeof(struct rt_sigframe), flags))
return;
vg_assert(VG_IS_8_ALIGNED(sp));
Modified: trunk/coregrind/m_sigframe/sigframe-x86-darwin.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-x86-darwin.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-x86-darwin.c Thu Apr 23 16:20:00 2015
@@ -112,7 +112,7 @@
entry to a function. */
tst = VG_(get_ThreadState)(tid);
- if (! ML_(sf_extend_stack)(tst, esp, sp_top_of_frame - esp))
+ if (! ML_(sf_maybe_extend_stack)(tst, esp, sp_top_of_frame - esp, flags))
return;
vg_assert(VG_IS_16_ALIGNED(esp+4));
Modified: trunk/coregrind/m_sigframe/sigframe-x86-linux.c
==============================================================================
--- trunk/coregrind/m_sigframe/sigframe-x86-linux.c (original)
+++ trunk/coregrind/m_sigframe/sigframe-x86-linux.c Thu Apr 23 16:20:00 2015
@@ -434,7 +434,7 @@
esp = VG_ROUNDDN(esp, 16);
frame = (struct sigframe *)esp;
- if (! ML_(sf_extend_stack)(tst, esp, sizeof(*frame)))
+ if (! ML_(sf_maybe_extend_stack)(tst, esp, sizeof(*frame), flags))
return esp_top_of_frame;
/* retaddr, sigNo, siguContext fields are to be written */
@@ -491,7 +491,7 @@
esp = VG_ROUNDDN(esp, 16);
frame = (struct rt_sigframe *)esp;
- if (! ML_(sf_extend_stack)(tst, esp, sizeof(*frame)))
+ if (! ML_(sf_maybe_extend_stack)(tst, esp, sizeof(*frame), flags))
return esp_top_of_frame;
/* retaddr, sigNo, pSiginfo, puContext fields are to be written */
Modified: trunk/coregrind/m_signals.c
==============================================================================
--- trunk/coregrind/m_signals.c (original)
+++ trunk/coregrind/m_signals.c Thu Apr 23 16:20:00 2015
@@ -1737,7 +1737,8 @@
if (tid == 1) { // main thread
Addr esp = VG_(get_SP)(tid);
Addr base = VG_PGROUNDDN(esp - VG_STACK_REDZONE_SZB);
- if (VG_(extend_stack)(tid, base)) {
+ if (VG_(am_addr_is_in_extensible_client_stack)(base) &&
+ VG_(extend_stack)(tid, base)) {
if (VG_(clo_trace_signals))
VG_(dmsg)(" -> extended stack base to %#lx\n",
VG_PGROUNDDN(esp));
@@ -2462,7 +2463,8 @@
then extend the stack segment.
*/
Addr base = VG_PGROUNDDN(esp - VG_STACK_REDZONE_SZB);
- if (VG_(extend_stack)(tid, base)) {
+ if (VG_(am_addr_is_in_extensible_client_stack)(base) &&
+ VG_(extend_stack)(tid, base)) {
if (VG_(clo_trace_signals))
VG_(dmsg)(" -> extended stack base to %#lx\n",
VG_PGROUNDDN(fault));
Modified: trunk/none/tests/Makefile.am
==============================================================================
--- trunk/none/tests/Makefile.am (original)
+++ trunk/none/tests/Makefile.am Thu Apr 23 16:20:00 2015
@@ -45,12 +45,15 @@
endif
# Platform-specific tests
+if VGCONF_PLATFORMS_INCLUDE_AMD64_LINUX
+SUBDIRS += amd64-linux
+endif
if VGCONF_PLATFORMS_INCLUDE_X86_LINUX
SUBDIRS += x86-linux
endif
DIST_SUBDIRS = x86 amd64 ppc32 ppc64 arm arm64 s390x mips32 mips64 tilegx \
- linux darwin x86-linux scripts .
+ linux darwin amd64-linux x86-linux scripts .
dist_noinst_SCRIPTS = \
filter_cmdline0 \
Added: trunk/none/tests/amd64-linux/Makefile.am
==============================================================================
--- trunk/none/tests/amd64-linux/Makefile.am (added)
+++ trunk/none/tests/amd64-linux/Makefile.am Thu Apr 23 16:20:00 2015
@@ -0,0 +1,15 @@
+
+include $(top_srcdir)/Makefile.tool-tests.am
+
+dist_noinst_SCRIPTS = \
+ filter_stderr filter_minimal
+
+EXTRA_DIST = \
+ bug345887.stderr.exp bug345887.vgtest
+
+check_PROGRAMS = \
+ bug345887
+
+AM_CFLAGS += @FLAG_M64@
+AM_CXXFLAGS += @FLAG_M64@
+AM_CCASFLAGS += @FLAG_M64@
Added: trunk/none/tests/amd64-linux/bug345887.c
==============================================================================
--- trunk/none/tests/amd64-linux/bug345887.c (added)
+++ trunk/none/tests/amd64-linux/bug345887.c Thu Apr 23 16:20:00 2015
@@ -0,0 +1,42 @@
+/* This test used to cause an assertion in the address space manager */
+
+__attribute__((noinline))
+static void inner(void)
+{
+ /* Set registers to apriori known values. */
+ __asm__ __volatile__(
+ "movq $0x101, %%rax\n"
+ "movq $0x102, %%rbx\n"
+ "movq $0x103, %%rcx\n"
+ "movq $0x104, %%rdx\n"
+ "movq $0x105, %%rsi\n"
+ "movq $0x106, %%rdi\n"
+ "movq $0x107, %%r8\n"
+ "movq $0x108, %%r9\n"
+ "movq $0x109, %%r10\n"
+ "movq $0x10a, %%r11\n"
+ "movq $0x10b, %%r12\n"
+ "movq $0x10c, %%r13\n"
+ "movq $0x10d, %%r14\n"
+ "movq $0x10e, %%r15\n"
+ // not %rbp as mdb is then not able to reconstruct stack trace
+ "movq $0x10f, %%rsp\n"
+ "movq $0x1234, (%%rax)\n" // should cause SEGV here
+ "ud2" // should never get here
+ : // no output registers
+ : // no input registers
+ : "memory", "%rax", "%rbx", "%rcx", "%rdx", "%rsi", "%rdi",
+ "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "%rsp");
+}
+
+__attribute__((noinline))
+static void outer(void)
+{
+ inner();
+}
+
+int main(int argc, const char *argv[])
+{
+ outer();
+ return 0;
+}
Added: trunk/none/tests/amd64-linux/bug345887.stderr.exp
==============================================================================
--- trunk/none/tests/amd64-linux/bug345887.stderr.exp (added)
+++ trunk/none/tests/amd64-linux/bug345887.stderr.exp Thu Apr 23 16:20:00 2015
@@ -0,0 +1,9 @@
+
+Process terminating with default action of signal 11 (SIGSEGV)
+ Access not within mapped region at address 0x........
+ at 0x........: inner (bug345887.c:7)
+ If you believe this happened as a result of a stack
+ overflow in your program's main thread (unlikely but
+ possible), you can try to increase the size of the
+ main thread stack using the --main-stacksize= flag.
+ The main thread stack size used in this run was ....
Added: trunk/none/tests/amd64-linux/bug345887.vgtest
==============================================================================
--- trunk/none/tests/amd64-linux/bug345887.vgtest (added)
+++ trunk/none/tests/amd64-linux/bug345887.vgtest Thu Apr 23 16:20:00 2015
@@ -0,0 +1,4 @@
+prog: bug345887
+vgopts: -q
+stderr_filter: filter_minimal
+cleanup: rm -f vgcore.*
Added: trunk/none/tests/amd64-linux/filter_minimal
==============================================================================
--- trunk/none/tests/amd64-linux/filter_minimal (added)
+++ trunk/none/tests/amd64-linux/filter_minimal Thu Apr 23 16:20:00 2015
@@ -0,0 +1,20 @@
+#! /bin/sh
+
+dir=`dirname $0`
+
+# Remove ==pid== and **pid** strings
+perl -p -e 's/(==|\*\*)[0-9]{1,7}\1 //' |
+
+perl -p -e 's/0x[0-9A-Fa-f]+/0x......../g' |
+
+# Older bash versions print abnormal termination messages on the stderr
+# of the bash process. Newer bash versions redirect such messages properly.
+# Suppress any redirected abnormal termination messages. You can find the
+# complete list of messages in the bash source file siglist.c.
+perl -n -e 'print if !/^(Segmentation fault|Alarm clock|Aborted|Bus error)( \(core dumped\))?$/' |
+
+# Remove the size in "The main thread stack size..." message.
+sed "s/The main thread stack size used in this run was [0-9]*/The main thread stack size used in this run was .../"
+
+# NOTE: it is essential for the bug345887 testcase that the stderr
+# filtering does *not* remove lines beginning with --
Added: trunk/none/tests/amd64-linux/filter_stderr
==============================================================================
--- trunk/none/tests/amd64-linux/filter_stderr (added)
+++ trunk/none/tests/amd64-linux/filter_stderr Thu Apr 23 16:20:00 2015
@@ -0,0 +1,11 @@
+#! /bin/sh
+
+dir=`dirname $0`
+
+# Remove ==pid== and --pid-- and **pid** strings
+perl -p -e 's/(==|--|\*\*)[0-9]{1,7}\1 //' |
+
+perl -p -e 's/0x[0-9A-Fa-f]+/0x......../g'
+
+# NOTE: it is essential for the bug345887 testcase that the stderr
+# filtering does *not* remove lines beginning with --
Modified: trunk/none/tests/linux/Makefile.am
==============================================================================
--- trunk/none/tests/linux/Makefile.am (original)
+++ trunk/none/tests/linux/Makefile.am Thu Apr 23 16:20:00 2015
@@ -9,6 +9,7 @@
mremap.vgtest \
mremap2.stderr.exp mremap2.stdout.exp mremap2.vgtest \
mremap3.stderr.exp mremap3.stdout.exp mremap3.vgtest \
+ pthread-stack.stderr.exp pthread-stack.vgtest \
stack-overflow.stderr.exp stack-overflow.vgtest
check_PROGRAMS = \
@@ -16,8 +17,12 @@
mremap \
mremap2 \
mremap3 \
+ pthread-stack \
stack-overflow
AM_CFLAGS += $(AM_FLAG_M3264_PRI)
AM_CXXFLAGS += $(AM_FLAG_M3264_PRI)
+
+# Special needs
+pthread_stack_LDADD = -lpthread
Added: trunk/none/tests/linux/pthread-stack.c
==============================================================================
--- trunk/none/tests/linux/pthread-stack.c (added)
+++ trunk/none/tests/linux/pthread-stack.c Thu Apr 23 16:20:00 2015
@@ -0,0 +1,109 @@
+/* This test causes an error in 3.10.1 and earlier versions like so:
+
+==8336== Can't extend stack to 0x4033f98 during signal delivery for thread 2:
+==8336== no stack segment
+
+ The reason was that only AnonC segments were considered as stack
+ segments. */
+
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <stdio.h>
+#include <pthread.h>
+#include <string.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+static volatile char *lowest_j;
+static jmp_buf goback;
+
+static void sigsegv_handler(int signr)
+{
+ longjmp(goback, 1);
+}
+
+static void bad_things_till_guard_page(void)
+{
+ fprintf(stderr, "... doing bad things till guard page\n");
+ char j = 0;
+ char *p = &j;
+
+ for (;;) {
+ j = j + *p;
+ p = p - 400;
+ lowest_j = p;
+ }
+}
+
+static void say_something(void)
+{
+ fprintf(stderr, "plugh\n");
+}
+
+static void* child_func ( void* arg )
+{
+ if (setjmp(goback)) {
+ say_something();
+ } else
+ bad_things_till_guard_page();
+
+ return NULL;
+}
+
+int main(int argc, const char** argv)
+{
+ int r, fd;
+
+ /* We will discover the thread guard page using SEGV.
+ So, prepare an handler. */
+ struct sigaction sa;
+ sa.sa_handler = sigsegv_handler;
+ sigemptyset(&sa.sa_mask);
+ sa.sa_flags = 0;
+ if (sigaction (SIGSEGV, &sa, NULL) != 0)
+ perror("sigaction");
+
+ pthread_t child;
+
+ /* Create a file that will be used as stack for a pthread. */
+ const size_t file_size = 1024 * 1024;
+ const char file_name[] = "FILE";
+ fd = open(file_name, O_CREAT|O_WRONLY,
+ S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);
+ assert(fd > 0);
+ void *p = malloc(file_size);
+ assert(p != 0);
+ memset(p, 0, file_size);
+ int written = write(fd, p, file_size);
+ assert(written == file_size);
+ close(fd);
+
+ /* Create a file-based stack for the child */
+ fd = open(file_name, O_CREAT|O_RDWR,
+ S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);
+ assert(fd > 0);
+ const size_t stack_size = 256 * 1024;
+ assert(stack_size < file_size);
+ void *stack = mmap(NULL, stack_size, PROT_READ|PROT_WRITE,
+ MAP_PRIVATE, fd, 0);
+ assert(stack != (void *)-1);
+ pthread_attr_t attr;
+ pthread_attr_init(&attr);
+ r = pthread_attr_setstack(&attr, stack, stack_size);
+ assert(r == 0);
+
+ /* Create child run */
+ r = pthread_create(&child, &attr, child_func, NULL);
+ assert(r == 0);
+ r = pthread_join(child, NULL);
+ assert(r == 0);
+
+ /* Remove file */
+ unlink(file_name);
+ return 0;
+}
+
Added: trunk/none/tests/linux/pthread-stack.stderr.exp
==============================================================================
--- trunk/none/tests/linux/pthread-stack.stderr.exp (added)
+++ trunk/none/tests/linux/pthread-stack.stderr.exp Thu Apr 23 16:20:00 2015
@@ -0,0 +1,2 @@
+... doing bad things till guard page
+plugh
Added: trunk/none/tests/linux/pthread-stack.vgtest
==============================================================================
--- trunk/none/tests/linux/pthread-stack.vgtest (added)
+++ trunk/none/tests/linux/pthread-stack.vgtest Thu Apr 23 16:20:00 2015
@@ -0,0 +1,2 @@
+prog: pthread-stack
+vgopts: -q
Modified: trunk/none/tests/x86-linux/Makefile.am
==============================================================================
--- trunk/none/tests/x86-linux/Makefile.am (original)
+++ trunk/none/tests/x86-linux/Makefile.am Thu Apr 23 16:20:00 2015
@@ -2,14 +2,16 @@
include $(top_srcdir)/Makefile.tool-tests.am
dist_noinst_SCRIPTS = \
- filter_stderr
+ filter_stderr filter_minimal
EXTRA_DIST = \
+ bug345887.stderr.exp bug345887.vgtest \
hang.stderr.exp hang.vgtest \
seg_override.stderr.exp seg_override.stdout.exp seg_override.vgtest \
sigcontext.stdout.exp sigcontext.stderr.exp sigcontext.vgtest
check_PROGRAMS = \
+ bug345887 \
hang \
seg_override \
sigcontext
@@ -17,5 +19,3 @@
AM_CFLAGS += @FLAG_M32@ $(FLAG_MMMX) $(FLAG_MSSE)
AM_CXXFLAGS += @FLAG_M32@ $(FLAG_MMMX) $(FLAG_MSSE)
AM_CCASFLAGS += @FLAG_M32@
-
-
Added: trunk/none/tests/x86-linux/bug345887.c
==============================================================================
--- trunk/none/tests/x86-linux/bug345887.c (added)
+++ trunk/none/tests/x86-linux/bug345887.c Thu Apr 23 16:20:00 2015
@@ -0,0 +1,33 @@
+/* This test used to cause an assertion in the address space manager */
+
+__attribute__((noinline))
+static void inner(void)
+{
+ /* Set other registers to apriori known values. */
+ __asm__ __volatile__(
+ "movl $0x101, %%eax\n"
+ "movl $0x102, %%ebx\n"
+ "movl $0x103, %%ecx\n"
+ "movl $0x104, %%edx\n"
+ "movl $0x105, %%esi\n"
+ "movl $0x106, %%edi\n"
+ // not %ebp as mdb is then not able to reconstruct stack trace
+ "movl $0x108, %%esp\n"
+ "movl $0x1234, (%%eax)\n" // should cause SEGV here
+ "ud2" // should never get here
+ : // no output registers
+ : // no input registers
+ : "memory", "%eax", "%ebx", "%ecx", "%edx", "%esi", "%edi", "%esp");
+}
+
+__attribute__((noinline))
+static void outer(void)
+{
+ inner();
+}
+
+int main(int argc, const char *argv[])
+{
+ outer();
+ return 0;
+}
Added: trunk/none/tests/x86-linux/bug345887.stderr.exp
==============================================================================
--- trunk/none/tests/x86-linux/bug345887.stderr.exp (added)
+++ trunk/none/tests/x86-linux/bug345887.stderr.exp Thu Apr 23 16:20:00 2015
@@ -0,0 +1,9 @@
+
+Process terminating with default action of signal 11 (SIGSEGV)
+ Access not within mapped region at address 0x........
+ at 0x........: inner (bug345887.c:7)
+ If you believe this happened as a result of a stack
+ overflow in your program's main thread (unlikely but
+ possible), you can try to increase the size of the
+ main thread stack using the --main-stacksize= flag.
+ The main thread stack size used in this run was ....
Added: trunk/none/tests/x86-linux/bug345887.vgtest
==============================================================================
--- trunk/none/tests/x86-linux/bug345887.vgtest (added)
+++ trunk/none/tests/x86-linux/bug345887.vgtest Thu Apr 23 16:20:00 2015
@@ -0,0 +1,4 @@
+prog: bug345887
+vgopts: -q
+stderr_filter: filter_minimal
+cleanup: rm -f vgcore.*
Added: trunk/none/tests/x86-linux/filter_minimal
==============================================================================
--- trunk/none/tests/x86-linux/filter_minimal (added)
+++ trunk/none/tests/x86-linux/filter_minimal Thu Apr 23 16:20:00 2015
@@ -0,0 +1,20 @@
+#! /bin/sh
+
+dir=`dirname $0`
+
+# Remove ==pid== and **pid** strings
+perl -p -e 's/(==|\*\*)[0-9]{1,7}\1 //' |
+
+perl -p -e 's/0x[0-9A-Fa-f]+/0x......../g' |
+
+# Older bash versions print abnormal termination messages on the stderr
+# of the bash process. Newer bash versions redirect such messages properly.
+# Suppress any redirected abnormal termination messages. You can find the
+# complete list of messages in the bash source file siglist.c.
+perl -n -e 'print if !/^(Segmentation fault|Alarm clock|Aborted|Bus error)( \(core dumped\))?$/' |
+
+# Remove the size in "The main thread stack size..." message.
+sed "s/The main thread stack size used in this run was [0-9]*/The main thread stack size used in this run was .../"
+
+# NOTE: it is essential for the bug345887 testcase that the stderr
+# filtering does *not* remove lines beginning with --
|
|
From: Florian K. <fl...@ei...> - 2015-04-23 13:29:56
|
$ svn stat ? memcheck/tests/ppc32/power_ISA2_07 ? memcheck/tests/ppc64/power_ISA2_07 Grrr..... $ cd memcheck/tests/ppc32 $ svn propget svn:ignore . > ignore-me ...edit ignore-me, add executable to the list... $ svn propset svn:ignore . -F ignore-me $ rm ignore-me $ svn commit This is best done when a new testcase is added. Florian |
|
From: <sv...@va...> - 2015-04-23 13:17:29
|
Author: florian
Date: Thu Apr 23 14:17:20 2015
New Revision: 15137
Log:
Update list of ignored files.
Modified:
trunk/perf/ (props changed)
|