diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/charon/daemon.c | 7 | ||||
-rw-r--r-- | src/libstrongswan/utils/leak_detective.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/charon/daemon.c b/src/charon/daemon.c index 1fd9f9a0a..f9e913c1b 100644 --- a/src/charon/daemon.c +++ b/src/charon/daemon.c @@ -285,6 +285,7 @@ static void initialize(private_daemon_t *this, bool strict, bool syslog, */ void signal_handler(int signal) { +#ifndef HAVE_BACKTRACE void *array[20]; size_t size; char **strings; @@ -294,13 +295,17 @@ void signal_handler(int signal) strings = backtrace_symbols(array, size); DBG1(DBG_DMN, "thread %u received %s. Dumping %d frames from stack:", - signal == SIGSEGV ? "SIGSEGV" : "SIGILL", pthread_self(), size); + pthread_self(), signal == SIGSEGV ? "SIGSEGV" : "SIGILL", size); for (i = 0; i < size; i++) { DBG1(DBG_DMN, " %s", strings[i]); } free (strings); +#else /* !HAVE_BACKTRACE */ + DBG1(DBG_DMN, "thread %u received %s", + pthread_self(), signal == SIGSEGV ? "SIGSEGV" : "SIGILL"); +#endif /* HAVE_BACKTRACE */ DBG1(DBG_DMN, "killing ourself hard after SIGSEGV"); raise(SIGKILL); } diff --git a/src/libstrongswan/utils/leak_detective.c b/src/libstrongswan/utils/leak_detective.c index f132c5120..efb055466 100644 --- a/src/libstrongswan/utils/leak_detective.c +++ b/src/libstrongswan/utils/leak_detective.c @@ -140,6 +140,7 @@ static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; */ static void log_stack_frames(void **stack_frames, int stack_frame_count) { +#ifdef HAVE_BACKTRACE char **strings; size_t i; @@ -152,6 +153,7 @@ static void log_stack_frames(void **stack_frames, int stack_frame_count) DBG1(" %s", strings[i]); } free (strings); +#endif /* HAVE_BACKTRACE */ } /** |