int process_index,
void* real_area1, mc_snapshot_t snapshot1, mc_mem_region_t region1,
void* real_area2, mc_snapshot_t snapshot2, mc_mem_region_t region2,
int process_index,
void* real_area1, mc_snapshot_t snapshot1, mc_mem_region_t region1,
void* real_area2, mc_snapshot_t snapshot2, mc_mem_region_t region2,
- unsigned int cursor = 0;
- dw_type_t member, subtype, subsubtype;
+ simgrid::mc::Type* subtype;
+ simgrid::mc::Type* subsubtype;
else if (region1->contain(simgrid::mc::remote(addr_pointed1))) {
if (!region2->contain(simgrid::mc::remote(addr_pointed2)))
return 1;
else if (region1->contain(simgrid::mc::remote(addr_pointed1))) {
if (!region2->contain(simgrid::mc::remote(addr_pointed2)))
return 1;
return (addr_pointed1 != addr_pointed2);
else {
return compare_areas_with_type(state, process_index,
return (addr_pointed1 != addr_pointed2);
else {
return compare_areas_with_type(state, process_index,
- mc_member_resolve(real_area1, type, member, snapshot1, process_index);
+ mc_member_resolve(real_area1, type, &member, snapshot1, process_index);
- mc_member_resolve(real_area2, type, member, snapshot2, process_index);
+ mc_member_resolve(real_area2, type, &member, snapshot2, process_index);
mc_mem_region_t subregion1 = mc_get_region_hinted(member1, snapshot1, process_index, region1);
mc_mem_region_t subregion2 = mc_get_region_hinted(member2, snapshot2, process_index, region2);
res =
compare_areas_with_type(state, process_index,
member1, snapshot1, subregion1,
member2, snapshot2, subregion2,
mc_mem_region_t subregion1 = mc_get_region_hinted(member1, snapshot1, process_index, region1);
mc_mem_region_t subregion2 = mc_get_region_hinted(member2, snapshot2, process_index, region2);
res =
compare_areas_with_type(state, process_index,
member1, snapshot1, subregion1,
member2, snapshot2, subregion2,
// If the variable is not in this object, skip it:
// We do not expect to find a pointer to something which is not reachable
// by the global variables.
// If the variable is not in this object, skip it:
// We do not expect to find a pointer to something which is not reachable
// by the global variables.
- if ((char *) current_var->address < (char *) object_info->start_rw
- || (char *) current_var->address > (char *) object_info->end_rw)
+ if ((char *) current_var.address < (char *) object_info->start_rw
+ || (char *) current_var.address > (char *) object_info->end_rw)
- (char *) current_var->address, snapshot1, r1,
- (char *) current_var->address, snapshot2, r2,
+ (char *) current_var.address, snapshot1, r1,
+ (char *) current_var.address, snapshot2, r2,
bvariable_type, 0);
if (res == 1) {
XBT_TRACE3(mc, global_diff, -1, -1, current_var->name);
XBT_VERB("Global variable %s (%p) is different between snapshots",
bvariable_type, 0);
if (res == 1) {
XBT_TRACE3(mc, global_diff, -1, -1, current_var->name);
XBT_VERB("Global variable %s (%p) is different between snapshots",
|| current_var1->ip != current_var2->ip) {
// TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
XBT_VERB
|| current_var1->ip != current_var2->ip) {
// TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
XBT_VERB
- ("Different name of variable (%s - %s) or frame (%s - %s) or ip (%lu - %lu)",
- current_var1->name.c_str(), current_var2->name.c_str(),
- current_var1->subprogram->name, current_var2->subprogram->name,
+ ("Different name of variable (%s - %s) "
+ "or frame (%s - %s) or ip (%lu - %lu)",
+ current_var1->name.c_str(),
+ current_var2->name.c_str(),
+ current_var1->subprogram->name.c_str(),
+ current_var2->subprogram->name.c_str(),
current_var1->ip, current_var2->ip);
return 1;
}
// TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
current_var1->ip, current_var2->ip);
return 1;
}
// TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
res =
compare_areas_with_type(state, process_index,
current_var1->address, snapshot1, mc_get_snapshot_region(current_var1->address, snapshot1, process_index),
res =
compare_areas_with_type(state, process_index,
current_var1->address, snapshot1, mc_get_snapshot_region(current_var1->address, snapshot1, process_index),
// TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
XBT_TRACE3(mc, local_diff, -1, -1, current_var1->name);
XBT_VERB
// TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
XBT_TRACE3(mc, local_diff, -1, -1, current_var1->name);
XBT_VERB
- ("Local variable %s (%p - %p) in frame %s is different between snapshots",
- current_var1->name.c_str(), current_var1->address, current_var2->address,
- current_var1->subprogram->name);
+ ("Local variable %s (%p - %p) in frame %s "
+ "is different between snapshots",
+ current_var1->name.c_str(),
+ current_var1->address,
+ current_var2->address,
+ current_var1->subprogram->name.c_str());
size_used1 = s1->stack_sizes[i];
size_used2 = s2->stack_sizes[i];
if (size_used1 != size_used2) {
size_used1 = s1->stack_sizes[i];
size_used2 = s2->stack_sizes[i];
if (size_used1 != size_used2) {
- while (cursor < xbt_dynar_length(s1->stacks)) {
- stack1 =
- (mc_snapshot_stack_t) xbt_dynar_get_as(s1->stacks, cursor,
- mc_snapshot_stack_t);
- stack2 =
- (mc_snapshot_stack_t) xbt_dynar_get_as(s2->stacks, cursor,
- mc_snapshot_stack_t);
+ while (cursor < s1->stacks.size()) {
+ stack1 = &s1->stacks[cursor];
+ stack2 = &s1->stacks[cursor];
xbt_os_walltimer_stop(timer);
mc_comp_times->global_variables_comparison_time
+= xbt_os_timer_elapsed(timer);
xbt_os_walltimer_stop(timer);
mc_comp_times->global_variables_comparison_time
+= xbt_os_timer_elapsed(timer);
- XBT_DEBUG("(%d - %d) Different global variables in %s", num1, num2,
- name);
+ XBT_DEBUG("(%d - %d) Different global variables in %s",
+ num1, num2, name.c_str());
- XBT_VERB("(%d - %d) Different global variables in %s", num1, num2,
- name);
+ XBT_VERB("(%d - %d) Different global variables in %s",
+ num1, num2, name.c_str());