From: Marion Guthmuller Date: Fri, 13 Jan 2012 15:33:04 +0000 (+0100) Subject: model-checker : new function MC_diff to display all informations about a system state X-Git-Tag: exp_20120216~132^2 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/ceb6e76a440fc99e23b329abeebd25a2bf7a073d model-checker : new function MC_diff to display all informations about a system state --- diff --git a/include/mc/modelchecker.h b/include/mc/modelchecker.h index 43870f023a..087692b4ac 100644 --- a/include/mc/modelchecker.h +++ b/include/mc/modelchecker.h @@ -3,3 +3,4 @@ XBT_PUBLIC(void) MC_assert(int); XBT_PUBLIC(void) MC_assert_stateful(int); XBT_PUBLIC(int) MC_random(int min, int max); +XBT_PUBLIC(void) MC_diff(); diff --git a/include/xbt/mmalloc.h b/include/xbt/mmalloc.h index ca4d89dd41..f167e248b7 100644 --- a/include/xbt/mmalloc.h +++ b/include/xbt/mmalloc.h @@ -66,6 +66,8 @@ extern void *mmalloc_findbase(int size); extern int mmalloc_compare_heap(void *h1, void *h2); +extern void mmalloc_display_info_heap(void *h); + /* To change the heap used when using the legacy version malloc/free/realloc and such */ void mmalloc_set_current_heap(void *new_heap); void *mmalloc_get_current_heap(void); diff --git a/src/include/mc/mc.h b/src/include/mc/mc.h index 2e9fc0f767..59301feb6d 100644 --- a/src/include/mc/mc.h +++ b/src/include/mc/mc.h @@ -38,6 +38,7 @@ XBT_PUBLIC(void) MC_modelcheck_liveness(xbt_automaton_t a, char *prgm); XBT_PUBLIC(int) MC_random(int, int); XBT_PUBLIC(void) MC_process_clock_add(smx_process_t, double); XBT_PUBLIC(double) MC_process_clock_get(smx_process_t); +XBT_PUBLIC(void) MC_diff(void); /********************************* Memory *************************************/ XBT_PUBLIC(void) MC_memory_init(void); /* Initialize the memory subsystem */ diff --git a/src/mc/mc_global.c b/src/mc/mc_global.c index a1953a4c6d..d124b0e6dc 100644 --- a/src/mc/mc_global.c +++ b/src/mc/mc_global.c @@ -572,3 +572,35 @@ double MC_process_clock_get(smx_process_t process) else return 0; } + +void MC_diff(void){ + + mc_snapshot_t sn = xbt_new0(s_mc_snapshot_t, 1); + MC_take_snapshot_liveness(sn); + + int i; + + XBT_INFO("Number of regions : %d", sn->num_reg); + + for(i=0; inum_reg; i++){ + + switch(sn->regions[i]->type){ + case 0: /* heap */ + XBT_INFO("Size of heap : %zu", sn->regions[i]->size); + mmalloc_display_info_heap(sn->regions[i]->data); + break; + case 1 : /* libsimgrid */ + XBT_INFO("Size of libsimgrid : %zu", sn->regions[i]->size); + break; + case 2 : /* data program */ + XBT_INFO("Size of data program : %zu", sn->regions[i]->size); + break; + case 3 : /* stack */ + XBT_INFO("Size of stack : %zu", sn->regions[i]->size); + XBT_INFO("Start addr of stack : %p", sn->regions[i]->start_addr); + break; + } + + } + +} diff --git a/src/xbt/mmalloc/mm_legacy.c b/src/xbt/mmalloc/mm_legacy.c index 7a83f26072..2f9a247a54 100644 --- a/src/xbt/mmalloc/mm_legacy.c +++ b/src/xbt/mmalloc/mm_legacy.c @@ -415,6 +415,8 @@ int mmalloc_compare_mdesc(struct mdesc *mdp1, struct mdesc *mdp2){ } - +void mmalloc_display_info_heap(void *h){ + +} diff --git a/src/xbt/mmalloc/mmprivate.h b/src/xbt/mmalloc/mmprivate.h index 28dea9d787..fa9b62afec 100644 --- a/src/xbt/mmalloc/mmprivate.h +++ b/src/xbt/mmalloc/mmprivate.h @@ -271,6 +271,8 @@ int mmalloc_compare_heap(void *h1, void *h2); int mmalloc_compare_mdesc(struct mdesc *mdp1, struct mdesc *mdp2); +void mmalloc_display_info(void *h); + /* Bits to look at in the malloc descriptor flags word */ #define MMALLOC_DEVZERO (1 << 0) /* Have mapped to /dev/zero */