diff --git a/common/daemon.c b/common/daemon.c index 882b6602e..c181545ab 100644 --- a/common/daemon.c +++ b/common/daemon.c @@ -15,8 +15,9 @@ #include #include +struct backtrace_state *backtrace_state; + #if BACKTRACE_SUPPORTED -static struct backtrace_state *backtrace_state; static void (*bt_print)(const char *fmt, ...) PRINTF_FMT(1,2); static void (*bt_exit)(void); diff --git a/common/daemon.h b/common/daemon.h index 0fcfbf554..c3ae09915 100644 --- a/common/daemon.h +++ b/common/daemon.h @@ -10,4 +10,6 @@ void daemon_setup(const char *argv0, /* Shutdown for a valgrind-clean exit (frees everything) */ void daemon_shutdown(void); +struct backtrace_state *backtrace_state; + #endif /* LIGHTNING_COMMON_DAEMON_H */ diff --git a/common/memleak.c b/common/memleak.c index e7d6905b3..74ba0b0db 100644 --- a/common/memleak.c +++ b/common/memleak.c @@ -2,10 +2,10 @@ #include #include #include +#include #include #if DEVELOPER -static struct backtrace_state *backtrace_state; static const void **notleaks; static bool *notleak_children; @@ -226,10 +226,9 @@ static void add_backtrace(tal_t *parent UNUSED, enum tal_notify_type type UNNEED tal_add_notifier(child, TAL_NOTIFY_ADD_CHILD, add_backtrace); } -void memleak_init(const tal_t *root, struct backtrace_state *bstate) +void memleak_init(const tal_t *root) { assert(!notleaks); - backtrace_state = bstate; notleaks = tal_arr(NULL, const void *, 0); notleak_children = tal_arr(notleaks, bool, 0); diff --git a/common/memleak.h b/common/memleak.h index b7c70dce3..70994ff87 100644 --- a/common/memleak.h +++ b/common/memleak.h @@ -21,10 +21,9 @@ void *notleak_(const void *ptr, bool plus_children); struct htable; -struct backtrace_state; /* Initialize memleak detection, with this as the root */ -void memleak_init(const tal_t *root, struct backtrace_state *bstate); +void memleak_init(const tal_t *root); /* Free memleak detection. */ void memleak_cleanup(void); diff --git a/lightningd/lightningd.c b/lightningd/lightningd.c index b0016359e..00fabbc22 100644 --- a/lightningd/lightningd.c +++ b/lightningd/lightningd.c @@ -41,8 +41,6 @@ char *bitcoin_datadir; -struct backtrace_state *backtrace_state; - int pid_fd; static struct lightningd *new_lightningd(const tal_t *ctx) @@ -56,7 +54,7 @@ static struct lightningd *new_lightningd(const tal_t *ctx) ld->dev_allow_localhost = false; if (getenv("LIGHTNINGD_DEV_MEMLEAK")) - memleak_init(ld, backtrace_state); + memleak_init(ld); #endif list_head_init(&ld->peers); diff --git a/lightningd/lightningd.h b/lightningd/lightningd.h index d63adcbfa..9b57c035e 100644 --- a/lightningd/lightningd.h +++ b/lightningd/lightningd.h @@ -204,9 +204,6 @@ struct lightningd { const struct chainparams *get_chainparams(const struct lightningd *ld); -/* State for performing backtraces. */ -struct backtrace_state *backtrace_state; - /* Check we can run subdaemons, and check their versions */ void test_daemons(const struct lightningd *ld); diff --git a/lightningd/memdump.c b/lightningd/memdump.c index 1e3b72810..e26dc1905 100644 --- a/lightningd/memdump.c +++ b/lightningd/memdump.c @@ -3,6 +3,7 @@ #if DEVELOPER #include #include +#include #include #include #include