X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a463b2408b2f67e31ad979fe7c1d29eb518c0849..12a11f518705f22574bcdf35f8e92f8a892f0e8b:/src/mc/mc_checkpoint.c diff --git a/src/mc/mc_checkpoint.c b/src/mc/mc_checkpoint.c index 6e3508b8e3..38fb33210d 100644 --- a/src/mc/mc_checkpoint.c +++ b/src/mc/mc_checkpoint.c @@ -313,6 +313,12 @@ static void MC_find_object_address(memory_map_t maps, mc_object_info_t result) { maps->regions[i].pathname); result->start_rw = reg.start_addr; result->end_rw = reg.end_addr; + // .bss is usually after the .data: + // TODO, use dl_iterate_phdr to be more robust + s_map_region_t* next = &(maps->regions[i+1]); + if(next->pathname == NULL && (next->prot & PROT_WRITE) && next->start_addr == reg.end_addr) { + result->end_rw = maps->regions[i+1].end_addr; + } } else if ((reg.prot & PROT_READ) && (reg.prot & PROT_EXEC)){ xbt_assert(!result->start_exec, "Multiple executable segments for %s, not supported",