Back to Programs

Development tools

strace

Linux syscall tracer

awkcgnu makelinuxshellgitautotoolsgawk

Participation history

7 GSoC years

2022

1 project

Official year page

Support for BTF and other BPF decoding improvements

The purpose of this project is to extract BTF information for eBPF maps, process it in a human-readable manner, and improve decoding for the bpf()...

2021

1 project

Official year page

Generating Syscall Decoders from Declarative Definitions

Many system call decoders in strace are very similar in structure. This proposal aims to incorporate a system for generating syscall decoders from a...

2020

1 project

Official year page

PID namespace translation support for strace

When strace is tracing a process which is in an other process namespace than strace itself, PIDs in system call arguments and return values are...

2019

2 projects

Official year page

DRM ioctl decoding

Direct Rendering Manager subsystem has pretty elaborate ioctl interface, and it might be useful to be able to support its decoding.

Efficient syscall tracing for strace

strace currently adds significant overhead to any application it traces. Even when users are interested in a handful of syscalls, strace will...

2018

2 projects

Official year page

seccomp-assisted syscall filtering

SECCOMP_RET_TRACE seccomp API could be used to implement a more efficient syscall filtering. Using this technique, tracees will be stopped on...

Comprehensive test suite

The point of this project is about coverage of branches of parsers as well as corner cases. In other words, there are mainly two parts. At first, add...

2017

4 projects

Official year page

Advanced syscall information tool

Everyone accepts that strace is one the most useful program for developers. And to make the output more understandable, I want to improve the...

"Netlink socket parsers" By Gabriel Laskar and Dmitry V. Levin, 2017

Netlink is a network protocol that is used to communicate between the kernel and the userspace. For example, iproute use netlink in order to...

Advanced syscall filtering syntax

Current strace filtering syntax allows to debug simple applications. But it has no support for advanced filtering. For example, it is impossible to...

Advanced syscall tampering and filtering with Lua/LuaJIT

A support for Lua-scriptable syscall tampering and filtering will be added. It will be possible to inspect syscall arguments (including...

2016

4 projects

Official year page

Multi-platform continuous tests infrastructure

Strace is an essential tool which has been ported to multiple architectures. To confidently ship release, we need to ensure each new commit has been...

Netlink socket parsers

Netlink is, basically, an API used to transfer information between kernel and user-space processes. It consists on a standard sockets-based interface...

Strace Fault Injection Proposal

Fault injection is something that could be really usefull in many ways for developpers and testers. It could be used in test suites context to assert...

Truly structured output for strace

Parsing current strace output is not an ideal solution, because: this is excessively difficult: the output is intended to humans, not robots;...