+
+#ifdef HAVE_MC
+
+int xbt_libunwind_backtrace(void* bt[XBT_BACKTRACE_SIZE], int size){
+
+ int i = 0;
+ for(i=0; i < size; i++)
+ bt[i] = NULL;
+
+ i=0;
+
+ unw_cursor_t c;
+ unw_context_t uc;
+
+ unw_getcontext (&uc);
+ unw_init_local (&c, &uc);
+
+ unw_word_t ip;
+
+ unw_step(&c);
+
+ while(unw_step(&c) >= 0 && i < size){
+
+ unw_get_reg(&c, UNW_REG_IP, &ip);
+ bt[i] = (void*)(long)ip;
+ i++;
+
+ }
+
+ return i;
+
+}
+
+#endif