From cf9200da17217300a7966654d881f2efdb8e514c Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Thu, 2 Jan 2014 10:49:24 +0100 Subject: [PATCH] [mc] Do not use mc_{global_variables,local_variables,variables_type}_{libsimgrid,binary} --- src/mc/mc_checkpoint.c | 4 ++-- src/mc/mc_compare.c | 24 +++++++++++++++--------- src/mc/mc_global.c | 17 +++++++++-------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/src/mc/mc_checkpoint.c b/src/mc/mc_checkpoint.c index e9e6f479e0..42e950918b 100644 --- a/src/mc/mc_checkpoint.c +++ b/src/mc/mc_checkpoint.c @@ -518,9 +518,9 @@ static xbt_dynar_t MC_get_local_variables_values(void *stack_context){ stop = 1; if((long)ip > (long)start_text_libsimgrid) - frame = xbt_dict_get_or_null(mc_local_variables_libsimgrid, frame_name); + frame = xbt_dict_get_or_null(mc_libsimgrid_info->local_variables, frame_name); else - frame = xbt_dict_get_or_null(mc_local_variables_binary, frame_name); + frame = xbt_dict_get_or_null(mc_binary_info->local_variables, frame_name); if(frame == NULL){ ret = unw_step(&c); diff --git a/src/mc/mc_compare.c b/src/mc/mc_compare.c index e7ece509cb..41cc772f08 100644 --- a/src/mc/mc_compare.c +++ b/src/mc/mc_compare.c @@ -249,17 +249,20 @@ static int compare_global_variables(int region_type, mc_mem_region_t r1, mc_mem_ size_t offset; void *start_data; + mc_object_info_t object_info = NULL; + mc_object_info_t other_object_info = NULL; if(region_type == 2){ - variables = mc_global_variables_binary; - types = mc_variables_type_binary; - other_types = mc_variables_type_libsimgrid; + object_info = mc_binary_info; + other_object_info = mc_libsimgrid_info; start_data = start_data_binary; }else{ - variables = mc_global_variables_libsimgrid; - types = mc_variables_type_libsimgrid; - other_types = mc_variables_type_binary; + object_info = mc_libsimgrid_info; + other_object_info = mc_binary_info; start_data = start_data_libsimgrid; } + variables = object_info->global_variables; + types = object_info->types; + other_types = other_object_info->types; xbt_dynar_foreach(variables, cursor, current_var){ @@ -314,9 +317,9 @@ static int compare_local_variables(mc_snapshot_stack_t stack1, mc_snapshot_stack offset1 = (char *)current_var1->address - (char *)std_heap; offset2 = (char *)current_var2->address - (char *)std_heap; if(current_var1->region == 1) - res = compare_areas_with_type( (char *)heap1 + offset1, (char *)heap2 + offset2, mc_variables_type_libsimgrid, mc_variables_type_binary, current_var1->type, 0, 1, start_data_libsimgrid, 0); + res = compare_areas_with_type( (char *)heap1 + offset1, (char *)heap2 + offset2, mc_libsimgrid_info->types, mc_binary_info->types, current_var1->type, 0, 1, start_data_libsimgrid, 0); else - res = compare_areas_with_type( (char *)heap1 + offset1, (char *)heap2 + offset2, mc_variables_type_binary, mc_variables_type_libsimgrid, current_var1->type, 0, 2, start_data_binary, 0); + res = compare_areas_with_type( (char *)heap1 + offset1, (char *)heap2 + offset2, mc_binary_info->types, mc_libsimgrid_info->types, current_var1->type, 0, 2, start_data_binary, 0); if(res == 1){ XBT_VERB("Local variable %s (%p - %p) in frame %s is different between snapshots", current_var1->name,(char *)heap1 + offset1, (char *)heap2 + offset2, current_var1->frame); xbt_dynar_free(&compared_pointers); @@ -586,7 +589,10 @@ int snapshot_compare(void *state1, void *state2){ #endif /* Compare heap */ - if(mmalloc_compare_heap((xbt_mheap_t)s1->regions[0]->data, (xbt_mheap_t)s2->regions[0]->data, mc_variables_type_libsimgrid, mc_variables_type_binary) > 0){ + if(mmalloc_compare_heap((xbt_mheap_t)s1->regions[0]->data, + (xbt_mheap_t)s2->regions[0]->data, + mc_libsimgrid_info->types, + mc_binary_info->types) > 0){ #ifdef MC_DEBUG xbt_os_walltimer_stop(timer); diff --git a/src/mc/mc_global.c b/src/mc/mc_global.c index 7e54ecdf0f..5ed07dad5c 100644 --- a/src/mc/mc_global.c +++ b/src/mc/mc_global.c @@ -1421,20 +1421,20 @@ void MC_ignore_global_variable(const char *name){ MC_SET_RAW_MEM; - if(mc_local_variables_libsimgrid){ + if(mc_libsimgrid_info){ unsigned int cursor = 0; dw_variable_t current_var; int start = 0; - int end = xbt_dynar_length(mc_global_variables_libsimgrid) - 1; + int end = xbt_dynar_length(mc_libsimgrid_info->global_variables) - 1; while(start <= end){ cursor = (start + end) /2; - current_var = (dw_variable_t)xbt_dynar_get_as(mc_global_variables_libsimgrid, cursor, dw_variable_t); + current_var = (dw_variable_t)xbt_dynar_get_as(mc_libsimgrid_info->global_variables, cursor, dw_variable_t); if(strcmp(current_var->name, name) == 0){ - xbt_dynar_remove_at(mc_global_variables_libsimgrid, cursor, NULL); + xbt_dynar_remove_at(mc_libsimgrid_info->global_variables, cursor, NULL); start = 0; - end = xbt_dynar_length(mc_global_variables_libsimgrid) - 1; + end = xbt_dynar_length(mc_libsimgrid_info->global_variables) - 1; }else if(strcmp(current_var->name, name) < 0){ start = cursor + 1; }else{ @@ -1503,7 +1503,7 @@ void MC_ignore_local_variable(const char *var_name, const char *frame_name){ xbt_dict_cursor_t dict_cursor; char *current_frame_name; dw_frame_t frame; - xbt_dict_foreach(mc_local_variables_libsimgrid, dict_cursor, current_frame_name, frame){ + xbt_dict_foreach(mc_libsimgrid_info->local_variables, dict_cursor, current_frame_name, frame){ start = 0; end = xbt_dynar_length(frame->variables) - 1; while(start <= end){ @@ -1520,7 +1520,7 @@ void MC_ignore_local_variable(const char *var_name, const char *frame_name){ } } } - xbt_dict_foreach(mc_local_variables_binary, dict_cursor, current_frame_name, frame){ + xbt_dict_foreach(mc_binary_info->local_variables, dict_cursor, current_frame_name, frame){ start = 0; end = xbt_dynar_length(frame->variables) - 1; while(start <= end){ @@ -1538,7 +1538,8 @@ void MC_ignore_local_variable(const char *var_name, const char *frame_name){ } } }else{ - xbt_dynar_t variables_list = ((dw_frame_t)xbt_dict_get_or_null(mc_local_variables_libsimgrid, frame_name))->variables; + xbt_dynar_t variables_list = ((dw_frame_t)xbt_dict_get_or_null( + mc_libsimgrid_info->local_variables, frame_name))->variables; start = 0; end = xbt_dynar_length(variables_list) - 1; while(start <= end){ -- 2.20.1