From: Gabriel Corona Date: Mon, 17 Feb 2014 14:17:23 +0000 (+0100) Subject: [mc] Fix get_object_info X-Git-Tag: v3_11~199^2~2^2~24^2~8 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/12a11f518705f22574bcdf35f8e92f8a892f0e8b?ds=sidebyside [mc] Fix get_object_info Some part of the RW segment was not included (the .bss). --- 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",