Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Remove Process:status_
[simgrid.git] / src / mc / mc_diff.cpp
index fc96ef0..2abb326 100644 (file)
@@ -6,15 +6,16 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include "xbt/ex_interface.h"   /* internals of backtrace setup */
+#include "src/xbt/ex_interface.h"   /* internals of backtrace setup */
 #include "xbt/str.h"
 #include "mc/mc.h"
 #include "xbt/mmalloc.h"
 #include "mc_object_info.h"
 #include "mc/datatypes.h"
-#include "mc/mc_private.h"
-#include "mc/mc_snapshot.h"
-#include "mc/Type.hpp"
+#include "src/mc/mc_private.h"
+#include "src/mc/mc_snapshot.h"
+#include "src/mc/mc_dwarf.hpp"
+#include "src/mc/Type.hpp"
 
 using simgrid::mc::remote;
 
@@ -33,15 +34,15 @@ typedef char *type_name;
 
 struct XBT_PRIVATE s_mc_diff {
   s_xbt_mheap_t std_heap_copy;
-  size_t heaplimit;
+  std::size_t heaplimit;
   // Number of blocks in the heaps:
-  size_t heapsize1, heapsize2;
+  std::size_t heapsize1, heapsize2;
   std::vector<s_mc_heap_ignore_region_t>* to_ignore1;
   std::vector<s_mc_heap_ignore_region_t>* to_ignore2;
   s_heap_area_t *equals_to1, *equals_to2;
   simgrid::mc::Type **types1;
   simgrid::mc::Type **types2;
-  size_t available;
+  std::size_t available;
 };
 
 #define equals_to1_(i,j) equals_to1[ MAX_FRAGMENT_PER_BLOCK*(i) + (j)]
@@ -929,16 +930,16 @@ top:
         return -1;
       }
     } else {
-      for(simgrid::mc::Type& member : type->members) {
+      for(simgrid::mc::Member& member : type->members) {
         // TODO, optimize this? (for the offset case)
-        void *real_member1 =
-            mc_member_resolve(real_area1, type, &member, (simgrid::mc::AddressSpace*) snapshot1, process_index);
-        void *real_member2 =
-            mc_member_resolve(real_area2, type, &member, (simgrid::mc::AddressSpace*) snapshot2, process_index);
+        void *real_member1 = simgrid::dwarf::resolve_member(
+          real_area1, type, &member, (simgrid::mc::AddressSpace*) snapshot1, process_index);
+        void *real_member2 = simgrid::dwarf::resolve_member(
+            real_area2, type, &member, (simgrid::mc::AddressSpace*) snapshot2, process_index);
         res =
             compare_heap_area_with_type(state, process_index, real_member1, real_member2,
                                         snapshot1, snapshot2,
-                                        previous, member.subtype, -1,
+                                        previous, member.type, -1,
                                         check_ignore, 0);
         if (res == 1) {
           return res;
@@ -990,18 +991,17 @@ static simgrid::mc::Type* get_offset_type(void *real_base_address, simgrid::mc::
       else
         return NULL;
     } else {
-      for(simgrid::mc::Type& member : type->members) {
+      for(simgrid::mc::Member& member : type->members) {
 
         if (member.has_offset_location()) {
           // We have the offset, use it directly (shortcut):
           if (member.offset() == offset)
-            return member.subtype;
+            return member.type;
         } else {
-          void *real_member =
-            mc_member_resolve(real_base_address, type, &member,
-              snapshot, process_index);
+          void *real_member = simgrid::dwarf::resolve_member(
+            real_base_address, type, &member, snapshot, process_index);
           if ((char*) real_member - (char *) real_base_address == offset)
-            return member.subtype;
+            return member.type;
         }
 
       }