From 58b796608f3aca60f0abb21e2f96aa55ecb18ab3 Mon Sep 17 00:00:00 2001 From: nicm Date: Sun, 9 Jul 2017 22:33:09 +0000 Subject: [PATCH] Some extra logging to show why tmux might exit. --- cmd-kill-session.c | 4 ++-- server-fn.c | 4 ++-- server.c | 3 ++- session.c | 8 ++++---- tmux.h | 2 +- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/cmd-kill-session.c b/cmd-kill-session.c index 87ab8a0a..00ea7789 100644 --- a/cmd-kill-session.c +++ b/cmd-kill-session.c @@ -61,12 +61,12 @@ cmd_kill_session_exec(struct cmd *self, struct cmdq_item *item) RB_FOREACH_SAFE(sloop, sessions, &sessions, stmp) { if (sloop != s) { server_destroy_session(sloop); - session_destroy(sloop); + session_destroy(sloop, __func__); } } } else { server_destroy_session(s); - session_destroy(s); + session_destroy(s, __func__); } return (CMD_RETURN_NORMAL); } diff --git a/server-fn.c b/server-fn.c index b1e52aa8..ccec1b4a 100644 --- a/server-fn.c +++ b/server-fn.c @@ -333,7 +333,7 @@ server_destroy_session_group(struct session *s) else { TAILQ_FOREACH_SAFE(s, &sg->sessions, gentry, s1) { server_destroy_session(s); - session_destroy(s); + session_destroy(s, __func__); } } } @@ -399,7 +399,7 @@ server_check_unattached(void) if (!(s->flags & SESSION_UNATTACHED)) continue; if (options_get_number (s->options, "destroy-unattached")) - session_destroy(s); + session_destroy(s, __func__); } } diff --git a/server.c b/server.c index 294d2848..323ea37e 100644 --- a/server.c +++ b/server.c @@ -249,7 +249,7 @@ server_send_exit(void) } RB_FOREACH_SAFE(s, sessions, &sessions, s1) - session_destroy(s); + session_destroy(s, __func__); } /* Update socket execute permissions based on whether sessions are attached. */ @@ -347,6 +347,7 @@ server_signal(int sig) { int fd; + log_debug("%s: %s", __func__, strsignal(sig)); switch (sig) { case SIGTERM: server_exit = 1; diff --git a/session.c b/session.c index 9fa76dc3..a675ae3d 100644 --- a/session.c +++ b/session.c @@ -178,7 +178,7 @@ session_create(const char *prefix, const char *name, int argc, char **argv, if (argc >= 0) { wl = session_new(s, NULL, argc, argv, path, cwd, idx, cause); if (wl == NULL) { - session_destroy(s); + session_destroy(s, __func__); return (NULL); } session_select(s, RB_ROOT(&s->windows)->idx); @@ -229,11 +229,11 @@ session_free(__unused int fd, __unused short events, void *arg) /* Destroy a session. */ void -session_destroy(struct session *s) +session_destroy(struct session *s, const char *from) { struct winlink *wl; - log_debug("session %s destroyed", s->name); + log_debug("session %s destroyed (%s)", s->name, from); s->curw = NULL; RB_REMOVE(sessions, &sessions, s); @@ -419,7 +419,7 @@ session_detach(struct session *s, struct winlink *wl) session_group_synchronize_from(s); if (RB_EMPTY(&s->windows)) { - session_destroy(s); + session_destroy(s, __func__); return (1); } return (0); diff --git a/tmux.h b/tmux.h index 1b515f58..ce666230 100644 --- a/tmux.h +++ b/tmux.h @@ -2295,7 +2295,7 @@ struct session *session_find_by_id(u_int); struct session *session_create(const char *, const char *, int, char **, const char *, const char *, struct environ *, struct termios *, int, u_int, u_int, char **); -void session_destroy(struct session *); +void session_destroy(struct session *, const char *); void session_add_ref(struct session *, const char *); void session_remove_ref(struct session *, const char *); int session_check_name(const char *);