Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[smpi] Use virtual memory layout to find the data segment
[simgrid.git] / src / mc / Process.hpp
index ff36fa1..6cc3cfd 100644 (file)
 #include "src/simix/popping_private.h"
 #include "src/simix/smx_private.h"
 
+#include "../xbt/memory_map.hpp"
+
 #include "mc_forward.hpp"
 #include "mc_base.h"
 #include "mc_mmalloc.h" // std_heap
-#include "mc_memory_map.h"
 #include "AddressSpace.hpp"
 #include "mc_protocol.h"
 
@@ -94,13 +95,13 @@ public:
   {
     if (!(this->cache_flags & MC_PROCESS_CACHE_FLAG_HEAP))
       this->refresh_heap();
-    return this->heap;
+    return this->heap.get();
   }
   malloc_info* get_malloc_info()
   {
     if (!(this->cache_flags & MC_PROCESS_CACHE_FLAG_MALLOC_INFO))
       this->refresh_malloc_info();
-    return this->heap_info;
+    return this->heap_info.data();
   }
 
   std::vector<IgnoredRegion> const& ignored_regions() const
@@ -163,7 +164,7 @@ private:
   int socket_;
   int status_;
   bool running_;
-  std::vector<VmMap> memory_map_;
+  std::vector<simgrid::xbt::VmMap> memory_map_;
   remote_ptr<void> maestro_stack_start_, maestro_stack_end_;
   int memory_file;
   std::vector<IgnoredRegion> ignored_regions_;
@@ -200,7 +201,7 @@ public: // Copies of MCed SMX data structures
    *  This is not used if the process is the current one:
    *  use `get_heap_info()` in order to use it.
    */
-   xbt_mheap_t heap;
+   std::unique_ptr<s_xbt_mheap_t> heap;
 
   /** Copy of the allocation info structure
    *
@@ -208,7 +209,7 @@ public: // Copies of MCed SMX data structures
    *  This is not used if the process is the current one:
    *  use `get_malloc_info()` in order to use it.
    */
-  malloc_info* heap_info;
+  std::vector<malloc_info> heap_info;
 
 public: // Libunwind-data