[LSF/MM/BPF TOPIC] tracing the source of errors

From: Miklos Szeredi
Date: Wed Feb 07 2024 - 04:55:01 EST


[I'm not planning to attend LSF this year, but I thought this topic
might be of interest to those who will.]

The errno thing is really ancient and yet quite usable. But when
trying to find out where a particular EINVAL is coming from, that's
often mission impossible.

Would it make sense to add infrastructure to allow tracing the source
of errors? E.g.

strace --errno-trace ls -l foo
..
statx(AT_FDCWD, "foo", ...) = -1 ENOENT [fs/namei.c:1852]
..

Don't know about others, but this issue comes up quite often for me.

I would implement this with macros that record the place where a
particular error has originated, and some way to query the last one
(which wouldn't be 100% accurate, but good enough I guess).

Thanks,
Miklos