[gnome-calendar] debug: add debug macros
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] debug: add debug macros
- Date: Fri, 17 Mar 2017 13:21:58 +0000 (UTC)
commit 7b05abea900c0854ddf86f1f3542961e59625465
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Thu Mar 16 22:24:19 2017 -0300
debug: add debug macros
configure.ac | 16 ++++++++
src/Makefile.am | 1 +
src/gcal-debug.h.in | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 116 insertions(+), 0 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 64bad34..114d42c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,6 +68,20 @@ AC_CHECK_FUNCS([strstr])
GLIB_GSETTINGS
+dnl ***********************************************************************
+dnl Setup Tracing Support
+dnl ***********************************************************************
+AC_ARG_ENABLE(tracing,
+ AS_HELP_STRING([--enable-tracing=@<:@no/yes@:>@],
+ [add extra debugging information @<:@default=no@:>@]),
+ ,
+ enable_tracing=no)
+AS_IF([test "x$enable_tracing" = "xyes"],[enable_debug=yes ENABLE_TRACING=1],[ENABLE_TRACING=0])
+AC_SUBST(ENABLE_TRACING)
+
+BUGREPORT_URL=builder_bugreport_url
+AC_SUBST(BUGREPORT_URL)
+
dnl ================================================================
dnl Misc
dnl ================================================================
@@ -103,6 +117,7 @@ APPSTREAM_XML
AC_CONFIG_FILES([
Makefile
src/Makefile
+ src/gcal-debug.h
data/Makefile
data/org.gnome.Calendar.desktop.in
data/org.gnome.Calendar.search-provider.ini.in
@@ -124,6 +139,7 @@ echo "
flags: ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
flags: ${WARN_CFLAGS} ${WARN_LDFLAGS}
flags: ${CALENDAR_CFLAGS} ${CALENDAR_LIBS} ${LIBS}
+ tracing: ${enable_tracing}
Now type 'make' to build $PACKAGE
"
diff --git a/src/Makefile.am b/src/Makefile.am
index 4a0dd31..270e703 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -50,6 +50,7 @@ gnome_calendar_SOURCES = \
gcal-date-chooser.h \
gcal-date-selector.c \
gcal-date-selector.h \
+ gcal-debug.h \
gcal-edit-dialog.c \
gcal-edit-dialog.h \
gcal-event.c \
diff --git a/src/gcal-debug.h.in b/src/gcal-debug.h.in
new file mode 100644
index 0000000..bc2d1eb
--- /dev/null
+++ b/src/gcal-debug.h.in
@@ -0,0 +1,99 @@
+/* gcal-debug.h.in
+ *
+ * Copyright (C) 2017 Georges Basile Stavracas Neto <georges stavracas gmail com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef GCAL_DEBUG_H
+#define GCAL_DEBUG_H
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+#ifndef GCAL_ENABLE_TRACE
+# define GCAL_ENABLE_TRACE @ENABLE_TRACING@
+#endif
+#if GCAL_ENABLE_TRACE != 1
+# undef GCAL_ENABLE_TRACE
+#endif
+
+/**
+ * GCAL_LOG_LEVEL_TRACE: (skip)
+ */
+#ifndef GCAL_LOG_LEVEL_TRACE
+# define GCAL_LOG_LEVEL_TRACE ((GLogLevelFlags)(1 << G_LOG_LEVEL_USER_SHIFT))
+#endif
+
+#ifdef GCAL_ENABLE_TRACE
+# define GCAL_TRACE_MSG(fmt, ...) \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " MSG: %s():%d: " fmt, \
+ G_STRFUNC, __LINE__, ##__VA_ARGS__)
+# define GCAL_PROBE \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, "PROBE: %s():%d", \
+ G_STRFUNC, __LINE__)
+# define GCAL_TODO(_msg) \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " TODO: %s():%d: %s", \
+ G_STRFUNC, __LINE__, _msg)
+# define GCAL_ENTRY \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, "ENTRY: %s():%d", \
+ G_STRFUNC, __LINE__)
+# define GCAL_EXIT \
+ G_STMT_START { \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " EXIT: %s():%d", \
+ G_STRFUNC, __LINE__); \
+ return; \
+ } G_STMT_END
+# define GCAL_GOTO(_l) \
+ G_STMT_START { \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " GOTO: %s():%d ("#_l")",\
+ G_STRFUNC, __LINE__); \
+ goto _l; \
+ } G_STMT_END
+# define GCAL_RETURN(_r) \
+ G_STMT_START { \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " EXIT: %s():%d ", \
+ G_STRFUNC, __LINE__); \
+ return _r; \
+ } G_STMT_END
+#else
+# define GCAL_TODO(_msg)
+# define GCAL_PROBE
+# define GCAL_TRACE_MSG(fmt, ...)
+# define GCAL_ENTRY
+# define GCAL_GOTO(_l) goto _l
+# define GCAL_EXIT return
+# define GCAL_RETURN(_r) return _r
+#endif
+
+#define _GCAL_BUG(Component, Description, File, Line, Func, ...) \
+ G_STMT_START { \
+ g_printerr ("-----------------------------------------------------------------\n"); \
+ g_printerr ("You've found a bug in Calendar or one of its dependent libraries.\n"); \
+ g_printerr ("Please help us help you by filing a bug report at:\n"); \
+ g_printerr ("\n"); \
+ g_printerr ("@BUGREPORT_URL@&component=%s\n", Component); \
+ g_printerr ("\n"); \
+ g_printerr ("%s:%d in function %s()\n", File, Line, Func); \
+ g_printerr ("\n"); \
+ g_printerr (Description"\n", ##__VA_ARGS__); \
+ g_printerr ("-----------------------------------------------------------------\n"); \
+ } G_STMT_END
+#define GCAL_BUG(Component, Description, ...) \
+ _GCAL_BUG(Component, Description, __FILE__, __LINE__, G_STRFUNC, ##__VA_ARGS__)
+
+G_END_DECLS
+
+#endif /* GCAL_DEBUG_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]