From: Marion Guthmuller Date: Thu, 3 May 2012 08:54:19 +0000 (+0200) Subject: Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot//simgrid/simgrid X-Git-Tag: v3_7~30^2~4 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/cb91af44a1bd7e5f331686df25d5fe80ff571a43?hp=156f0f11e98a981785e3ba7cd4daa4ab81ba4b33 Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot//simgrid/simgrid --- diff --git a/src/mc/mc_liveness.c b/src/mc/mc_liveness.c index c7b280f70e..221b87992c 100644 --- a/src/mc/mc_liveness.c +++ b/src/mc/mc_liveness.c @@ -33,6 +33,46 @@ unsigned int hash_region(char *str, int str_len){ } +int data_program_region_compare(void *d1, void *d2, size_t size){ + int distance = 0; + int pointer_align; + int i; + + for(i=0; iregions[i]->size != s2->regions[i]->size){ if(XBT_LOG_ISENABLED(mc_liveness, xbt_log_priority_debug)){ XBT_DEBUG("Different size of libsimgrid (s1 = %zu, s2 = %zu)", s1->regions[i]->size, s2->regions[i]->size); @@ -99,16 +139,41 @@ int snapshot_compare(mc_snapshot_t s1, mc_snapshot_t s2){ return 1; } } - if(memcmp(s1->regions[i]->data, s2->regions[i]->data, s1->regions[i]->size) != 0){ + if(data_program_region_compare(s1->regions[i]->data, s2->regions[i]->data, s1->regions[i]->size) != 0){ + if(XBT_LOG_ISENABLED(mc_liveness, xbt_log_priority_debug)){ + XBT_DEBUG("Different memcmp for data in libsimgrid"); + errors++; + }else{ + return 1; + } + } + break; + case 2 : + if(s1->regions[i]->size != s2->regions[i]->size){ + if(XBT_LOG_ISENABLED(mc_liveness, xbt_log_priority_debug)){ + XBT_DEBUG("Different size of data program (s1 = %zu, s2 = %zu)", s1->regions[i]->size, s2->regions[i]->size); + errors++; + }else{ + return 1; + } + } + if(s1->regions[i]->start_addr != s2->regions[i]->start_addr){ + if(XBT_LOG_ISENABLED(mc_liveness, xbt_log_priority_debug)){ + XBT_DEBUG("Different start addr of data program (s1 = %p, s2 = %p)", s1->regions[i]->start_addr, s2->regions[i]->start_addr); + errors++; + }else{ + return 1; + } + } + if(data_libsimgrid_region_compare(s1->regions[i]->data, s2->regions[i]->data, s1->regions[i]->size) != 0){ if(XBT_LOG_ISENABLED(mc_liveness, xbt_log_priority_debug)){ XBT_DEBUG("Different memcmp for data in libsimgrid"); - XBT_DEBUG("Size : %zu", s1->regions[i]->size); errors++; }else{ return 1; } } - break;*/ + break; default: break; } @@ -116,7 +181,6 @@ int snapshot_compare(mc_snapshot_t s1, mc_snapshot_t s2){ return (errors > 0); - } int reached(xbt_state_t st){ @@ -645,16 +709,16 @@ int visited_hash(xbt_state_t st, int sc){ MC_UNSET_RAW_MEM; return 1; }else{ - XBT_DEBUG("Different snapshot"); + //XBT_DEBUG("Different snapshot"); } }else{ - XBT_DEBUG("Different values of propositional symbols"); + //XBT_DEBUG("Different values of propositional symbols"); } }else{ - XBT_DEBUG("Different automaton state"); + //XBT_DEBUG("Different automaton state"); } }else{ - XBT_DEBUG("Different value of search_cycle"); + //XBT_DEBUG("Different value of search_cycle"); } region_diff = 0; @@ -812,9 +876,13 @@ void MC_ddfs_init(void){ XBT_DEBUG("Double-DFS init"); XBT_DEBUG("**************************************************"); + XBT_DEBUG("Std heap : %p", std_heap); + XBT_DEBUG("Raw heap : %p", raw_heap); + mc_pair_stateless_t mc_initial_pair = NULL; mc_state_t initial_graph_state = NULL; smx_process_t process; + MC_wait_for_requests(); @@ -903,7 +971,7 @@ void MC_ddfs(int search_cycle){ mc_stats_pair->visited_pairs++; - sleep(1); + //sleep(1); int value; mc_state_t next_graph_state = NULL; diff --git a/src/mc/mc_private.h b/src/mc/mc_private.h index b37a075f77..09e8932ec1 100644 --- a/src/mc/mc_private.h +++ b/src/mc/mc_private.h @@ -253,6 +253,8 @@ void set_pair_reached(xbt_state_t st); int reached_hash(xbt_state_t st); void set_pair_reached_hash(xbt_state_t st); int snapshot_compare(mc_snapshot_t s1, mc_snapshot_t s2); +int data_program_region_compare(void *d1, void *d2, size_t size); +int data_libsimgrid_region_compare(void *d1, void *d2, size_t size); void MC_pair_delete(mc_pair_t pair); void MC_exit_liveness(void); mc_state_t MC_state_pair_new(void); diff --git a/src/xbt/mmalloc/mm_diff.c b/src/xbt/mmalloc/mm_diff.c index 1fdc5bd0f8..96df86007f 100644 --- a/src/xbt/mmalloc/mm_diff.c +++ b/src/xbt/mmalloc/mm_diff.c @@ -128,7 +128,7 @@ int mmalloc_compare_mdesc(struct mdesc *mdp1, struct mdesc *mdp2){ int errors = 0; - if(mdp1->headersize != mdp2->headersize){ + /*if(mdp1->headersize != mdp2->headersize){ fprintf(stderr, "Different size of the file header for the mapped files\n"); return 1; } @@ -191,7 +191,7 @@ int mmalloc_compare_mdesc(struct mdesc *mdp1, struct mdesc *mdp2){ if(mdp1->version != mdp2->version){ fprintf(stderr,"Different version of the mmalloc package\n"); return 1; - } + }*/ size_t i, j;