X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Flttv%2Fmain.c;h=16c0126f621ee4f2e7212c1eeff40fb929f756b6;hb=8ff6243c8bafa3a9c7bddbea54b8e9884c0707ca;hp=a27519e8fe2c1791a912bc43742fe7bad34a8630;hpb=d8f124de0295aea546b6debf5945bfeea2bbeb2a;p=lttv.git diff --git a/ltt/branches/poly/lttv/lttv/main.c b/ltt/branches/poly/lttv/lttv/main.c index a27519e8..16c0126f 100644 --- a/ltt/branches/poly/lttv/lttv/main.c +++ b/ltt/branches/poly/lttv/lttv/main.c @@ -26,6 +26,7 @@ #include #include #include +#include /* The main program maintains a few central data structures and relies @@ -46,7 +47,8 @@ static char static gboolean a_verbose, - a_debug; + a_debug, + a_fatal; gboolean lttv_profile_memory; @@ -62,6 +64,8 @@ static void lttv_verbose(void *hook_data); static void lttv_debug(void *hook_data); +static void lttv_fatal(void *hook_data); + static void lttv_help(void *hook_data); /* This is the handler to specify when we dont need all the debugging @@ -144,9 +148,9 @@ int main(int argc, char **argv) { GError *error = NULL; LttvModule *module_module = lttv_module_require("module", &error); - if(error != NULL) g_error(error->message); + if(error != NULL) g_error("%s", error->message); LttvModule *module_option = lttv_module_require("option", &error); - if(error != NULL) g_error(error->message); + if(error != NULL) g_error("%s", error->message); /* Initialize the module loading */ @@ -173,6 +177,11 @@ int main(int argc, char **argv) { a_debug = FALSE; lttv_option_add("debug",'d', "print debugging messages", "none", LTTV_OPT_NONE, NULL, lttv_debug, NULL); + + a_fatal = FALSE; + lttv_option_add("fatal",'f', "make critical messages fatal", + "none", + LTTV_OPT_NONE, NULL, lttv_fatal, NULL); lttv_profile_memory = FALSE; lttv_option_add(profile_memory_long_option + 2, @@ -229,7 +238,7 @@ void lttv_module_option(void *hook_data) GError *error = NULL; lttv_module_require(a_module, &error); - if(error != NULL) g_error(error->message); + if(error != NULL) g_error("%s", error->message); } @@ -251,6 +260,13 @@ void lttv_debug(void *hook_data) g_info("Logging set to include DEBUG level messages"); } +void lttv_fatal(void *hook_data) +{ + //g_log_set_always_fatal(G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL); + g_log_set_always_fatal(G_LOG_LEVEL_CRITICAL); + g_info("Critical log from glib will abort execution"); +} + void lttv_help(void *hook_data) { printf("Linux Trace Toolkit Visualizer\n");