/* 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"
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));
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++) {
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;
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 *);
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
default:
THROW_IMPOSSIBLE;
}
- return false;
}
/** Infer the type of a part of the block from the type of the block
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;
}
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;