From b2817bfac5499e77066817f83cccd0e206b6d20f Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 30 Jul 2015 19:05:12 +0200 Subject: make it easier to get errors out of GTK + Glib --- gtk2_ardour/main.cc | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc index f43d1bd4f4..441b2dc929 100644 --- a/gtk2_ardour/main.cc +++ b/gtk2_ardour/main.cc @@ -99,6 +99,28 @@ gui_jack_error () win.run (); } +#ifndef NDEBUG +static void ardour_g_log (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data) { + switch (log_level) { + case G_LOG_FLAG_FATAL: + case G_LOG_LEVEL_CRITICAL: + fatal << "g_log: " << message << endmsg; + break; + case G_LOG_LEVEL_ERROR: + error << "g_log: " << message << endmsg; + break; + case G_LOG_LEVEL_WARNING: + warning << "g_log: " << message << endmsg; + break; + case G_LOG_LEVEL_MESSAGE: + case G_LOG_LEVEL_INFO: + default: + info << "g_log: " << message << endmsg; + break; + } +} +#endif + static gboolean tell_about_backend_death (void* /* ignored */) { @@ -359,6 +381,12 @@ int main (int argc, char *argv[]) exit (1); } +#ifndef NDEBUG + g_log_set_handler (NULL, + GLogLevelFlags (G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL | G_LOG_LEVEL_CRITICAL | G_LOG_FLAG_RECURSION), + &ardour_g_log, NULL); +#endif + ui->run (text_receiver); Gtkmm2ext::Application::instance()->cleanup(); delete ui; -- cgit v1.2.3