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;
} 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)){
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));
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;