From 2153e784d2139d158440c1aeea65b92955c2ed2b Mon Sep 17 00:00:00 2001 From: Christian Thaeter Date: Thu, 7 Jan 2010 09:18:03 +0100 Subject: [PATCH] locking for backtraces --- src/nobug.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/nobug.h b/src/nobug.h index 6baa709..888b9c3 100644 --- a/src/nobug.h +++ b/src/nobug.h @@ -1524,11 +1524,12 @@ NOBUG_IF_NOT_RELEASE( \ #define NOBUG_BACKTRACE_GDB fprintf(stderr, "UNIMPLEMENTED : GDB Backtraces\n") -/* TODO its not clear how newer valgrind formats backtraces, need example where newlines are needed */ -#define NOBUG_BACKTRACE_VALGRIND \ -NOBUG_IF(NOBUG_USE_VALGRIND, \ -VALGRIND_PRINTF_BACKTRACE("BACKTRACE: %s@%d %s", \ - NOBUG_LOCATION_ARGS)) +#define NOBUG_BACKTRACE_VALGRIND \ +NOBUG_IF(NOBUG_USE_VALGRIND, \ + NOBUG_LOGGING_LOCK; \ + VALGRIND_PRINTF_BACKTRACE("BACKTRACE: %s@%d %s", \ + NOBUG_LOCATION_ARGS); \ + NOBUG_LOGGING_UNLOCK) #ifndef NOBUG_BACKTRACE_DEPTH @@ -1539,7 +1540,9 @@ VALGRIND_PRINTF_BACKTRACE("BACKTRACE: %s@%d %s", \ NOBUG_IF_NOT_RELEASE( \ NOBUG_IF(NOBUG_USE_EXECINFO, do { \ NOBUG_LOG_(&nobug_flag_NOBUG_ON, LOG_NOTICE, NOBUG_LOCATION_INFO, "BACKTRACE"); \ + NOBUG_LOGGING_LOCK; \ nobug_backtrace_glibc (); \ + NOBUG_LOGGING_UNLOCK; \ } while (0))) -- 2.11.4.GIT