X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bb9c46e03a4e98cde63514bce0f018fb564f9171..e4da635c1d34e531383f328ec05295d44e028653:/src/xbt/ex.c diff --git a/src/xbt/ex.c b/src/xbt/ex.c index b29414db85..598fbf9318 100644 --- a/src/xbt/ex.c +++ b/src/xbt/ex.c @@ -147,12 +147,15 @@ void xbt_ex_setup_backtrace(xbt_ex_t *e) { DEBUG4("%#lx %s [%#lx-%#lx]", addr, found? "in":"out of",first,last); } - if (!found) - CRITICAL0("Problem while reading the maps file"); - fclose(maps); free(maps_name); + if (!found) { + WARN0("Problem while reading the maps file"); + e->bt_strings[i] = bprintf("** In ?? (%s)", backtrace[i]); + continue; + } + /* Ok, Found the offset of the maps line containing the searched symbol. We now need to substract this from the address we got from backtrace. */ @@ -451,9 +454,10 @@ static void bad_example(void) { /* end_of_bad_example */ } #endif - +typedef struct {char *first;} global_context_t; + static void good_example(void) { - struct {char*first;} *globalcontext; + global_context_t *global_context=malloc(sizeof(global_context_t)); xbt_ex_t ex; /* GOOD_EXAMPLE */ @@ -463,7 +467,7 @@ static void good_example(void) { char * volatile /*03*/ cp3 = NULL /*02*/; TRY { cp1 = mallocex(SMALLAMOUNT); - globalcontext->first = cp1; + global_context->first = cp1; cp1 = NULL /*05 give away*/; cp2 = mallocex(TOOBIG); cp3 = mallocex(SMALLAMOUNT);