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();
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);
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 */
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; i<sn->num_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;
+ }
+
+ }
+
+}
}
-
+void mmalloc_display_info_heap(void *h){
+
+}
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 */