+ for(ret = unw_init_local(&c, (unw_context_t *)stack_context); ret >= 0; ret = unw_step(&c)){
+ mc_stack_frame_t stack_frame = xbt_new(s_mc_stack_frame_t, 1);
+ xbt_dynar_push(result, &stack_frame);
+
+ stack_frame->unw_cursor = c;
+
+ unw_get_reg(&c, UNW_REG_IP, &stack_frame->ip);
+ unw_get_reg(&c, UNW_REG_SP, &stack_frame->sp);
+
+ unw_word_t off;
+ unw_get_proc_name(&c, frame_name, sizeof (frame_name), &off);
+ stack_frame->frame_name = xbt_strdup(frame_name);
+
+ dw_frame_t frame;
+ if((long)stack_frame->ip > (long) mc_libsimgrid_info->start_exec)
+ frame = xbt_dict_get_or_null(mc_libsimgrid_info->local_variables, frame_name);
+ else
+ frame = xbt_dict_get_or_null(mc_binary_info->local_variables, frame_name);
+ stack_frame->frame = frame;