Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Output cleanups for when the exception arises in a separate thread
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 12 Dec 2007 20:27:23 +0000 (20:27 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 12 Dec 2007 20:27:23 +0000 (20:27 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@5121 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/xbt/ex.c

index 58046be..c331605 100644 (file)
@@ -297,18 +297,17 @@ void xbt_ex_setup_backtrace(xbt_ex_t *e)  {
     free(addrs[i]);
      
     /* Mask the bottom of the stack */    
     free(addrs[i]);
      
     /* Mask the bottom of the stack */    
-    if (!strncmp("main",line_func,strlen("main"))) {
-       int j;
-       for (j=i+1; j<e->used; j++)
-        free(addrs[j]);
-       e->used = i+1;
-    }
-     
-    if (!strncmp("__context_wrapper",line_func,strlen("__context_wrapper"))) {
+    if (!strncmp("main",line_func,strlen("main")) ||
+       !strncmp("xbt_thread_context_wrapper",line_func,strlen("xbt_thread_context_wrapper"))) {
        int j;
        for (j=i+1; j<e->used; j++)
         free(addrs[j]);
        e->used = i;
        int j;
        for (j=i+1; j<e->used; j++)
         free(addrs[j]);
        e->used = i;
+
+       if (!strncmp("xbt_thread_context_wrapper",line_func,strlen("xbt_thread_context_wrapper"))) {
+         e->used++;
+         e->bt_strings[i] = bprintf("**   (in a separate thread)");
+       }       
     }
      
     
     }