Hi everyone! For that last few days I've been writing an alternative implementation of strace(1):
https://github.com/maandree/sctrace It is currently only implemented for x86-64 Linux. It is ready for use, but you may find that it, as of yet, does not provide a lot of information for every system call (there are a lot if system calls, so it will take some time), but apart from that everything is finished, except there two flags that may be useful to add: print detailed signal information, and truncate strings included in the output (so that for example cp(1) for a 1G file wouldn't flood you terminal uninteresting binary data from a file, so you can easier find the system calls). And then, maybe some code cleanup is needed. Unlike strace(1), this program will no allow you to modify syscall results, filter traces, or give you timestamps, and will not give you ugly output, and it returns syscalls results as is without changing negative error codes to -1. Is there any interest in this project? Otherwise, I will stop development here and only occasionally add some improvements (like syscalls formatters) and only accept patches (like syscalls formatters, they are easily to add, hint, hint), and continue on with my next project, which was the reason I made this in the first place: a fakeroot(1)-like utility for package managers and static linking. Best regards, Mattias Andrée