+#if defined(HAVE_SIGNAL) && defined(HAVE_SIGNAL_H)
+static void gras_sigusr_handler(int sig)
+{
+ INFO0("SIGUSR1 received. Display the backtrace");
+ xbt_backtrace_display_current();
+}
+
+static void gras_sigint_handler(int sig)
+{
+ static double lastone = 0;
+ if (lastone == 0 || xbt_os_time() - lastone > 5) {
+ if (gras_if_RL())
+ xbt_backtrace_display_current();
+ else
+ SIMIX_display_process_status();
+ fprintf(stderr,
+ "\nBacktrace displayed because Ctrl-C was pressed. Press again (within 5 sec) to abort the process.\n");
+ lastone = xbt_os_time();
+ } else {
+ exit(1);
+ }
+}
+#endif
+
+XBT_LOG_EXTERNAL_CATEGORY(gras_ddt);
+XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_cbps);
+XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_convert);
+XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_create);
+XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_exchange);
+XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_lexer);
+XBT_LOG_EXTERNAL_CATEGORY(gras_ddt_parse);
+XBT_LOG_EXTERNAL_CATEGORY(gras_modules);
+XBT_LOG_EXTERNAL_CATEGORY(gras_msg);
+XBT_LOG_EXTERNAL_CATEGORY(gras_msg_read);
+XBT_LOG_EXTERNAL_CATEGORY(gras_msg_rpc);
+XBT_LOG_EXTERNAL_CATEGORY(gras_timer);
+XBT_LOG_EXTERNAL_CATEGORY(gras_trp);
+XBT_LOG_EXTERNAL_CATEGORY(gras_trp_meas);
+XBT_LOG_EXTERNAL_CATEGORY(gras_virtu);
+XBT_LOG_EXTERNAL_CATEGORY(gras_virtu_emul);
+XBT_LOG_EXTERNAL_CATEGORY(gras_virtu_process);