Proliferation of hundreds of tiny files

Denys Vlasenko dvlasenk at
Thu Oct 22 15:27:24 UTC 2015

Hello Dmitry,

Two years ago, at the end of 2013, strace source had 29 *.c files
in its main source directory (meaning: this does not count any tests).
linux/* contained 148 files in total (not only *.c files).

Today, there are 120 *.c files in main source directory,
and 419 files in linux/*

I have hard time understanding code now. Register reading logic
for x86 is now in what, a dozen different files?

Take a look at x86_64/get_scno.c - what's there is not even a
complete function definition, it's a fragment of C code to be
#included somewhere else. It's hard to see what's being done
where, let alone spot possible bugs or inefficiencies.

Another example:

commit 9b2f674adbd5c44fe892b31cf95703eeceb21c40
Author: Dmitry V. Levin <ldv at>
Date:   Sat Dec 6 03:53:16 2014 +0000

    file.c: move chdir parser to a separate file

I have a question: Why it's better to have it in a separate file?
I mean, the

#include "defs.h"

        printpath(tcp, tcp->u_arg[0]);

        return RVAL_DECODED;

needs a separate file why?

More information about the Strace-devel mailing list