From: Marion Guthmuller Date: Sun, 11 Nov 2012 16:34:55 +0000 (+0100) Subject: model-checker : get start of libsimgrid bss segment for MC_ignore mechanism X-Git-Tag: v3_9_rc1~91^2~126^2~4 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/2856679722f2a932bcdd28f50776353829a61576 model-checker : get start of libsimgrid bss segment for MC_ignore mechanism --- diff --git a/src/mc/mc_checkpoint.c b/src/mc/mc_checkpoint.c index 6f53924dee..bbe8fd6782 100644 --- a/src/mc/mc_checkpoint.c +++ b/src/mc/mc_checkpoint.c @@ -18,7 +18,7 @@ void *start_text_libsimgrid; void *start_plt_libsimgrid, *end_plt_libsimgrid; void *start_plt_binary, *end_plt_binary; char *libsimgrid_path; -void *start_data_libsimgrid; +void *start_data_libsimgrid, *start_bss_libsimgrid; void *start_text_binary; void *end_raw_heap; @@ -132,6 +132,10 @@ void MC_init_memory_map_info(){ } else { if (!memcmp(basename(maps->regions[i].pathname), "libsimgrid", 10)){ start_data_libsimgrid = reg.start_addr; + i++; + reg = maps->regions[i]; + if(reg.pathname == NULL && (reg.prot & PROT_WRITE) && i < maps->mapsize) + start_bss_libsimgrid = reg.start_addr; } } }else if ((reg.prot & PROT_READ)){ diff --git a/src/mc/mc_compare.c b/src/mc/mc_compare.c index 81bde65bf6..c80f0464d0 100644 --- a/src/mc/mc_compare.c +++ b/src/mc/mc_compare.c @@ -81,6 +81,9 @@ static int data_libsimgrid_region_compare(void *d1, void *d2, size_t size){ if((ignore_size = heap_ignore_size((char *)start_data_libsimgrid+i)) > 0){ i = i + ignore_size; continue; + }else if((ignore_size = heap_ignore_size((char *)start_bss_libsimgrid+i)) > 0){ + i = i + ignore_size; + continue; } pointer_align = (i / sizeof(void*)) * sizeof(void*); addr_pointed1 = *((void **)((char *)d1 + pointer_align)); diff --git a/src/mc/mc_private.h b/src/mc/mc_private.h index dc8c0cf2be..05d2a744ca 100644 --- a/src/mc/mc_private.h +++ b/src/mc/mc_private.h @@ -225,6 +225,7 @@ extern void *end_plt_libsimgrid; extern void *start_plt_binary; extern void *end_plt_binary; extern xbt_dynar_t mc_stack_comparison_ignore; +extern void *start_bss_libsimgrid; typedef struct s_mc_pair{ mc_snapshot_t system_state;