-
-static void mc_hash_stack(mc_hash_t * hash, mc_snapshot_stack_t stack,
- mc_hashing_state * state)
-{
-
- unsigned cursor = 0;
- mc_stack_frame_t stack_frame;
-
- xbt_dynar_foreach(stack->stack_frames, cursor, stack_frame) {
-
- MC_HASH(*hash, stack_frame->ip);
-
- mc_object_info_t info;
- if (stack_frame->ip >= (unw_word_t) libsimgrid_info->start_exec
- && stack_frame->ip < (unw_word_t) libsimgrid_info->end_exec)
- info = libsimgrid_info;
- else if (stack_frame->ip >= (unw_word_t) binary_info->start_exec
- && stack_frame->ip < (unw_word_t) binary_info->end_exec)
- info = binary_info;
- else
- continue;
-
- mc_hash_stack_frame(hash, info, &(stack_frame->unw_cursor),
- stack_frame->frame, (void *) stack_frame->frame_base,
- state);
-
- }
-}
-
-static void mc_hash_stacks(mc_hash_t * hash, mc_hashing_state * state,
- xbt_dynar_t stacks)
-{
- unsigned int cursor = 0;
- mc_snapshot_stack_t current_stack;
-
- MC_HASH(*hash, xbt_dynar_length(stacks_areas));
-
- int i = 0;
- xbt_dynar_foreach(stacks, cursor, current_stack) {
- XBT_DEBUG("Stack %i", i);
- mc_hash_stack(hash, current_stack, state);
- ++i;
- }
-}
-#endif
-
-uint64_t mc_hash_processes_state(int num_state, xbt_dynar_t stacks)
-{
- XBT_DEBUG("START hash %i", num_state);
-
-#if 0
- mc_hashing_state state;
- mc_hash_state_init(&state);
-#endif
-
- mc_hash_t hash = MC_HASH_INIT;
-
- MC_HASH(hash, xbt_swag_size(simix_global->process_list)); // process count
-#if 0
- // mc_hash_object_globals(&hash, &state, binary_info);
- // mc_hash_object_globals(&hash, &state, libsimgrid_info);
- // mc_hash_stacks(&hash, &state, stacks);
- mc_hash_state_destroy(&state);
-#endif
-
- XBT_DEBUG("END hash %i", num_state);
- return hash;
-}
-