GSoC/GCI Archive
Google Summer of Code 2014


License: New and Simplified BSD licenses

Web Page:

Mailing List:

about strace and why you should submit your project to strace strace is a system call tracer, i.e. a debugging tool which prints out a trace of all the system calls made by another process/program.

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

strace is an important tool for debugging and tracing deployed on all Linux distributions and most Unix distributions with a small community of active contributors.

Some recent articles about strace:

While strace is a small project, the strace tool is essential for many developers, system administrators and open source projects. Its maintainers and contributors are experienced developers.

The project organization is simple: the community discusses proposed patches and a few core maintainers eventually accept or reject contributions. All contributions are submitted as git patches to the mailing list, which is the single point of communication, in a mode very similar to the ways of the Linux kernel.

strace is typically released once per year.

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.

You need to grok C and have an interest in system programming and debugging. The codebase is not huge but the domain is not simple and requires a meticulous attention to many details.

All the communication is going through a single mailing list:

Subscribe to the list, introduce yourself and start the discussion!

Please prefix your email subjects with GSOC.

Check our list of projects ideas or submit new ideas to the list for consideration. General Proposal Requirements

You will need to submit your official proposal via and plain text is the way to go. Please subscribe to the strace-devl mailing list and post your proposal there too. We expect your application to be in the range of 1000 words. Anything less than that will probably not contain enough information for us to determine whether you are the right person for the job. Your proposal should contain at least the following information, plus anything you think is relevant:

  • Your name
  • Title of your proposal
  • Abstract of your proposal
  • Detailed description of your idea including explanation on why is it innovative
  • Description of previous work, existing solutions (links to prototypes, bibliography are more than welcome)
  • Mention the details of your academic studies, any previous work, internships
  • Any relevant skills that will help you to achieve the goal (programming languages, frameworks)?
  • Any previous open-source projects (or even previous GSoC) you have contributed to?
  • Do you plan to have any other commitments during SoC that may affect you work? Any vacations/holidays planned?


  • Refactor the output-related code to support structured output In this proposal, I want to make it easier to parse the strace‚Äôs output. Since the well-structured output in JSON is much better than the current classical output for program analysis. I am going to import a new feature to strace to make it support output in JSON. In my method, I will refactor the currently output-related code in strace and then import a totally-new framework to decouple the currently tightly-coupled high-level format and the low-level output functions.
  • strace : Strace Security and Advanced and improved absolute paths decoding - Improving validation on data fetched from tracee process space. - If time permits, work on improving path decoding in strace.