static void stack_region_free(stack_region_t s);
static void heap_equality_free(heap_equality_t e);
-static int is_stack_ignore_variable(char *frame, char *var_name);
static int compare_local_variables(char *s1, char *s2);
static int compare_global_variables(int region_type, void *d1, void *d2);
xbt_os_timer_start(timer);
#endif
+ /* Compare hash of global variables */
+ if(s1->hash_global != NULL && s2->hash_global != NULL){
+ if(strcmp(s1->hash_global, s2->hash_global) != 0){
+ #ifdef MC_DEBUG
+ xbt_os_timer_stop(timer);
+ mc_comp_times->hash_global_variables_comparison_time = xbt_os_timer_elapsed(timer);
+ XBT_DEBUG("Different hash of global variables : %s - %s", s1->hash_global, s2->hash_global);
+ errors++;
+ #else
+ #ifdef MC_VERBOSE
+ XBT_VERB("Different hash of global variables : %s - %s", s1->hash_global, s2->hash_global);
+ #endif
+
+ xbt_os_timer_free(timer);
+ xbt_os_timer_stop(global_timer);
+ mc_snapshot_comparison_time = xbt_os_timer_elapsed(global_timer);
+ xbt_os_timer_free(global_timer);
+
+ if(!raw_mem)
+ MC_UNSET_RAW_MEM;
+
+ return 1;
+ #endif
+ }
+ }
+
+ #ifdef MC_DEBUG
+ xbt_os_timer_start(timer);
+ #endif
+
+ /* Compare hash of local variables */
+ if(s1->hash_local != NULL && s2->hash_local != NULL){
+ if(strcmp(s1->hash_local, s2->hash_local) != 0){
+ #ifdef MC_DEBUG
+ xbt_os_timer_stop(timer);
+ mc_comp_times->hash_local_variables_comparison_time = xbt_os_timer_elapsed(timer);
+ XBT_DEBUG("Different hash of local variables : %s - %s", s1->hash_local, s2->hash_local);
+ errors++;
+ #else
+ #ifdef MC_VERBOSE
+ XBT_VERB("Different hash of local variables : %s - %s", s1->hash_local, s2->hash_local);
+ #endif
+
+ xbt_os_timer_free(timer);
+ xbt_os_timer_stop(global_timer);
+ mc_snapshot_comparison_time = xbt_os_timer_elapsed(global_timer);
+ xbt_os_timer_free(global_timer);
+
+ if(!raw_mem)
+ MC_UNSET_RAW_MEM;
+
+ return 1;
+ #endif
+ }
+ }
+
+ #ifdef MC_DEBUG
+ xbt_os_timer_start(timer);
+ #endif
+
/* Init heap information used in heap comparison algorithm */
init_heap_information((xbt_mheap_t)s1->regions[0]->data, (xbt_mheap_t)s2->regions[0]->data, s1->to_ignore, s2->to_ignore);
}
-static int is_stack_ignore_variable(char *frame, char *var_name){
+int is_stack_ignore_variable(char *frame, char *var_name){
unsigned int cursor = 0;
int start = 0;