From: "Gustavo F. Padovan" <gustavo@padovan.org>
To: linux-bluetooth@vger.kernel.org
Cc: gustavo@padovan.org
Subject: [PATCH 3/8] Fix regression with debug via SIGUSR2
Date: Tue, 8 Jun 2010 04:11:49 -0300 [thread overview]
Message-ID: <1275981114-18019-3-git-send-email-gustavo@padovan.org> (raw)
In-Reply-To: <1275981114-18019-2-git-send-email-gustavo@padovan.org>
The new dynamic debug feature was not using the SIGUSR2 signal so this was
causing bluetoothd to crash when one tries to toggle debug via SIGUSR2.
This patch brings back such compatibility andadds debug_string and
debug_enabled vars.
---
src/log.c | 17 +++++++++++++++--
src/log.h | 6 +++++-
src/main.c | 8 ++++++++
3 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/src/log.c b/src/log.c
index cb02aad..1bc0a42 100644
--- a/src/log.c
+++ b/src/log.c
@@ -71,6 +71,8 @@ extern struct btd_debug_desc __stop___debug[];
static gchar **enabled = NULL;
+int debug_enabled = FALSE;
+
static gboolean is_enabled(struct btd_debug_desc *desc)
{
int i;
@@ -90,14 +92,25 @@ static gboolean is_enabled(struct btd_debug_desc *desc)
return 0;
}
+void __btd_toggle_debug()
+{
+ debug_enabled = !debug_enabled;
+}
+
void __btd_log_init(const char *debug, int detach)
{
int option = LOG_NDELAY | LOG_PID;
struct btd_debug_desc *desc;
const char *name = NULL, *file = NULL;
- if (debug != NULL)
- enabled = g_strsplit_set(debug, ":, ", 0);
+ if (debug != NULL) {
+ debug_enabled = TRUE;
+ } else {
+ debug = g_strdup("*");
+ debug_enabled = FALSE;
+ }
+
+ enabled = g_strsplit_set(debug, ":, ", 0);
for (desc = __start___debug; desc < __stop___debug; desc++) {
if (file != NULL || name != NULL) {
diff --git a/src/log.h b/src/log.h
index f78ecac..0afd739 100644
--- a/src/log.h
+++ b/src/log.h
@@ -27,6 +27,9 @@ void debug(const char *format, ...) __attribute__((format(printf, 1, 2)));
void __btd_log_init(const char *debug, int detach);
void __btd_log_cleanup(void);
+void __btd_toggle_debug();
+
+extern int debug_enabled;
struct btd_debug_desc {
const char *name;
@@ -49,7 +52,8 @@ struct btd_debug_desc {
__attribute__((used, section("__debug"), aligned(8))) = { \
.file = __FILE__, .flags = BTD_DEBUG_FLAG_DEFAULT, \
}; \
- if (__btd_debug_desc.flags & BTD_DEBUG_FLAG_PRINT) \
+ if (debug_enabled && \
+ __btd_debug_desc.flags & BTD_DEBUG_FLAG_PRINT) \
debug("%s:%s() " fmt, \
__FILE__, __FUNCTION__ , ## arg); \
} while (0)
diff --git a/src/main.c b/src/main.c
index 3118a34..ba18523 100644
--- a/src/main.c
+++ b/src/main.c
@@ -288,6 +288,11 @@ static void sig_term(int sig)
g_main_loop_quit(event_loop);
}
+static void sig_debug(int sig)
+{
+ __btd_toggle_debug();
+}
+
static gchar *option_debug = NULL;
static gboolean option_detach = TRUE;
static gboolean option_udev = FALSE;
@@ -406,6 +411,9 @@ int main(int argc, char *argv[])
sigaction(SIGTERM, &sa, NULL);
sigaction(SIGINT, &sa, NULL);
+ sa.sa_handler = sig_debug;
+ sigaction(SIGUSR2, &sa, NULL);
+
sa.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &sa, NULL);
--
1.7.1
next prev parent reply other threads:[~2010-06-08 7:11 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-08 7:11 [PATCH 1/8] Remove ifndef barrier from log.h and btio.h Gustavo F. Padovan
2010-06-08 7:11 ` [PATCH 2/8] log: Remove vinfo function Gustavo F. Padovan
2010-06-08 7:11 ` Gustavo F. Padovan [this message]
2010-06-08 7:11 ` [PATCH 4/8] Add Debug property to Manager interface Gustavo F. Padovan
2010-06-08 7:11 ` [PATCH 5/8] Add SetProperty method and Debug read/write property Gustavo F. Padovan
2010-06-08 7:11 ` [PATCH 6/8] log: Add function to get/set debug_string Gustavo F. Padovan
2010-06-08 7:11 ` [PATCH 7/8] Add DebugString Property to Manager Gustavo F. Padovan
2010-06-08 7:11 ` [PATCH 8/8] Document the new Debug and DebugString property Gustavo F. Padovan
2010-06-08 8:05 ` [PATCH 3/8] Fix regression with debug via SIGUSR2 Johan Hedberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1275981114-18019-3-git-send-email-gustavo@padovan.org \
--to=gustavo@padovan.org \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).