X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/32f4ca6248c287dbd1e5f0ef88e82370a3a72ecf..79affec61e2c9af35fc9d5c5f34c977dde041283:/src/mc/compare.cpp diff --git a/src/mc/compare.cpp b/src/mc/compare.cpp index e8457a3c12..f5c1a62c74 100644 --- a/src/mc/compare.cpp +++ b/src/mc/compare.cpp @@ -3,7 +3,7 @@ /* 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. */ -/** \file compare.cpp Memory snapshooting and comparison */ +/** \file compare.cpp Memory snapshotting and comparison */ #include "src/mc/mc_config.hpp" #include "src/mc/mc_private.hpp" @@ -26,7 +26,7 @@ public: int fragment_ = 0; HeapLocation() = default; - HeapLocation(int block, int fragment = 0) : block_(block), fragment_(fragment) {} + explicit HeapLocation(int block, int fragment = 0) : block_(block), fragment_(fragment) {} bool operator==(HeapLocation const& that) const { @@ -254,10 +254,7 @@ static bool mmalloc_heap_differ(simgrid::mc::StateComparator& state, const simgr continue; } - if (heapinfo1->type < 0) { - fprintf(stderr, "Unkown mmalloc block type.\n"); - abort(); - } + xbt_assert(heapinfo1->type >= 0, "Unkown mmalloc block type: %d", heapinfo1->type); void* addr_block1 = ((void*)(((ADDR2UINT(i1)) - 1) * BLOCKSIZE + (char*)state.std_heap_copy.heapbase)); @@ -371,10 +368,7 @@ static bool mmalloc_heap_differ(simgrid::mc::StateComparator& state, const simgr continue; } - if (heapinfo2b->type < 0) { - fprintf(stderr, "Unknown mmalloc block type.\n"); - abort(); - } + xbt_assert(heapinfo2b->type >= 0, "Unkown mmalloc block type: %d", heapinfo2b->type); for (size_t j2 = 0; j2 < (size_t)(BLOCKSIZE >> heapinfo2b->type); j2++) { @@ -480,7 +474,6 @@ static bool heap_area_differ_without_type(simgrid::mc::StateComparator& state, c ssize_t ignore2 = heap_comparison_ignore_size(state.processStates[1].to_ignore, (const char*)real_area2 + i); if (ignore2 == ignore1) { if (ignore1 == 0) { - check_ignore--; return false; } else { i = i + ignore2; @@ -495,8 +488,8 @@ static bool heap_area_differ_without_type(simgrid::mc::StateComparator& state, c 1) != 0) { int pointer_align = (i / sizeof(void *)) * sizeof(void *); - const void* addr_pointed1 = snapshot1.read(remote((void**)((const char*)real_area1 + pointer_align))); - const void* addr_pointed2 = snapshot2.read(remote((void**)((const char*)real_area2 + pointer_align))); + const void* addr_pointed1 = snapshot1.read(remote((void* const*)((const char*)real_area1 + pointer_align))); + const void* addr_pointed2 = snapshot2.read(remote((void* const*)((const char*)real_area2 + pointer_align))); if (process.in_maestro_stack(remote(addr_pointed1)) && process.in_maestro_stack(remote(addr_pointed2))) { i = pointer_align + sizeof(void *); @@ -539,7 +532,7 @@ static bool heap_area_differ_with_type(simgrid::mc::StateComparator& state, cons const simgrid::mc::Snapshot& snapshot2, HeapLocationPairs* previous, simgrid::mc::Type* type, int area_size, int check_ignore, int pointer_level) { - // HACK: This should not happen but in pratice, there are some + // HACK: This should not happen but in practice, there are some // DW_TAG_typedef without an associated DW_AT_type: //<1><538832>: Abbrev Number: 111 (DW_TAG_typedef) // <538833> DW_AT_name : (indirect string, offset: 0x2292f3): gregset_t @@ -695,7 +688,6 @@ static bool heap_area_differ_with_type(simgrid::mc::StateComparator& state, cons default: THROW_IMPOSSIBLE; } - return false; } /** Infer the type of a part of the block from the type of the block @@ -712,7 +704,7 @@ static simgrid::mc::Type* get_offset_type(void* real_base_address, simgrid::mc:: const simgrid::mc::Snapshot& snapshot) { - // Beginning of the block, the infered variable type if the type of the block: + // Beginning of the block, the inferred variable type if the type of the block: if (offset == 0) return type; @@ -1098,8 +1090,8 @@ static bool areas_differ_with_type(simgrid::mc::StateComparator& state, const vo } for (i = 0; i < type->element_count; i++) { size_t off = i * elm_size; - if (areas_differ_with_type(state, (char*)real_area1 + off, snapshot1, region1, (char*)real_area2 + off, - snapshot2, region2, type->subtype, pointer_level)) + if (areas_differ_with_type(state, (const char*)real_area1 + off, snapshot1, region1, + (const char*)real_area2 + off, snapshot2, region2, type->subtype, pointer_level)) return true; } break;