-coloredstderr is a small library which uses 'LD_PRELOAD' to color stderr.
-
+coloredstderr is a small library which uses 'LD_PRELOAD' to color stderr. It
+``follows'' dups, has minimal performance overhead and can ignore certain
+binaries (requires /proc).
Like all solutions using 'LD_PRELOAD' it only works with dynamically linked
binaries. Statically linked binaries, for example valgrind, are not supported.
setuid binaries are also not supported ('LD_PRELOAD' disabled for security
reasons).
Like all solutions using 'LD_PRELOAD' it only works with dynamically linked
binaries. Statically linked binaries, for example valgrind, are not supported.
setuid binaries are also not supported ('LD_PRELOAD' disabled for security
reasons).
Most other existing solutions use a second process which colors its input and
pipe stderr to it. However this creates different runtime behaviour resulting
in a different ordering of the output. Partial lines (no newline) also often
Most other existing solutions use a second process which colors its input and
pipe stderr to it. However this creates different runtime behaviour resulting
in a different ordering of the output. Partial lines (no newline) also often
are colored.
- 'COLORED_STDERR_IGNORED_BINARIES'
Comma separated list of binary names/paths which should not be tracked
are colored.
- 'COLORED_STDERR_IGNORED_BINARIES'
Comma separated list of binary names/paths which should not be tracked
but fails to work if the output is colored. See below for an example.
All environment variables starting with 'COLORED_STDERR_PRIVATE_*' are
but fails to work if the output is colored. See below for an example.
All environment variables starting with 'COLORED_STDERR_PRIVATE_*' are
symbolic-link to `tset` on some systems, adapt as necessary:
COLORED_STDERR_IGNORED_BINARIES=/usr/bin/tset
symbolic-link to `tset` on some systems, adapt as necessary:
COLORED_STDERR_IGNORED_BINARIES=/usr/bin/tset
-- `{fputc,putc,putchar}_unlocked()` are not hooked when writing to stdout
- (which might be redirected to stderr). Can't be fixed as the compiler
+- `{fputc,putc,putchar}_unlocked()` are not hooked with glibc when writing to
+ stdout (which might be redirected to stderr). Can't be fixed as the compiler
-- Test `test_stdio.sh` fails for this reason on FreeBSD.
-- 'COLORED_STDERR_IGNORED_BINARIES' requries the `/proc` file system.
+- Test `test_stdio.sh` fails on FreeBSD, because FreeBSD does handle the above
+ correctly (no inlining), but the test is designed for GNU/Linux.
+- 'COLORED_STDERR_IGNORED_BINARIES' requires the `/proc` file system.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by