Move the generate backtrace call from MSGB_ABORT to osmo_panic handler
This has two benefits:
- All people calling osmo_panic() will have the backtrace
- It makes the thing build in 'target' mode in osmocom-bb
And one downside:
- The osmo_panic handler is now in the backtrace
(I can live with that :)
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
diff --git a/include/osmocore/msgb.h b/include/osmocore/msgb.h
index 44c59cd..6fd24c7 100644
--- a/include/osmocore/msgb.h
+++ b/include/osmocore/msgb.h
@@ -62,9 +62,7 @@
#ifdef MSGB_DEBUG
#include <osmocore/panic.h>
-#include <osmocore/gsm_utils.h>
#define MSGB_ABORT(msg, fmt, args ...) do { \
- generate_backtrace(); \
osmo_panic("msgb(%p): " fmt, msg, ## args); \
} while(0)
#else
diff --git a/src/panic.c b/src/panic.c
index 0c0a920..5fb7b56 100644
--- a/src/panic.c
+++ b/src/panic.c
@@ -20,6 +20,7 @@
*
*/
+#include <osmocore/gsm_utils.h>
#include <osmocore/panic.h>
#include "../config.h"
@@ -36,6 +37,7 @@
static void osmo_panic_default(const char *fmt, va_list args)
{
vfprintf(stderr, fmt, args);
+ generate_backtrace();
abort();
}