From c3be7dc6fa5ad6632e6f638ed704340cb86ae2aa Mon Sep 17 00:00:00 2001 From: mquinson Date: Tue, 4 Jul 2006 13:35:50 +0000 Subject: [PATCH] When a GRAS process receives the SIGUSR1 signal, it displays its current backtrace. Another neat stuff for debugging git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2470 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/gras/gras.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/gras/gras.c b/src/gras/gras.c index 35b79801e1..576f2d70a1 100644 --- a/src/gras/gras.c +++ b/src/gras/gras.c @@ -17,11 +17,18 @@ #include "gras.h" #include "gras/process.h" /* FIXME: killme and put process_init in modinter */ -#include "portable.h" /* hexa_*() */ +#include "portable.h" /* hexa_*(); signalling stuff */ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(gras,XBT_LOG_ROOT_CAT,"All GRAS categories (cf. section \ref GRAS_API)"); static int gras_running_process = 0; +#if defined(HAVE_SIGNAL) && defined(HAVE_SIGNAL_H) +static void gras_sigusr_handler(int sig) { + INFO0("SIGUSR1 received. Display the backtrace"); + xbt_backtrace_display(); +} +#endif + void gras_init(int *argc,char **argv) { VERB0("Initialize GRAS"); @@ -50,6 +57,9 @@ void gras_init(int *argc,char **argv) { gras_msg_init(); gras_trp_init(); gras_datadesc_init(); +#if defined(HAVE_SIGNAL) && defined(HAVE_SIGNAL_H) + signal(SIGUSR1,gras_sigusr_handler); +#endif } } -- 2.20.1