- offset1 = (char *)current_var1->address - (char *)std_heap;
- offset2 = (char *)current_var2->address - (char *)std_heap;
- XBT_DEBUG("Compare local variable %s of frame %s", current_var1->name, current_var1->frame);
-
-
- if(current_var1->region == 1) {
- dw_type_t subtype = xbt_dict_get_or_null(mc_libsimgrid_info->types, current_var1->type);
- res = compare_areas_with_type( (char *)heap1 + offset1, (char *)heap2 + offset2, mc_libsimgrid_info, mc_binary_info, subtype, 0, 1, start_data_libsimgrid, 0);
- } else {
- dw_type_t subtype = xbt_dict_get_or_null(mc_binary_info->types, current_var1->type);
- res = compare_areas_with_type( (char *)heap1 + offset1, (char *)heap2 + offset2, mc_binary_info, mc_libsimgrid_info, subtype, 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);
+ // TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
+
+ dw_type_t subtype = current_var1->type;
+ res =
+ compare_areas_with_type(current_var1->address, snapshot1, mc_get_snapshot_region(current_var1->address, snapshot1),
+ current_var2->address, snapshot2, mc_get_snapshot_region(current_var2->address, snapshot2),
+ subtype, 0);
+
+ if (res == 1) {
+ // TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
+ XBT_VERB
+ ("Local variable %s (%p - %p) in frame %s is different between snapshots",
+ current_var1->name, current_var1->address, current_var2->address,
+ current_var1->subprogram->name);