X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1acdb6e20d63bf8987e6fbcf65e40949831a206d..f90395a377a73b811f6b3d75ff11a7d112dc3ebb:/src/mc/compare.cpp diff --git a/src/mc/compare.cpp b/src/mc/compare.cpp index 404b384591..8e3e4a6c9b 100644 --- a/src/mc/compare.cpp +++ b/src/mc/compare.cpp @@ -714,7 +714,7 @@ static int compare_heap_area_without_type( * @param snapshot1 Snapshot of state 1 * @param snapshot2 Snapshot of state 2 * @param previous - * @param type_id + * @param type * @param area_size either a byte_size or an elements_count (?) * @param check_ignore * @param pointer_level @@ -933,7 +933,7 @@ top: * * TODO, handle subfields ((*p).bar.foo, (*p)[5].bar…) * - * @param type_id DWARF type ID of the root address + * @param type DWARF type ID of the root address * @param area_size * @return DWARF type ID for given offset */ @@ -1510,12 +1510,12 @@ static int compare_global_variables( // Compare the global variables separately for each simulates process: for (size_t process_index = 0; process_index < process_count; process_index++) { - int is_diff = compare_global_variables(state, - object_info, process_index, - &r1->privatized_data()[process_index], - &r2->privatized_data()[process_index], - snapshot1, snapshot2); - if (is_diff) return 1; + if (compare_global_variables(state, + object_info, process_index, + &r1->privatized_data()[process_index], + &r2->privatized_data()[process_index], + snapshot1, snapshot2)) + return 1; } return 0; } @@ -1643,18 +1643,15 @@ int snapshot_compare(int num1, simgrid::mc::Snapshot* s1, int num2, simgrid::mc: /* Compare enabled processes */ if (s1->enabled_processes != s2->enabled_processes) { - XBT_VERB("(%d - %d) Different enabled processes", num1, num2); - // return 1; ?? + XBT_VERB("(%d - %d) Different amount of enabled processes", num1, num2); + return 1; } - unsigned long i = 0; - size_t size_used1, size_used2; - int is_diff = 0; - /* Compare size of stacks */ - while (i < s1->stacks.size()) { - size_used1 = s1->stack_sizes[i]; - size_used2 = s2->stack_sizes[i]; + int is_diff = 0; + for (unsigned long i = 0; i < s1->stacks.size(); i++) { + size_t size_used1 = s1->stack_sizes[i]; + size_t size_used2 = s2->stack_sizes[i]; if (size_used1 != size_used2) { #ifdef MC_DEBUG XBT_DEBUG("(%d - %d) Different size used in stacks: %zu - %zu", num1, num2, size_used1, size_used2); @@ -1667,8 +1664,9 @@ int snapshot_compare(int num1, simgrid::mc::Snapshot* s1, int num2, simgrid::mc: return 1; #endif } - i++; } + if (is_diff) // do not proceed if there is any stacks that don't match + return 1; /* Init heap information used in heap comparison algorithm */ xbt_mheap_t heap1 = (xbt_mheap_t)s1->read_bytes( @@ -1697,9 +1695,6 @@ int snapshot_compare(int num1, simgrid::mc::Snapshot* s1, int num2, simgrid::mc: /* Stacks comparison */ int diff_local = 0; -#ifdef MC_DEBUG - is_diff = 0; -#endif for (unsigned int cursor = 0; cursor < s1->stacks.size(); cursor++) { mc_snapshot_stack_t stack1 = &s1->stacks[cursor]; mc_snapshot_stack_t stack2 = &s2->stacks[cursor];