summaryrefslogtreecommitdiff
path: root/lib/ephy-debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ephy-debug.c')
-rw-r--r--lib/ephy-debug.c268
1 files changed, 123 insertions, 145 deletions
diff --git a/lib/ephy-debug.c b/lib/ephy-debug.c
index 6a6997d7d..43ffc9004 100644
--- a/lib/ephy-debug.c
+++ b/lib/ephy-debug.c
@@ -48,24 +48,22 @@ static gboolean ephy_profile_all_modules;
static char **
build_modules (const char *name,
- gboolean* is_all)
+ gboolean *is_all)
{
- const char *env;
+ const char *env;
- *is_all = FALSE;
+ *is_all = FALSE;
- env = g_getenv (name);
- if (env == NULL) return NULL;
+ env = g_getenv (name);
+ if (env == NULL) return NULL;
- if (strcmp (env, "all") == 0)
- {
- *is_all = TRUE;
- return NULL;
- }
+ if (strcmp (env, "all") == 0) {
+ *is_all = TRUE;
+ return NULL;
+ }
- return g_strsplit (g_getenv (name), ":", -1);
+ return g_strsplit (g_getenv (name), ":", -1);
}
-
#endif
#ifndef DISABLE_LOGGING
@@ -74,92 +72,77 @@ static char **ephy_log_modules;
static gboolean ephy_log_all_modules;
static void
-log_module (const gchar *log_domain,
- GLogLevelFlags log_level,
- const char *message,
- gpointer user_data)
+log_module (const gchar *log_domain,
+ GLogLevelFlags log_level,
+ const char *message,
+ gpointer user_data)
{
- gboolean should_log = ephy_log_all_modules;
-
- if (!ephy_log_all_modules && !ephy_log_modules) return;
-
- if (ephy_log_modules != NULL)
- {
- guint i;
-
- for (i = 0; ephy_log_modules[i] != NULL; i++)
- {
- if (strstr (message, ephy_log_modules [i]) != NULL)
- {
- should_log = TRUE;
- break;
- }
- }
- }
-
- if (should_log)
- {
- g_print ("%s\n", message);
- }
-}
+ gboolean should_log = ephy_log_all_modules;
+
+ if (!ephy_log_all_modules && !ephy_log_modules) return;
+
+ if (ephy_log_modules != NULL) {
+ guint i;
+
+ for (i = 0; ephy_log_modules[i] != NULL; i++) {
+ if (strstr (message, ephy_log_modules [i]) != NULL) {
+ should_log = TRUE;
+ break;
+ }
+ }
+ }
+ if (should_log) {
+ g_print ("%s\n", message);
+ }
+}
#endif /* !DISABLE_LOGGING */
#define MAX_DEPTH 200
-static void
-trap_handler (const char *log_domain,
- GLogLevelFlags log_level,
- const char *message,
- gpointer user_data)
+static void
+trap_handler (const char *log_domain,
+ GLogLevelFlags log_level,
+ const char *message,
+ gpointer user_data)
{
- g_log_default_handler (log_domain, log_level, message, user_data);
-
- if (ephy_debug_break != NULL &&
- (log_level & (G_LOG_LEVEL_WARNING |
- G_LOG_LEVEL_ERROR |
- G_LOG_LEVEL_CRITICAL |
- G_LOG_FLAG_FATAL)))
- {
- if (strcmp (ephy_debug_break, "suspend") == 0)
- {
- /* the suspend case is first because we wanna send the signal before
- * other threads have had a chance to get too far from the state that
- * caused this assertion (in case they happen to have been involved).
- */
- g_print ("Suspending program; attach with the debugger.\n");
-
- raise (SIGSTOP);
- }
- else if (strcmp (ephy_debug_break, "stack") == 0)
- {
+ g_log_default_handler (log_domain, log_level, message, user_data);
+
+ if (ephy_debug_break != NULL &&
+ (log_level & (G_LOG_LEVEL_WARNING |
+ G_LOG_LEVEL_ERROR |
+ G_LOG_LEVEL_CRITICAL |
+ G_LOG_FLAG_FATAL))) {
+ if (strcmp (ephy_debug_break, "suspend") == 0) {
+ /* the suspend case is first because we wanna send the signal before
+ * other threads have had a chance to get too far from the state that
+ * caused this assertion (in case they happen to have been involved).
+ */
+ g_print ("Suspending program; attach with the debugger.\n");
+
+ raise (SIGSTOP);
+ } else if (strcmp (ephy_debug_break, "stack") == 0) {
#ifdef HAVE_EXECINFO_H
- void *array[MAX_DEPTH];
- size_t size;
-
- size = backtrace (array, MAX_DEPTH);
- backtrace_symbols_fd (array, size, 2);
+ void *array[MAX_DEPTH];
+ size_t size;
+
+ size = backtrace (array, MAX_DEPTH);
+ backtrace_symbols_fd (array, size, 2);
#else
- g_on_error_stack_trace (g_get_prgname ());
+ g_on_error_stack_trace (g_get_prgname ());
#endif /* HAVE_EXECINFO_H */
- }
- else if (strcmp (ephy_debug_break, "trap") == 0)
- {
- /* FIXME: disable the handler for a moment so we
- * don't crash if we don't actually run under gdb
- */
- G_BREAKPOINT ();
- }
- else if (strcmp (ephy_debug_break, "warn") == 0)
- {
- /* default behaviour only */
- }
- else if (ephy_debug_break[0] != '\0')
- {
- g_print ("Unrecognised value of EPHY_DEBUG_BREAK env var: %s!\n",
- ephy_debug_break);
- }
- }
+ } else if (strcmp (ephy_debug_break, "trap") == 0) {
+ /* FIXME: disable the handler for a moment so we
+ * don't crash if we don't actually run under gdb
+ */
+ G_BREAKPOINT ();
+ } else if (strcmp (ephy_debug_break, "warn") == 0) {
+ /* default behaviour only */
+ } else if (ephy_debug_break[0] != '\0') {
+ g_print ("Unrecognised value of EPHY_DEBUG_BREAK env var: %s!\n",
+ ephy_debug_break);
+ }
+ }
}
/**
@@ -173,17 +156,16 @@ void
ephy_debug_init (void)
{
#ifndef DISABLE_LOGGING
- ephy_log_modules = build_modules ("EPHY_LOG_MODULES", &ephy_log_all_modules);
-
- g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, log_module, NULL);
+ ephy_log_modules = build_modules ("EPHY_LOG_MODULES", &ephy_log_all_modules);
+ g_log_set_handler (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, log_module, NULL);
#endif
- ephy_debug_break = g_getenv ("EPHY_DEBUG_BREAK");
- g_log_set_default_handler (trap_handler, NULL);
+ ephy_debug_break = g_getenv ("EPHY_DEBUG_BREAK");
+ g_log_set_default_handler (trap_handler, NULL);
#ifndef DISABLE_PROFILING
- ephy_profile_modules = build_modules ("EPHY_PROFILE_MODULES", &ephy_profile_all_modules);
+ ephy_profile_modules = build_modules ("EPHY_PROFILE_MODULES", &ephy_profile_all_modules);
#endif
}
@@ -192,65 +174,63 @@ ephy_debug_init (void)
static EphyProfiler *
ephy_profiler_new (const char *name, const char *module)
{
- EphyProfiler *profiler;
+ EphyProfiler *profiler;
- profiler = g_new0 (EphyProfiler, 1);
- profiler->timer = g_timer_new ();
- profiler->name = g_strdup (name);
- profiler->module = g_strdup (module);
+ profiler = g_new0 (EphyProfiler, 1);
+ profiler->timer = g_timer_new ();
+ profiler->name = g_strdup (name);
+ profiler->module = g_strdup (module);
- g_timer_start (profiler->timer);
+ g_timer_start (profiler->timer);
- return profiler;
+ return profiler;
}
static gboolean
ephy_should_profile (const char *module)
{
- char *slash;
- gboolean result = FALSE;
- guint i;
+ char *slash;
+ gboolean result = FALSE;
+ guint i;
- slash = strrchr (module, '/');
+ slash = strrchr (module, '/');
- /* Happens on builddir != srcdir builds */
- if (slash != NULL) module = slash + 1;
+ /* Happens on builddir != srcdir builds */
+ if (slash != NULL) module = slash + 1;
- for (i = 0; ephy_profile_modules[i] != NULL; i++)
- {
- if (strcmp (ephy_profile_modules[i], module) == 0)
- {
- result = TRUE;
- break;
- }
- }
+ for (i = 0; ephy_profile_modules[i] != NULL; i++) {
+ if (strcmp (ephy_profile_modules[i], module) == 0) {
+ result = TRUE;
+ break;
+ }
+ }
- return result;
+ return result;
}
static void
ephy_profiler_dump (EphyProfiler *profiler)
{
- double seconds;
+ double seconds;
- g_return_if_fail (profiler != NULL);
+ g_return_if_fail (profiler != NULL);
- seconds = g_timer_elapsed (profiler->timer, NULL);
+ seconds = g_timer_elapsed (profiler->timer, NULL);
- g_print ("[ %s ] %s %f s elapsed\n",
- profiler->module, profiler->name,
- seconds);
+ g_print ("[ %s ] %s %f s elapsed\n",
+ profiler->module, profiler->name,
+ seconds);
}
static void
ephy_profiler_free (EphyProfiler *profiler)
{
- g_return_if_fail (profiler != NULL);
+ g_return_if_fail (profiler != NULL);
- g_timer_destroy (profiler->timer);
- g_free (profiler->name);
- g_free (profiler->module);
- g_free (profiler);
+ g_timer_destroy (profiler->timer);
+ g_free (profiler->name);
+ g_free (profiler->module);
+ g_free (profiler);
}
/**
@@ -263,21 +243,20 @@ ephy_profiler_free (EphyProfiler *profiler)
void
ephy_profiler_start (const char *name, const char *module)
{
- EphyProfiler *profiler;
+ EphyProfiler *profiler;
- if (ephy_profilers_hash == NULL)
- {
- ephy_profilers_hash =
- g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, NULL);
- }
+ if (ephy_profilers_hash == NULL) {
+ ephy_profilers_hash =
+ g_hash_table_new_full (g_str_hash, g_str_equal,
+ g_free, NULL);
+ }
- if (!ephy_profile_all_modules &&
- (ephy_profile_modules == NULL || !ephy_should_profile (module))) return;
+ if (!ephy_profile_all_modules &&
+ (ephy_profile_modules == NULL || !ephy_should_profile (module))) return;
- profiler = ephy_profiler_new (name, module);
+ profiler = ephy_profiler_new (name, module);
- g_hash_table_insert (ephy_profilers_hash, g_strdup (name), profiler);
+ g_hash_table_insert (ephy_profilers_hash, g_strdup (name), profiler);
}
/**
@@ -289,14 +268,13 @@ ephy_profiler_start (const char *name, const char *module)
void
ephy_profiler_stop (const char *name)
{
- EphyProfiler *profiler;
+ EphyProfiler *profiler;
- profiler = g_hash_table_lookup (ephy_profilers_hash, name);
- if (profiler == NULL) return;
- g_hash_table_remove (ephy_profilers_hash, name);
+ profiler = g_hash_table_lookup (ephy_profilers_hash, name);
+ if (profiler == NULL) return;
+ g_hash_table_remove (ephy_profilers_hash, name);
- ephy_profiler_dump (profiler);
- ephy_profiler_free (profiler);
+ ephy_profiler_dump (profiler);
+ ephy_profiler_free (profiler);
}
-
#endif