X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/da9e3460f9f8e4eb2ad4c523a19a8ddb79807e60..f90395a377a73b811f6b3d75ff11a7d112dc3ebb:/src/mc/compare.cpp diff --git a/src/mc/compare.cpp b/src/mc/compare.cpp index c3a81f0a13..8e3e4a6c9b 100644 --- a/src/mc/compare.cpp +++ b/src/mc/compare.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2008-2016. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2008-2017. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -23,7 +23,6 @@ #include "src/internal_config.h" #include "src/xbt/mmalloc/mmprivate.h" -#include "src/xbt/ex_interface.h" #if HAVE_SMPI #include "src/smpi/private.h" @@ -592,7 +591,7 @@ int mmalloc_compare_heap( } if (i1 == state.heaplimit) - XBT_DEBUG("Number of blocks/fragments not found in heap1 : %d", nb_diff1); + XBT_DEBUG("Number of blocks/fragments not found in heap1: %d", nb_diff1); for (i=1; i < state.heaplimit; i++) { const malloc_info* heapinfo2 = (const malloc_info*) MC_region_read( @@ -621,7 +620,7 @@ int mmalloc_compare_heap( } if (i1 == state.heaplimit) - XBT_DEBUG("Number of blocks/fragments not found in heap2 : %d", nb_diff2); + XBT_DEBUG("Number of blocks/fragments not found in heap2: %d", nb_diff2); return nb_diff1 > 0 || nb_diff2 > 0; } @@ -715,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 @@ -934,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 */ @@ -975,7 +974,7 @@ static simgrid::mc::Type* get_offset_type(void *real_base_address, simgrid::mc:: return nullptr; default: - /* FIXME : other cases ? */ + /* FIXME: other cases ? */ return nullptr; } @@ -1483,7 +1482,7 @@ static int compare_areas_with_type(simgrid::mc::StateComparator& state, return -1; break; default: - XBT_VERB("Unknown case : %d", type->type); + XBT_VERB("Unknown case: %d", type->type); break; } @@ -1511,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; } @@ -1634,45 +1633,40 @@ int snapshot_compare(int num1, simgrid::mc::Snapshot* s1, int num2, simgrid::mc: if (_sg_mc_hash) { hash_result = (s1->hash != s2->hash); if (hash_result) { - XBT_VERB("(%d - %d) Different hash : 0x%" PRIx64 "--0x%" PRIx64, num1, - num2, s1->hash, s2->hash); + XBT_VERB("(%d - %d) Different hash: 0x%" PRIx64 "--0x%" PRIx64, num1, num2, s1->hash, s2->hash); #ifndef MC_DEBUG return 1; #endif } else - XBT_VERB("(%d - %d) Same hash : 0x%" PRIx64, num1, num2, s1->hash); + XBT_VERB("(%d - %d) Same hash: 0x%" PRIx64, num1, num2, s1->hash); } /* 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); + XBT_DEBUG("(%d - %d) Different size used in stacks: %zu - %zu", num1, num2, size_used1, size_used2); errors++; is_diff = 1; #else #ifdef MC_VERBOSE - XBT_VERB("(%d - %d) Different size used in stacks : %zu - %zu", num1, - num2, size_used1, size_used2); + XBT_VERB("(%d - %d) Different size used in stacks: %zu - %zu", num1, num2, size_used1, size_used2); #endif 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( @@ -1700,15 +1694,10 @@ int snapshot_compare(int num1, simgrid::mc::Snapshot* s1, int num2, simgrid::mc: } /* Stacks comparison */ - unsigned cursor = 0; int diff_local = 0; -#ifdef MC_DEBUG - is_diff = 0; -#endif - mc_snapshot_stack_t stack1, stack2; - while (cursor < s1->stacks.size()) { - stack1 = &s1->stacks[cursor]; - stack2 = &s2->stacks[cursor]; + 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]; if (stack1->process_index != stack2->process_index) { diff_local = 1; @@ -1733,7 +1722,6 @@ int snapshot_compare(int num1, simgrid::mc::Snapshot* s1, int num2, simgrid::mc: return 1; #endif } - cursor++; } size_t regions_count = s1->snapshot_regions.size(); @@ -1787,7 +1775,6 @@ int snapshot_compare(int num1, simgrid::mc::Snapshot* s1, int num2, simgrid::mc: #ifdef MC_VERBOSE XBT_VERB("(%d - %d) Different heap (mmalloc_compare)", num1, num2); #endif - return 1; #endif }