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
(2) |
2
(4) |
3
(1) |
4
(7) |
5
|
|
6
|
7
(4) |
8
|
9
(3) |
10
(6) |
11
(13) |
12
(6) |
|
13
(1) |
14
|
15
(1) |
16
|
17
(4) |
18
(3) |
19
(5) |
|
20
(5) |
21
(5) |
22
(5) |
23
(6) |
24
|
25
(1) |
26
(1) |
|
27
(1) |
28
(4) |
29
(5) |
30
|
|
|
|
|
From: Ivo R. <iv...@iv...> - 2016-11-20 23:27:26
|
A gentle reminder to all Valgrind folks: we call for your participation at FOSDEM 2017, see below. The deadline for abstract submissions is in less than two weeks. Let us know if you have something in works and need slightly more time. See you all there, I. ----------------------------------- Valgrind developer room at FOSDEM 2017 (Brussels, Belgium, February 4th). FOSDEM is a free software event that offers open source communities a place to meet, share ideas and collaborate. It is renown for being highly developer-oriented and brings together 5000+ hackers from all over the world. It is held in the city of Brussels (Belgium). http://fosdem.org/ FOSDEM 2017 will take place during the weekend of Saturday, February 4th and Sunday February 5th 2017. On Saturday we will have a devroom for Valgrind. Devrooms are a place for development teams to meet, discuss, hack and publicly present the project's latest improvements and future directions. For the third time there will be a dedicated Valgrind devroom. We will have a whole day to hang out together as Valgrind community. Please join us, regardless of whether you are a Valgrind core hacker, Valgrind tool hacker, Valgrind user, Valgrind packager or hacker on a project that integrates, extends or complements Valgrind. Call For Participation We would like to organize a series of talks/discussions on various topics relevant to both core hackers, new developers, users, packagers and cross project functionality. Please do submit a talk proposal by Thursday December 1st 2016, so we can make a list of activities during the day. Some possible topics for talks/discussions are: - Recently added functional changes (for valgrind users). - State of the valgrind code base (core hackers). - Speeding up Memcheck by inlining of the fast cases of its helper function calls (core hackers). - Supporting Valgrind on new MacOS X versions (valgrind developers and users). - Status of current ports and possible future ports to other architectures (valgrind developers and users). - Valgrind and Wine (valgrind developers and users). - Helgrind - basic design, problems and opportunities (core and tools). - Get feedback on what what kinds of new functionality would be useful. Which tools users would like to see and/or which new features for the existing tools. (valgrind developers and users). - Modify memcheck to report the last leaked pointer to a block integrate "omega" as a memcheck option or omega as a separate tool. - Better support compiled and JITted code. allowing the JIT compiler to indicate the link between the JITted code and the source code. - Valgrind and transactional memory. - How to add simple features (adding syscalls for a platform or VEX instructions for an architecture port). (new core developers). - Making Valgrind really multi-threaded, parallelising Memcheck parallelising the rest of the framework, and tools (for core hackers). - Should we continue to support OS X? What about Valgrind on MS-Windows? Solaris? *BSD? (attracting new hackers). - Redo the JIT framework to reduce baseline overheads? (core hackers). - Discuss release/bugfixing strategy/policy (core hackers, packagers). - Packaging valgrind for distros, handling patches, suppressions, etc. (packagers). - Valgrind/GDB integration (cross project). - Valgrind vs the compiler. Compilers like GCC and clang now have "valgrind like" features, eg -fsanitize=address|thread|undefined. How does valgrind complement or improve on these features? - Eclipse and other visualisation tools for valgrind (cross project). - Practical examples of using Valgrind in (big) system automatic regression testing (users). Use the FOSDEM 'pentabarf' tool to submit your proposal: https://penta.fosdem.org/submission/FOSDEM17 - If necessary, create a Pentabarf account and activate it. Please reuse your account from previous years if you have already created it. - In the "Person" section, provide First name, Last name (in the "General" tab), Email (in the "Contact" tab) and Bio ("Abstract" field in the "Description" tab). - Submit a proposal by clicking on "Create event". - Important! Select the "Valgrind devroom" track (on the "General" tab). - Provide the title of your talk ("Event title" in the "General" tab). - Provide a description of the subject of the talk and the intended audience (in the "Abstract" field of the "Description" tab) - Provide a rough outline of the talk or goals of the session (a short list of bullet points covering topics that will be discussed) in the "Full description" field in the "Description" tab Julian, Philippe, Mark and Ivosh will review the proposals and organize the schedule for the day. Please feel free to suggest or discuss any ideas for the devroom on the Valgrind developer mailinglist before creating a proposal: valgrind-developers at lists.sourceforge.net Recording of talks As usually the FOSDEM organisers plan to have live streaming and recording fully working, both for remote/later viewing of talks, and so that people can watch streams in the hallways when rooms are full. This obviously requires speakers to consent to being recorded and streamed. If you plan to be a speaker, please understand that by doing so you implicitly give consent for your talk to be recorded and streamed. The recordings will be published under the same licence as all FOSDEM content (CC-BY). Important dates: Talk/Discussion Submission deadline: Thursday 1 Dec 2016 Devroom Schedule announcement: Thursday 15 Dec 2016 Devroom day: Saturday 4 Feb 2017 Hope to see you all at FOSDEM 2017 in the Valgrind devroom. Brussels (Belgium), Saturday February 4th 2017. https://fosdem.org/2017/schedule/track/valgrind/ |
Author: iraisr
Date: Sun Nov 20 15:06:08 2016
New Revision: 16147
Log:
Fix test none/tests/pth_2sig on Solaris.
When signal SIGINT was used, it got propagated to the parent shell
and therefore the regression test suite was terminated.
With SIGTERM only the parent exits, as is supposed.
Verified that this changed test case still reproduces the original problem
on Linux and Solaris, when r16140 is temporarily undone.
Follow up to r16140 and r16143 and BZ#372600.
Added:
trunk/none/tests/pth_2sig.stderr.exp-linux
- copied, changed from r16146, trunk/none/tests/pth_2sig.stderr.exp
trunk/none/tests/pth_2sig.stderr.exp-solaris
Removed:
trunk/none/tests/pth_2sig.stderr.exp
Modified:
trunk/none/tests/ (props changed)
trunk/none/tests/Makefile.am
trunk/none/tests/pth_2sig.c
trunk/none/tests/pth_2sig.vgtest
Modified: trunk/none/tests/Makefile.am
==============================================================================
--- trunk/none/tests/Makefile.am (original)
+++ trunk/none/tests/Makefile.am Sun Nov 20 15:06:08 2016
@@ -168,7 +168,7 @@
pth_rwlock.stderr.exp pth_rwlock.vgtest \
pth_stackalign.stderr.exp \
pth_stackalign.stdout.exp pth_stackalign.vgtest \
- pth_2sig.stderr.exp pth_2sig.vgtest \
+ pth_2sig.stderr.exp-linux pth_2sig.stderr.exp-solaris pth_2sig.vgtest \
pth_term_signal.stderr.exp pth_term_signal.vgtest \
rcrl.stderr.exp rcrl.stdout.exp rcrl.vgtest \
readline1.stderr.exp readline1.stdout.exp \
Modified: trunk/none/tests/pth_2sig.c
==============================================================================
--- trunk/none/tests/pth_2sig.c (original)
+++ trunk/none/tests/pth_2sig.c Sun Nov 20 15:06:08 2016
@@ -1,45 +1,41 @@
-#include <stdio.h>
-#include <unistd.h>
-#include <signal.h>
#include <pthread.h>
-#include <assert.h>
+#include <signal.h>
#include <stdlib.h>
-
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
#include <sys/wait.h>
-void *
-slavethread(void *arg)
+
+void *slavethread(void *arg)
{
- char c;
- while (1)
- (void)read(0, &c, 1);
+ while (1)
+ pause();
}
int main(int argc, char **argv)
{
- pthread_t slave;
- int i = 0;
- int pid = getpid();
+ for (int i = 0; i < 10; i++) {
+ pthread_t slave;
+ if (pthread_create(&slave, 0, slavethread, 0)) {
+ perror("pthread_create");
+ exit(2);
+ }
+ }
- for (i = 0; i < 10; i++)
- if (pthread_create(&slave, 0, &slavethread, 0))
- {
- perror("slave2");
- exit(2);
- }
- switch (fork())
- {
- case 0: // child
- sleep(2); // Should be enough to ensure (some) threads are created
- for (i = 0; i < 20 && kill(pid, 2) == 0; i++)
- ;
- exit(0);
- case -1:
- perror("fork");
- exit(4);
- }
+ pid_t pid = getpid();
+ switch (fork()) {
+ case 0: // child
+ sleep(2); // Should be enough to ensure (some) threads are created
+ for (int i = 0; i < 20 && kill(pid, SIGTERM) == 0; i++)
+ ;
+ exit(0);
+ case -1:
+ perror("fork");
+ exit(4);
+ }
- while (rand() >= 0)
- i++;
- fprintf(stderr, "strange, this program is supposed to be killed !!!!\n");
+ while (1)
+ pause();
+ fprintf(stderr, "strange, this program is supposed to be killed!\n");
return 1;
}
Removed: trunk/none/tests/pth_2sig.stderr.exp
==============================================================================
(empty)
Copied: trunk/none/tests/pth_2sig.stderr.exp-linux (from r16146, trunk/none/tests/pth_2sig.stderr.exp)
==============================================================================
--- trunk/none/tests/pth_2sig.stderr.exp (original)
+++ trunk/none/tests/pth_2sig.stderr.exp-linux Sun Nov 20 15:06:08 2016
@@ -0,0 +1 @@
+Terminated
Added: trunk/none/tests/pth_2sig.stderr.exp-solaris
==============================================================================
(empty)
Modified: trunk/none/tests/pth_2sig.vgtest
==============================================================================
--- trunk/none/tests/pth_2sig.vgtest (original)
+++ trunk/none/tests/pth_2sig.vgtest Sun Nov 20 15:06:08 2016
@@ -1,5 +1,2 @@
-# Disable this test on Solaris for now until it is investigated
-# why it messes badly with the regression test suite.
-prereq: (! ../../tests/os_test solaris)
prog: pth_2sig
vgopts: -q
|
Author: philippe
Date: Sun Nov 20 11:41:25 2016
New Revision: 16146
Log:
xtree: some documentation and --help-debug fine tuning
Modified:
trunk/NEWS
trunk/coregrind/m_main.c
trunk/helgrind/docs/hg-manual.xml
trunk/massif/docs/ms-manual.xml
trunk/memcheck/docs/mc-manual.xml
trunk/none/tests/cmdline2.stdout.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Sun Nov 20 11:41:25 2016
@@ -12,19 +12,19 @@
10.10 and AMD64/MacOSX 10.10. There is also preliminary support for
X86/MacOSX 10.11/12, AMD64/MacOSX 10.11/12 and TILEGX/Linux.
-A significant change in 3.13 is the addition of the 'xtree' concept:
-An xtree is a tree of stacktraces with data associated to the stacktraces.
-This xtree is used by various tools (memcheck, helgrind, massif) to
-report the heap consumption of your program. The xtree reporting
-is controlled by the new options --xtree-memory=none|allocs|full and
---xtree-memory-file=<file>.
-An heap xtree memory profiling can also be produced on demand using
-a gdbserver monitor command.
-The xtree can be output in 2 formats: 'callgrind format'
-and 'massif format. The existing visualisers for these formats (e.g.
-callgrind_annotate, kcachegrind, ms_print) can be used to visualise
-and analyse these reports.
-For more details, read the user manual.
+* The 'xtree concept' was added in 3.13:
+ An xtree is a tree of stacktraces with data associated to the stacktraces.
+ This xtree is used by various tools (memcheck, helgrind, massif) to
+ report the heap consumption of your program. The xtree reporting
+ is controlled by the new options --xtree-memory=none|allocs|full and
+ --xtree-memory-file=<file>.
+ An heap xtree memory profiling can also be produced on demand using
+ the gdbserver monitor command 'xtmemory [<filename>]>'.
+ The xtree can be output in 2 formats: 'callgrind format'
+ and 'massif format. The existing visualisers for these formats (e.g.
+ callgrind_annotate, kcachegrind, ms_print) can be used to visualise
+ and analyse these reports.
+ For more details, read the user manual.
* ================== PLATFORM CHANGES =================
@@ -32,28 +32,18 @@
* Memcheck:
- - Support for --xtree-memory profiling.
-
- - A new monitor command 'xtmemory [<filename>]>' produces a
- heap usage profile report.
+ - Support for --xtree-memory and 'xtmemory [<filename>]>'.
* Massif:
- - Support for --xtree-memory profiling.
-
- - A new monitor command 'xtmemory [<filename>]>' produces a
- heap usage profile report.
+ - Support for --xtree-memory and 'xtmemory [<filename>]>'.
- For some workloads (typically, for big applications), Massif
memory consumption and CPU consumption decreases significantly.
* Helgrind:
- - Support for --xtree-memory profiling.
-
- - A new monitor command 'xtmemory [<filename>]>' produces a
- heap usage profile report.
-
+ - Support for --xtree-memory and 'xtmemory [<filename>]>'.
* ==================== OTHER CHANGES ====================
@@ -62,6 +52,7 @@
will append the inner guest stacktrace to the inner host stacktrace.
This helps to investigate the errors reported by the outer, when they
are caused by the inner guest program (such as an inner regtest).
+ See README_DEVELOPERS for more info.
* ==================== FIXED BUGS ====================
Modified: trunk/coregrind/m_main.c
==============================================================================
--- trunk/coregrind/m_main.c (original)
+++ trunk/coregrind/m_main.c Sun Nov 20 11:41:25 2016
@@ -294,6 +294,7 @@
"\n"
" debugging options for Valgrind tools that replace malloc:\n"
" --trace-malloc=no|yes show client malloc details? [no]\n"
+" --xtree-compress-strings=no|yes compress strings in xtree callgrind format [yes]\n"
"\n";
const HChar usage3[] =
Modified: trunk/helgrind/docs/hg-manual.xml
==============================================================================
--- trunk/helgrind/docs/hg-manual.xml (original)
+++ trunk/helgrind/docs/hg-manual.xml Sun Nov 20 11:41:25 2016
@@ -64,6 +64,11 @@
<varname>ANNOTATE_*</varname> macros defined
in <varname>helgrind.h</varname>.</para>
+<para>Helgrind also provides <xref linkend="manual-core.xtree"/> memory
+ profiling using the command line
+ option <computeroutput>--xtree-memory</computeroutput> and the monitor command
+ <computeroutput>xtmemory</computeroutput>.</para>
+
<para>Following those is a section containing
Modified: trunk/massif/docs/ms-manual.xml
==============================================================================
--- trunk/massif/docs/ms-manual.xml (original)
+++ trunk/massif/docs/ms-manual.xml Sun Nov 20 11:41:25 2016
@@ -46,6 +46,11 @@
which parts of your program are responsible for allocating the heap memory.
</para>
+<para>Massif also provides <xref linkend="manual-core.xtree"/> memory
+ profiling using the command line
+ option <computeroutput>--xtree-memory</computeroutput> and the monitor command
+ <computeroutput>xtmemory</computeroutput>.</para>
+
</sect1>
Modified: trunk/memcheck/docs/mc-manual.xml
==============================================================================
--- trunk/memcheck/docs/mc-manual.xml (original)
+++ trunk/memcheck/docs/mc-manual.xml Sun Nov 20 11:41:25 2016
@@ -57,8 +57,12 @@
<para>Problems like these can be difficult to find by other means,
often remaining undetected for long periods, then causing occasional,
-difficult-to-diagnose crashes.</para>
+ difficult-to-diagnose crashes.</para>
+<para>Memcheck also provides <xref linkend="manual-core.xtree"/> memory
+ profiling using the command line
+ option <computeroutput>--xtree-memory</computeroutput> and the monitor command
+ <computeroutput>xtmemory</computeroutput>.</para>
</sect1>
@@ -1040,6 +1044,13 @@
and/or by using a smaller value for the
option <varname>--num-callers</varname>.
</para>
+
+ <para>If you want to use
+ <computeroutput>--xtree-memory=full</computeroutput> memory profiling
+ (see <xref linkend="manual-core.xtree"/> ), then you cannot
+ specify <varname>--keep-stacktraces=free</varname>
+ or <varname>--keep-stacktraces=none</varname>.</para>
+
</listitem>
</varlistentry>
Modified: trunk/none/tests/cmdline2.stdout.exp
==============================================================================
--- trunk/none/tests/cmdline2.stdout.exp (original)
+++ trunk/none/tests/cmdline2.stdout.exp Sun Nov 20 11:41:25 2016
@@ -205,6 +205,7 @@
debugging options for Valgrind tools that replace malloc:
--trace-malloc=no|yes show client malloc details? [no]
+ --xtree-compress-strings=no|yes compress strings in xtree callgrind format [yes]
debugging options for Nulgrind:
(none)
|
Author: iraisr
Date: Sun Nov 20 05:19:02 2016
New Revision: 16145
Log:
Solaris: Add syscall wrapper for sigsendsys(108)
n-i-bz
Modified:
trunk/coregrind/m_syswrap/syswrap-solaris.c
trunk/include/vki/vki-scnums-solaris.h
trunk/include/vki/vki-solaris.h
trunk/memcheck/tests/solaris/scalar.c
trunk/memcheck/tests/solaris/scalar.stderr.exp
Modified: trunk/coregrind/m_syswrap/syswrap-solaris.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-solaris.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-solaris.c Sun Nov 20 05:19:02 2016
@@ -966,6 +966,7 @@
DECL_TEMPLATE(solaris, sys_fstatvfs);
DECL_TEMPLATE(solaris, sys_nfssys);
DECL_TEMPLATE(solaris, sys_waitid);
+DECL_TEMPLATE(solaris, sys_sigsendsys);
#if defined(SOLARIS_UTIMESYS_SYSCALL)
DECL_TEMPLATE(solaris, sys_utimesys);
#endif /* SOLARIS_UTIMESYS_SYSCALL */
@@ -5130,6 +5131,57 @@
POST_MEM_WRITE(ARG3, sizeof(vki_siginfo_t));
}
+PRE(sys_sigsendsys)
+{
+ /* int sigsendsys(procset_t *psp, int sig); */
+ PRINT("sys_sigsendsys( %#lx, %ld )", ARG1, SARG2);
+ PRE_REG_READ2(long, "sigsendsys", vki_procset_t *, psp, int, signal);
+ PRE_MEM_READ("sigsendsys(psp)", ARG1, sizeof(vki_procset_t));
+
+ if (!ML_(client_signal_OK)(ARG1)) {
+ SET_STATUS_Failure(VKI_EINVAL);
+ }
+ if (!ML_(safe_to_deref)((void *) ARG1, sizeof(vki_procset_t))) {
+ SET_STATUS_Failure(VKI_EFAULT);
+ }
+
+ /* Exit early if there are problems. */
+ if (FAILURE)
+ return;
+
+ vki_procset_t *psp = (vki_procset_t *) ARG1;
+ switch (psp->p_op) {
+ case VKI_POP_AND:
+ break;
+ default:
+ VG_(unimplemented)("Syswrap of the sigsendsys call with op %u.",
+ psp->p_op);
+ }
+
+ vki_id_t pid;
+ if ((psp->p_lidtype == VKI_P_PID) && (psp->p_ridtype == VKI_P_ALL)) {
+ pid = psp->p_lid;
+ } else if ((psp->p_lidtype == VKI_P_ALL) && (psp->p_ridtype == VKI_P_PID)) {
+ pid = psp->p_rid;
+ } else {
+ VG_(unimplemented)("Syswrap of the sigsendsys call with lidtype %u and"
+ "ridtype %u.", psp->p_lidtype, psp->p_ridtype);
+ }
+
+ if (VG_(clo_trace_signals))
+ VG_(message)(Vg_DebugMsg, "sigsendsys: sending signal to process %u\n",
+ pid);
+
+ /* Handle SIGKILL specially. */
+ if (ARG2 == VKI_SIGKILL && ML_(do_sigkill)(pid, -1)) {
+ SET_STATUS_Success(0);
+ return;
+ }
+
+ /* Check to see if this gave us a pending signal. */
+ *flags |= SfPollAfter;
+}
+
#if defined(SOLARIS_UTIMESYS_SYSCALL)
PRE(sys_utimesys)
{
@@ -10749,6 +10801,7 @@
SOLXY(__NR_fstatvfs, sys_fstatvfs), /* 104 */
SOLXY(__NR_nfssys, sys_nfssys), /* 106 */
SOLXY(__NR_waitid, sys_waitid), /* 107 */
+ SOLX_(__NR_sigsendsys, sys_sigsendsys), /* 108 */
#if defined(SOLARIS_UTIMESYS_SYSCALL)
SOLX_(__NR_utimesys, sys_utimesys), /* 110 */
#endif /* SOLARIS_UTIMESYS_SYSCALL */
Modified: trunk/include/vki/vki-scnums-solaris.h
==============================================================================
--- trunk/include/vki/vki-scnums-solaris.h (original)
+++ trunk/include/vki/vki-scnums-solaris.h Sun Nov 20 05:19:02 2016
@@ -157,7 +157,7 @@
#define __NR_nfssys SYS_nfssys
#define __NR_waitid SYS_waitid
#define __NR_waitsys SYS_waitsys /* = SYS_waitid (historical) */
-//#define __NR_sigsendsys SYS_sigsendsys
+#define __NR_sigsendsys SYS_sigsendsys
//#define __NR_hrtsys SYS_hrtsys
#if defined(SOLARIS_UTIMESYS_SYSCALL)
#define __NR_utimesys SYS_utimesys
Modified: trunk/include/vki/vki-solaris.h
==============================================================================
--- trunk/include/vki/vki-solaris.h (original)
+++ trunk/include/vki/vki-solaris.h Sun Nov 20 05:19:02 2016
@@ -814,6 +814,7 @@
#define VKI_P_PID P_PID
#define VKI_P_PGID P_PGID
#define VKI_P_ALL P_ALL
+#define VKI_POP_AND POP_AND
#define vki_procset_t procset_t
Modified: trunk/memcheck/tests/solaris/scalar.c
==============================================================================
--- trunk/memcheck/tests/solaris/scalar.c (original)
+++ trunk/memcheck/tests/solaris/scalar.c Sun Nov 20 05:19:02 2016
@@ -1934,7 +1934,8 @@
SY(SYS_waitid, x0 - 1, x0, x0, x0); FAIL;
/* SYS_sigsendsys 108 */
- /* XXX Missing wrapper. */
+ GO(SYS_sigsendsys, "2s 1m");
+ SY(SYS_sigsendsys, x0 - 1, x0); FAIL;
/* SYS_hrtsys 109 */
/* XXX Missing wrapper. */
Modified: trunk/memcheck/tests/solaris/scalar.stderr.exp
==============================================================================
--- trunk/memcheck/tests/solaris/scalar.stderr.exp (original)
+++ trunk/memcheck/tests/solaris/scalar.stderr.exp Sun Nov 20 05:19:02 2016
@@ -1851,6 +1851,19 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
---------------------------------------------------------
+108: SYS_sigsendsys 2s 1m
+---------------------------------------------------------
+Syscall param sigsendsys(psp) contains uninitialised byte(s)
+ ...
+
+Syscall param sigsendsys(signal) contains uninitialised byte(s)
+ ...
+
+Syscall param sigsendsys(psp) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
111: SYS_sigresend 3s 2m
---------------------------------------------------------
Syscall param sigresend(signal) contains uninitialised byte(s)
|
Author: iraisr
Date: Sun Nov 20 00:20:34 2016
New Revision: 16144
Log:
Solaris: Add syscall wrapper for sigsuspend(95)
n-i-bz
Modified:
trunk/coregrind/m_syswrap/syswrap-solaris.c
trunk/include/vki/vki-scnums-solaris.h
trunk/memcheck/tests/solaris/scalar.c
trunk/memcheck/tests/solaris/scalar.stderr.exp
Modified: trunk/coregrind/m_syswrap/syswrap-solaris.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-solaris.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-solaris.c Sun Nov 20 00:20:34 2016
@@ -956,6 +956,7 @@
DECL_TEMPLATE(solaris, sys_putmsg);
DECL_TEMPLATE(solaris, sys_lstat);
DECL_TEMPLATE(solaris, sys_sigprocmask);
+DECL_TEMPLATE(solaris, sys_sigsuspend);
DECL_TEMPLATE(solaris, sys_sigaction);
DECL_TEMPLATE(solaris, sys_sigpending);
DECL_TEMPLATE(solaris, sys_getsetcontext);
@@ -4807,6 +4808,26 @@
POST_MEM_WRITE(ARG3, sizeof(vki_sigset_t));
}
+PRE(sys_sigsuspend)
+{
+ *flags |= SfMayBlock;
+
+ /* int sigsuspend(const sigset_t *set); */
+ PRINT("sys_sigsuspend ( %#lx )", ARG1);
+ PRE_REG_READ1(long, "sigsuspend", vki_sigset_t *, set);
+ PRE_MEM_READ("sigsuspend(set)", ARG1, sizeof(vki_sigset_t));
+
+ /* Be safe. */
+ if (ARG1 && ML_(safe_to_deref((void *) ARG1, sizeof(vki_sigset_t)))) {
+ VG_(sigdelset)((vki_sigset_t *) ARG1, VG_SIGVGKILL);
+ /* We cannot mask VG_SIGVGKILL, as otherwise this thread would not
+ be killable by VG_(nuke_all_threads_except).
+ We thus silently ignore the user request to mask this signal.
+ Note that this is similar to what is done for e.g.
+ sigprocmask (see m_signals.c calculate_SKSS_from_SCSS). */
+ }
+}
+
PRE(sys_sigaction)
{
/* int sigaction(int signal, const struct sigaction *act,
@@ -10717,6 +10738,7 @@
GENX_(__NR_fchown, sys_fchown), /* 94 */
#endif /* SOLARIS_OLD_SYSCALLS */
SOLXY(__NR_sigprocmask, sys_sigprocmask), /* 95 */
+ SOLX_(__NR_sigsuspend, sys_sigsuspend), /* 96 */
GENXY(__NR_sigaltstack, sys_sigaltstack), /* 97 */
SOLXY(__NR_sigaction, sys_sigaction), /* 98 */
SOLXY(__NR_sigpending, sys_sigpending), /* 99 */
Modified: trunk/include/vki/vki-scnums-solaris.h
==============================================================================
--- trunk/include/vki/vki-scnums-solaris.h (original)
+++ trunk/include/vki/vki-scnums-solaris.h Sun Nov 20 00:20:34 2016
@@ -144,7 +144,7 @@
#define __NR_setgroups SYS_setgroups
#define __NR_getgroups SYS_getgroups
#define __NR_sigprocmask SYS_sigprocmask
-//#define __NR_sigsuspend SYS_sigsuspend
+#define __NR_sigsuspend SYS_sigsuspend
#define __NR_sigaltstack SYS_sigaltstack
#define __NR_sigaction SYS_sigaction
#define __NR_sigpending SYS_sigpending
Modified: trunk/memcheck/tests/solaris/scalar.c
==============================================================================
--- trunk/memcheck/tests/solaris/scalar.c (original)
+++ trunk/memcheck/tests/solaris/scalar.c Sun Nov 20 00:20:34 2016
@@ -1885,7 +1885,8 @@
SY(SYS_sigprocmask, x0, x0 + 1, x0 + 1); FAILx(EFAULT);
/* SYS_sigsuspend 96 */
- /* XXX Missing wrapper. */
+ GO(SYS_sigsuspend, "1s 1m");
+ SY(SYS_sigsuspend, x0 + 1); FAILx(EFAULT);
/* SYS_sigaltstack 97 */
GO(SYS_sigaltstack, "2s 2m");
Modified: trunk/memcheck/tests/solaris/scalar.stderr.exp
==============================================================================
--- trunk/memcheck/tests/solaris/scalar.stderr.exp (original)
+++ trunk/memcheck/tests/solaris/scalar.stderr.exp Sun Nov 20 00:20:34 2016
@@ -1623,6 +1623,16 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
---------------------------------------------------------
+ 96: SYS_sigsuspend 1s 1m
+---------------------------------------------------------
+Syscall param sigsuspend(set) contains uninitialised byte(s)
+ ...
+
+Syscall param sigsuspend(set) points to unaddressable byte(s)
+ ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+---------------------------------------------------------
97: SYS_sigaltstack 2s 2m
---------------------------------------------------------
Syscall param sigaltstack(ss) contains uninitialised byte(s)
|