return;
}
-void MC_take_snapshot(mc_snapshot_t snapshot)
-{
- unsigned int i = 0;
- s_map_region_t reg;
- memory_map_t maps = get_memory_map();
-
- /* Save the std heap and the writable mapped pages of libsimgrid */
- while (i < maps->mapsize) {
- reg = maps->regions[i];
- if ((reg.prot & PROT_WRITE)){
- if (maps->regions[i].pathname == NULL){
- if (reg.start_addr == std_heap){ // only save the std heap (and not the raw one)
- MC_snapshot_add_region(snapshot, 0, reg.start_addr, (char*)reg.end_addr - (char*)reg.start_addr);
- }
- i++;
- } else {
- if (!memcmp(basename(maps->regions[i].pathname), "libsimgrid", 10)){
- MC_snapshot_add_region(snapshot, 1, reg.start_addr, (char*)reg.end_addr - (char*)reg.start_addr);
- i++;
- reg = maps->regions[i];
- while(reg.pathname == NULL && (reg.prot & PROT_WRITE) && i < maps->mapsize){
- MC_snapshot_add_region(snapshot, 1, reg.start_addr, (char*)reg.end_addr - (char*)reg.start_addr);
- i++;
- reg = maps->regions[i];
- }
- }else{
- i++;
- }
- }
- }else{
- i++;
- }
- }
-
- free_memory_map(maps);
-}
+/* void MC_take_snapshot(mc_snapshot_t snapshot) */
+/* { */
+/* unsigned int i = 0; */
+/* s_map_region_t reg; */
+/* memory_map_t maps = get_memory_map(); */
+
+/* /\* Save the std heap and the writable mapped pages of libsimgrid *\/ */
+/* while (i < maps->mapsize) { */
+/* reg = maps->regions[i]; */
+/* if ((reg.prot & PROT_WRITE)){ */
+/* if (maps->regions[i].pathname == NULL){ */
+/* if (reg.start_addr == std_heap){ // only save the std heap (and not the raw one) */
+/* MC_snapshot_add_region(snapshot, 0, reg.start_addr, (char*)reg.end_addr - (char*)reg.start_addr); */
+/* } */
+/* i++; */
+/* } else { */
+/* if (!memcmp(basename(maps->regions[i].pathname), "libsimgrid", 10)){ */
+/* MC_snapshot_add_region(snapshot, 1, reg.start_addr, (char*)reg.end_addr - (char*)reg.start_addr); */
+/* i++; */
+/* reg = maps->regions[i]; */
+/* while(reg.pathname == NULL && (reg.prot & PROT_WRITE) && i < maps->mapsize){ */
+/* MC_snapshot_add_region(snapshot, 1, reg.start_addr, (char*)reg.end_addr - (char*)reg.start_addr); */
+/* i++; */
+/* reg = maps->regions[i]; */
+/* } */
+/* }else{ */
+/* i++; */
+/* } */
+/* } */
+/* }else{ */
+/* i++; */
+/* } */
+/* } */
+
+/* free_memory_map(maps); */
+/* } */
void MC_init_memory_map_info(){
- raw_mem_set = (mmalloc_get_current_heap() == raw_heap);
+ int raw_mem_set = (mmalloc_get_current_heap() == raw_heap);
MC_SET_RAW_MEM;
}
-mc_snapshot_t MC_take_snapshot_liveness()
+mc_snapshot_t MC_take_snapshot()
{
- raw_mem_set = (mmalloc_get_current_heap() == raw_heap);
-
+ int raw_mem = (mmalloc_get_current_heap() == raw_heap);
+
MC_SET_RAW_MEM;
mc_snapshot_t snapshot = xbt_new0(s_mc_snapshot_t, 1);
MC_UNSET_RAW_MEM;
- if(raw_mem_set)
+ if(raw_mem)
MC_SET_RAW_MEM;
return snapshot;
}
if(xbt_dynar_length(compose) > 0){
+ //XBT_INFO("Variable : %s", current_variable->name);
if(strcmp(xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1, variable_value_t)->type, "value") == 0){
//XBT_INFO("Variable : %s - value : %lx", current_variable->name, xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1, variable_value_t)->value.res);
xbt_strbuff_append(variables, bprintf("%s=%lx\n", current_variable->name, xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1, variable_value_t)->value.res));
}else{
- if(*((void**)xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1,variable_value_t)->value.address) == NULL){
+ if((long)xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1,variable_value_t)->value.address < 0 || *((void**)xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1,variable_value_t)->value.address) == NULL){
//XBT_INFO("Variable : %s - address : NULL", current_variable->name);
xbt_strbuff_append(variables, bprintf("%s=NULL\n", current_variable->name));
}else if(((long)*((void**)xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1,variable_value_t)->value.address) > 0xffffffff) || ((long)*((void**)xbt_dynar_get_as(compose, xbt_dynar_length(compose) - 1,variable_value_t)->value.address) < (long)start_text_binary)){