<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to GoogleSummerOfCode2017</title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>Recent changes to GoogleSummerOfCode2017</description><atom:link href="https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/feed" rel="self"/><language>en</language><lastBuildDate>Thu, 13 Apr 2017 18:38:04 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/feed" rel="self" type="application/rss+xml"/><item><title>GoogleSummerOfCode2017 modified by Dmitry V. Levin</title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v16
+++ v17
@@ -79,7 +79,7 @@
 Suggested by: Eugene Syromyatnikov, Dmitry V. Levin

 The test suite we have today is far from covering all branches of all parsers yet.
-According to [Codecov](https://codecov.io/github/strace/strace), current test coverage is under 80%, but it tells very little about coverage of various corner cases (checks for type sizes, signedness, handling of pointers to invalid memory, etc).
+According to [Codecov](https://codecov.io/github/strace/strace), current test coverage is just over 80%, but it tells very little about coverage of various corner cases (checks for type sizes, signedness, handling of pointers to invalid memory, etc).

 The goal of this project is to improve the test suite to a level that makes strace more reliable.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitry V. Levin</dc:creator><pubDate>Thu, 13 Apr 2017 18:38:04 -0000</pubDate><guid>https://sourceforge.net97c5005b4c16361d867b5d773453a559280c7dc7</guid></item><item><title>GoogleSummerOfCode2017 modified by Dmitry V. Levin</title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v15
+++ v16
@@ -120,6 +120,16 @@
 SECCOMP_RET_TRACE seccomp API could be used to implement a more efficient syscall filtering.
 Using this technique, tracees will be stopped on entering filtered syscalls only instead of all syscalls.

+__ Advanced syscall information tool. __
+Suggested by: Dmitry Levin
+
+A tool that prints all kinds of information about syscalls, including, but not limited to,
+
+* mapping between syscall names and syscall numbers;
+* number of arguments, other properties of syscalls;
+* lookup syscalls by their names, numbers, and other properties;
+* whether specified syscalls are implemented by the running kernel.
+
 __ Advanced syscall tampering. __
 Suggested by: Eugene Syromyatnikov, Dmitry Levin

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitry V. Levin</dc:creator><pubDate>Sat, 18 Mar 2017 23:14:57 -0000</pubDate><guid>https://sourceforge.net753f6d25dc5350948b62b9138b6886e251798fa5</guid></item><item><title>GoogleSummerOfCode2017 modified by Dmitry V. Levin</title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v14
+++ v15
@@ -114,6 +114,11 @@

 There is also an idea that uprobes can be utilized for tracing syscalls as a more modern way of tracing processes, which makes the possible support for various tracing backend more useful.

+__ seccomp-assisted syscall filtering. __
+Suggested by: Dmitry Levin
+
+SECCOMP_RET_TRACE seccomp API could be used to implement a more efficient syscall filtering.
+Using this technique, tracees will be stopped on entering filtered syscalls only instead of all syscalls.

 __ Advanced syscall tampering. __
 Suggested by: Eugene Syromyatnikov, Dmitry Levin
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitry V. Levin</dc:creator><pubDate>Sat, 18 Mar 2017 22:51:18 -0000</pubDate><guid>https://sourceforge.net54da986030116c141427b6897a85e7aec1a97813</guid></item><item><title>GoogleSummerOfCode2017 modified by Dmitry V. Levin</title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v13
+++ v14
@@ -112,7 +112,7 @@
 * https://github.com/cuviper/strace/
 * https://sourceforge.net/p/strace/mailman/strace-devel/thread/d967f64d-7660-3d45-7d2b-dfbd2cba54fe%40redhat.com/#msg35598297

-There is also an idea that uprobes can be utilized for tracing syscalls as a more moder way of tracing processes, which makes the possible support for various tracing backend more useful.
+There is also an idea that uprobes can be utilized for tracing syscalls as a more modern way of tracing processes, which makes the possible support for various tracing backend more useful.

 __ Advanced syscall tampering. __
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitry V. Levin</dc:creator><pubDate>Fri, 10 Mar 2017 01:50:47 -0000</pubDate><guid>https://sourceforge.net5b8e68c7f7bf6cee3bd59c0c15758ea8eb9248d6</guid></item><item><title>GoogleSummerOfCode2017 modified by Eugene Syromyatnikov </title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v12
+++ v13
@@ -133,3 +133,9 @@
 ~~~
 inject unlink:when=2:retval=0 or inject unlink:when=5:error=ENOENT
 ~~~
+
+__Other ideas__
+
+We are also open to any suggestions not listed on this page.
+
+Some existing ideas are present on a [separate page](FeatureRequests). Note, however, that they may be not adequately sized for a GSoC project or require specific qualifications.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Eugene Syromyatnikov </dc:creator><pubDate>Sun, 05 Mar 2017 11:01:36 -0000</pubDate><guid>https://sourceforge.net1be25229947991fb062f77d71e923c1ef73e7295</guid></item><item><title>GoogleSummerOfCode2017 modified by Dmitry V. Levin</title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v11
+++ v12
@@ -1,7 +1,7 @@
 [__ strace is taking part in the GSoC 2017 as a mentor organization. __](https://summerofcode.withgoogle.com/organizations/4865634958573568/)

-About strace.
+About strace project.
 --
 strace is a diagnostic, debugging and instructional userspace tracer for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as [ptrace](http://man7.org/linux/man-pages/man2/ptrace.2.html).

@@ -34,7 +34,6 @@

 Please prefix your email subjects with GSOC.

-
 ~~~~
 Please be kind enough to follow these simple guidelines when posting to the list:

@@ -47,38 +46,11 @@

 Thank you!
 ~~~~
-
-
 — https://sourceforge.net/p/strace/mailman/message/34924899/
-

 Check our list of projects ideas below or submit new ideas to the list for consideration.

-The best way to demonstrate your capability could be to submit a small patch ahead of the project selection for a small issue you could have identified in the codebase or a bug that has been reported. 
-
-
-~~~~
-If you are looking for something to code that does not require deep
-knowledge of strace internals, there are at least two areas that come                
-to mind:
-
-1. The most popular idea that was mentioned several times in this list
-recently is to add a test for a syscall that's not yet covered by the test
-suite.  See https://codecov.io/github/strace/strace for a general idea
-what's covered and what's not.  As virtually every GSoC project expects
-writing some tests, the experience of extending test suite would be useful
-anyway.
-
-2. Another idea is to extend -e trace=class syntax with new classes.
-strace currently supports desc, file, ipc, memory, network, process, and
-signal.  Additional classes might be useful, e.g. all open-like syscalls,
-all stat-like syscalls, all syscalls dealing with uid/gid, etc.  This was
-discussed in this list already, so please see the mailing list archive.
-~~~~
-
-
-— https://sourceforge.net/p/strace/mailman/message/34905216/
-
+It is required that students who want to apply to the strace project for the GSoC 2017 complete a relatively small code-related "microproject" as part of their application.  Please refer to our guidelines and suggestions for [Microprojects] for more information.  Completing a microproject is not only an important way for us to get experience with applicants, but it will also help applicants become familiar with strace's development and submission process.

 General Proposal Requirements.
 --
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitry V. Levin</dc:creator><pubDate>Thu, 02 Mar 2017 04:26:40 -0000</pubDate><guid>https://sourceforge.net5eec35537c5f5071611e032f41d438fdaa2d79b2</guid></item><item><title>GoogleSummerOfCode2017 modified by Dmitry V. Levin</title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v10
+++ v11
@@ -1,13 +1,8 @@
-__strace participation in the GSOC 2017__
-
-strace is submitting a GSOC mentor organization membership for 2017:
-https://summerofcode.withgoogle.com/get-started/
+[__ strace is taking part in the GSoC 2017 as a mentor organization. __](https://summerofcode.withgoogle.com/organizations/4865634958573568/)

-__Program details __
-
-
-___about strace and why you should submit your project to strace___
+About strace.
+--
 strace is a diagnostic, debugging and instructional userspace tracer for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as [ptrace](http://man7.org/linux/man-pages/man2/ptrace.2.html).

 strace is one of the longest running open source projects and started even before Linux started.
@@ -25,7 +20,8 @@
 So we expect that you would be making the efforts to learn our mailing list and patch ways and ask good questions and do your home work for a most productive and efficient participation.

-___What to do as a prospective student___
+What to do as a prospective student.
+--

 We want engage with students that are interested in system programming and want to help making strace a better tool. We hope to gain you as a new long term contributor and that you will contribute interesting and new features.

@@ -84,7 +80,8 @@
 — https://sourceforge.net/p/strace/mailman/message/34905216/

-___ General Proposal Requirements ___
+General Proposal Requirements.
+--

 You will need to submit your official proposal via https://summerofcode.withgoogle.com and plain text is the way to go. 
 Please subscribe to the strace-devel mailing list and post your proposal there too.
@@ -101,15 +98,12 @@
 *     Any open-source code of yours that we can check out?
 *     Do you plan to have any other commitments during SoC that may affect you work? Any vacations/holidays planned? Will you be available full time to work on your project? (Hint: do not bother applying if this is not a serious full time commitment)

-
 Beyond your proposal you need obviously to be familiar with C and Git (or willing to learn these two super quick).

+List of project ideas for students.
+--

-
-___List of project ideas for students___
-
-
-__Comprehensive test suite__
+__ Comprehensive test suite. __
 Suggested by: Eugene Syromyatnikov, Dmitry V. Levin

 The test suite we have today is far from covering all branches of all parsers yet.
@@ -122,7 +116,7 @@
 On the other hand, a comprehensive test suite is a prerequisite for any major change in strace source code.  This test suite project does not have to be a work from scratch, there are already existing tests (e.g. strace/tests, ltp/testcases/kernel/syscalls, and sandbox/tests) that could be used as a starting point.

-__Netlink socket parsers__
+__ Netlink socket parsers. __
 Suggested by: Gabriel Laskar, Dmitry V. Levin

 Netlink is a network protocol that is used to communicate between the
@@ -137,7 +131,7 @@
 more netlink family protocols.

-__Support for alternative backends__
+__ Support for alternative backends. __
 Suggested by: Eugene Syromyatnikov

 Add support for providing various backends for strace.
@@ -149,12 +143,12 @@
 There is also an idea that uprobes can be utilized for tracing syscalls as a more moder way of tracing processes, which makes the possible support for various tracing backend more useful.

-__Advanced syscall tampering__
+__ Advanced syscall tampering. __
 Suggested by: Eugene Syromyatnikov, Dmitry Levin

 In 2016, strace has been extended to tamper with tracees using syscall fault injection. These tampering capabilities of strace could be extended further to support more complex scenarios by tampering with tracee's syscall arguments and the memory they reference. For the maximum flexibility, an API could be added for describing this tampering using some scripting language.

-__Advanced syscall filtering syntax__
+__ Advanced syscall filtering syntax. __
 Suggested by: Eugene Syromyatnikov, Dmitry Levin

 strace supports several qualifying expression types which could be used to configure filtering of syscalls being monitored (-e trace, -e verbose, -e abbrev, etc). With addition of various injecting capabilities, this filtering mechanism starts showing its limitations as it does not support a clear separation of various filtering aspects. For example, it is not possible to filter some syscalls for a specific path and others for another path simultaneously, or inject success to the 2nd open syscall and failure to the 5th one. At the same time, one can find several filtering languages like [pcap-filter(7)](http://www.tcpdump.org/manpages/pcap-filter.7.html) that support filtering expressions of arbitrary complexity.
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitry V. Levin</dc:creator><pubDate>Wed, 01 Mar 2017 20:00:24 -0000</pubDate><guid>https://sourceforge.net1d19eaa896aa807fa047c5f27ee024126bf77c7a</guid></item><item><title>GoogleSummerOfCode2017 modified by Dmitry V. Levin</title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v9
+++ v10
@@ -8,7 +8,7 @@

 ___about strace and why you should submit your project to strace___
-strace is a diagnostic, debugging and instructional userspace tracer for Linux. It is used to monitor interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as [ptrace](http://man7.org/linux/man-pages/man2/ptrace.2.html).
+strace is a diagnostic, debugging and instructional userspace tracer for Linux. It is used to monitor and tamper with interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as [ptrace](http://man7.org/linux/man-pages/man2/ptrace.2.html).

 strace is one of the longest running open source projects and started even before Linux started.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitry V. Levin</dc:creator><pubDate>Thu, 16 Feb 2017 01:26:50 -0000</pubDate><guid>https://sourceforge.netd66ad7140c191ca31ea4ba22f51274dd36e8340b</guid></item><item><title>GoogleSummerOfCode2017 modified by Line Printer</title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v8
+++ v9
@@ -8,7 +8,7 @@

 ___about strace and why you should submit your project to strace___
-strace isa diagnostic, debugging and instructional userspace tracer for Linux. It is used to monitor interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as [ptrace](http://man7.org/linux/man-pages/man2/ptrace.2.html).
+strace is a diagnostic, debugging and instructional userspace tracer for Linux. It is used to monitor interactions between processes and the Linux kernel, which include system calls, signal deliveries, and changes of process state. The operation of strace is made possible by the kernel feature known as [ptrace](http://man7.org/linux/man-pages/man2/ptrace.2.html).

 strace is one of the longest running open source projects and started even before Linux started.

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Line Printer</dc:creator><pubDate>Mon, 13 Feb 2017 06:58:35 -0000</pubDate><guid>https://sourceforge.net881e951c5c570bc3226b1677ebf3de8ad1fa4c3f</guid></item><item><title>GoogleSummerOfCode2017 modified by Dmitry V. Levin</title><link>https://sourceforge.net/p/strace/wiki/GoogleSummerOfCode2017/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v7
+++ v8
@@ -154,16 +154,16 @@

 In 2016, strace has been extended to tamper with tracees using syscall fault injection. These tampering capabilities of strace could be extended further to support more complex scenarios by tampering with tracee's syscall arguments and the memory they reference. For the maximum flexibility, an API could be added for describing this tampering using some scripting language.

-__Flexible syscall filtering syntax__
-Suggested by: Dmitry Levin
+__Advanced syscall filtering syntax__
+Suggested by: Eugene Syromyatnikov, Dmitry Levin

-strace has a set of capabilities which allow configuring filtering of syscalls being monitored (-e trace, -e verbose, -e abbrev, etc). With addition of various injecting capabilities, this filtering mechanism starts showing its rigidness, as it does not allow clear separation of various filtering aspects. For example, it is not possible to filter some syscalls for a specific path, while others for another path; or inject success of 2nd open call and failure of 5th one. On the other side, there is present some filtering languages which allow providing filtering expressions of arbitrary complexity; one of them is pcap-filter(7).
+strace supports several qualifying expression types which could be used to configure filtering of syscalls being monitored (-e trace, -e verbose, -e abbrev, etc). With addition of various injecting capabilities, this filtering mechanism starts showing its limitations as it does not support a clear separation of various filtering aspects. For example, it is not possible to filter some syscalls for a specific path and others for another path simultaneously, or inject success to the 2nd open syscall and failure to the 5th one. At the same time, one can find several filtering languages like [pcap-filter(7)](http://www.tcpdump.org/manpages/pcap-filter.7.html) that support filtering expressions of arbitrary complexity.

-For example, the following pcap filtering expression is proposed to allow filtering of all open syscalls and also all read syscalls performed on path "/path/to/a":
+For example, the following pcap-like filtering expression could be used to specify filtering of all open syscalls and also all read syscalls performed on path "/path/to/a":
 ~~~
 syscall open or (syscall read and path "/path/a/")
 ~~~
-Or the next expression should allow injecting success to 2nd unlink syscall and fail 5th one:
+The following expression specifies success injection to the 2nd unlink syscall and fail injection to the 5th one:
 ~~~
-inject unlink:when=+2:retval=0 or inject unlink:when=+5:error=ENOENT
+inject unlink:when=2:retval=0 or inject unlink:when=5:error=ENOENT
 ~~~
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Dmitry V. Levin</dc:creator><pubDate>Wed, 08 Feb 2017 20:39:28 -0000</pubDate><guid>https://sourceforge.neta084fcbd72c004078f11730a66414a641c640780</guid></item></channel></rss>