mirror of
https://github.com/FAUSheppy/colorredstderr-mirror
synced 2025-12-09 16:38:32 +01:00
Add assert()s.
This commit is contained in:
6
README
6
README
@@ -73,8 +73,12 @@ DEBUG
|
||||
|
||||
To enable debug mode, configure coloredstderr with '--enable-debug'.
|
||||
|
||||
*Important:* Debug mode enables `assert()`s in the code which might abort the
|
||||
process if an error condition is detected!
|
||||
|
||||
Debug mode is slower than normal mode. To log only warnings without the
|
||||
overhead of debug mode use '--enable-warnings'.
|
||||
overhead of debug mode use '--enable-warnings'. `assert()`s are not enabled
|
||||
with '--enable-warnings', so it's safe to use.
|
||||
|
||||
Debug messages are written to the file `colored_stderr_debug_log.txt` in the
|
||||
current working directory _if_ it exists. If it exists debug messages are
|
||||
|
||||
@@ -25,6 +25,12 @@
|
||||
/* Must be loaded before the following headers. */
|
||||
#include "ldpreload.h"
|
||||
|
||||
/* Disable assert()s if not compiled with --enable-debug. */
|
||||
#ifndef DEBUG
|
||||
# define NDEBUG
|
||||
#endif
|
||||
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdarg.h>
|
||||
@@ -78,6 +84,8 @@ static int force_write_to_non_tty;
|
||||
* additional call. */
|
||||
static int isatty_noinline(int fd) noinline;
|
||||
static int isatty_noinline(int fd) {
|
||||
assert(fd >= 0);
|
||||
|
||||
int saved_errno = errno;
|
||||
int result = isatty(fd);
|
||||
errno = saved_errno;
|
||||
@@ -91,6 +99,8 @@ static void dup_fd(int oldfd, int newfd) {
|
||||
debug("%3d -> %3d\t\t\t[%d]\n", oldfd, newfd, getpid());
|
||||
#endif
|
||||
|
||||
assert(oldfd >= 0 && newfd >= 0);
|
||||
|
||||
if (unlikely(!initialized)) {
|
||||
init_from_environment();
|
||||
}
|
||||
@@ -113,6 +123,8 @@ static void close_fd(int fd) {
|
||||
debug("%3d -> .\t\t\t[%d]\n", fd, getpid());
|
||||
#endif
|
||||
|
||||
assert(fd >= 0);
|
||||
|
||||
if (unlikely(!initialized)) {
|
||||
init_from_environment();
|
||||
}
|
||||
|
||||
@@ -51,6 +51,8 @@ static void tracked_fds_debug(void) {
|
||||
#endif
|
||||
|
||||
static int init_tracked_fds_list(size_t count) {
|
||||
assert(count > 0);
|
||||
|
||||
/* Reduce reallocs. */
|
||||
count += TRACKFDS_REALLOC_STEP;
|
||||
|
||||
@@ -164,6 +166,8 @@ next:
|
||||
}
|
||||
|
||||
static char *update_environment_buffer_entry(char *x, int fd) {
|
||||
assert(fd >= 0);
|
||||
|
||||
int length = snprintf(x, 10 + 1, "%d", fd);
|
||||
if (length >= 10 + 1) {
|
||||
/* Integer too big to fit the buffer, skip it. */
|
||||
@@ -183,6 +187,8 @@ static char *update_environment_buffer_entry(char *x, int fd) {
|
||||
return x;
|
||||
}
|
||||
static void update_environment_buffer(char *x) {
|
||||
assert(initialized);
|
||||
|
||||
size_t i;
|
||||
for (i = 0; i < TRACKFDS_STATIC_COUNT; i++) {
|
||||
if (tracked_fds[i]) {
|
||||
@@ -194,6 +200,8 @@ static void update_environment_buffer(char *x) {
|
||||
}
|
||||
}
|
||||
inline static size_t update_environment_buffer_size(void) {
|
||||
assert(initialized);
|
||||
|
||||
/* Use the maximum count (TRACKFDS_STATIC_COUNT) of used descriptors
|
||||
* because it's simple and small enough not to be a problem.
|
||||
*
|
||||
@@ -229,6 +237,8 @@ static void update_environment(void) {
|
||||
|
||||
|
||||
static void tracked_fds_add(int fd) {
|
||||
assert(fd >= 0);
|
||||
|
||||
if (fd < TRACKFDS_STATIC_COUNT) {
|
||||
tracked_fds[fd] = 1;
|
||||
#if 0
|
||||
@@ -269,6 +279,8 @@ static void tracked_fds_add(int fd) {
|
||||
#endif
|
||||
}
|
||||
static int tracked_fds_remove(int fd) {
|
||||
assert(fd >= 0);
|
||||
|
||||
if (fd < TRACKFDS_STATIC_COUNT) {
|
||||
int old_value = tracked_fds[fd];
|
||||
tracked_fds[fd] = 0;
|
||||
@@ -314,6 +326,8 @@ static int tracked_fds_find_slow(int fd) noinline;
|
||||
*/
|
||||
inline static int tracked_fds_find(int fd) always_inline;
|
||||
static int tracked_fds_find(int fd) {
|
||||
assert(fd >= 0);
|
||||
|
||||
if (fd < TRACKFDS_STATIC_COUNT) {
|
||||
return tracked_fds[fd];
|
||||
}
|
||||
@@ -321,6 +335,8 @@ static int tracked_fds_find(int fd) {
|
||||
return tracked_fds_find_slow(fd);
|
||||
}
|
||||
static int tracked_fds_find_slow(int fd) {
|
||||
assert(initialized);
|
||||
|
||||
if (tracked_fds_list_count == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user