diff --git a/Makefile b/Makefile index a41ce764b..09a458ef0 100644 --- a/Makefile +++ b/Makefile @@ -85,9 +85,9 @@ LIB_LDFLAGS = $(COMMON_LDFLAGS) $(LDFLAGS_$@) $(LDFLAGS_lib) -Wl,--no-und TEST_LDFLAGS = $(COMMON_LDFLAGS) -L$(objdir)/libtraceevent -ltraceevent ifeq ($(DEBUG), 1) - COMMON_CFLAGS += -O0 -g -rdynamic + COMMON_CFLAGS += -O0 -g -DDEBUG_MODE=1 -rdynamic else - COMMON_CFLAGS += -O2 -g + COMMON_CFLAGS += -O2 -g -DDEBUG_MODE=0 endif ifeq ($(TRACE), 1) diff --git a/utils/utils.h b/utils/utils.h index 7689344c7..d83e08930 100644 --- a/utils/utils.h +++ b/utils/utils.h @@ -376,4 +376,24 @@ void dump_stacktrace(void **buffer, int nptrs); dump_stacktrace(buffer, nptrs); \ } while (0) +#define CHECK(cond) \ + if (unlikely(!(cond))) { \ + pr_red("%s:%d: %s: CHECK `%s' failed.\n", \ + __FILE__, __LINE__, __func__, #cond); \ + stacktrace(); \ + pr_red("Please report this uftrace internal bug to " \ + "https://github.com/namhyung/uftrace/issues"); \ + abort(); \ + } + +#define DCHECK(cond) \ + if (DEBUG_MODE && unlikely(!(cond))) { \ + pr_red("%s:%d: %s: DCHECK `%s' failed.\n", \ + __FILE__, __LINE__, __func__, #cond); \ + stacktrace(); \ + pr_red("Please report this uftrace internal bug to " \ + "https://github.com/namhyung/uftrace/issues"); \ + abort(); \ + } + #endif /* UFTRACE_UTILS_H */