X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1e896e691f69c6e46566d038d37b4fd7ea18fa3d..d947ff7466b473eeec602007934f8336a9b17f3c:/src/mc/mc_global.c diff --git a/src/mc/mc_global.c b/src/mc/mc_global.c index 394d2a9908..6cd26b852d 100644 --- a/src/mc/mc_global.c +++ b/src/mc/mc_global.c @@ -180,7 +180,7 @@ void MC_init(){ get_binary_plt_section(); MC_ignore_data_bss(&end_raw_heap, sizeof(end_raw_heap)); - + /* Get global variables */ MC_get_global_variables(xbt_binary_name); MC_get_global_variables(libsimgrid_path); @@ -197,6 +197,9 @@ void MC_init(){ MC_ignore_stack("_throw_ctx", "*"); MC_ignore_stack("ctx", "*"); + MC_ignore_stack("next_context", "smx_ctx_sysv_suspend_serial"); + MC_ignore_stack("i", "smx_ctx_sysv_suspend_serial"); + if(raw_mem_set) MC_SET_RAW_MEM; @@ -286,6 +289,7 @@ void MC_exit(void) { xbt_free(mc_time); MC_memory_exit(); + xbt_abort(); } @@ -748,8 +752,10 @@ void MC_ignore_heap(void *address, size_t size){ if(((xbt_mheap_t)std_heap)->heapinfo[region->block].type == 0){ region->fragment = -1; + ((xbt_mheap_t)std_heap)->heapinfo[region->block].busy_block.ignore = 1; }else{ region->fragment = ((uintptr_t) (ADDR2UINT (address) % (BLOCKSIZE))) >> ((xbt_mheap_t)std_heap)->heapinfo[region->block].type; + ((xbt_mheap_t)std_heap)->heapinfo[region->block].busy_frag.ignore[region->fragment] = 1; } }