Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[project-description] Fix extraction of the ns-3 version.
[simgrid.git] / src / mc / sosp / Snapshot.cpp
index c58c306..6b07c1f 100644 (file)
@@ -10,8 +10,7 @@
 #include <cstddef> /* std::size_t */
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_snapshot, mc, "Taking and restoring snapshots");
-namespace simgrid {
-namespace mc {
+namespace simgrid::mc {
 /************************************* Take Snapshot ************************************/
 /****************************************************************************************/
 
@@ -58,6 +57,12 @@ static void fill_local_variables_values(mc_stack_frame_t stack_frame, Frame* sco
     if (not valid_variable(&current_variable, scope, (void*)stack_frame->ip))
       continue;
 
+    if (not current_variable.type) {
+      XBT_VERB("Ignore local variable without type: '%s' [%s]", current_variable.name.c_str(),
+               stack_frame->frame->name.c_str());
+      continue;
+    }
+
     s_local_variable_t new_var;
     new_var.subprogram = stack_frame->frame;
     new_var.ip         = stack_frame->ip;
@@ -194,9 +199,9 @@ static void snapshot_ignore_restore(const simgrid::mc::Snapshot* snapshot)
                                                 remote(ignored_data.start));
 }
 
-Snapshot::Snapshot(int num_state, RemoteProcess* process) : AddressSpace(process), num_state_(num_state)
+Snapshot::Snapshot(long num_state, RemoteProcess* process) : AddressSpace(process), num_state_(num_state)
 {
-  XBT_DEBUG("Taking snapshot %i", num_state);
+  XBT_DEBUG("Taking snapshot %ld", num_state);
 
   for (auto const& p : process->actors())
     enabled_processes_.insert(p.copy.get_buffer()->get_pid());
@@ -271,7 +276,7 @@ Region* Snapshot::get_region(const void* addr, Region* hinted_region) const
 
 void Snapshot::restore(RemoteProcess* process) const
 {
-  XBT_DEBUG("Restore snapshot %i", num_state_);
+  XBT_DEBUG("Restore snapshot %ld", num_state_);
 
   // Restore regions
   for (std::unique_ptr<Region> const& region : snapshot_regions_) {
@@ -283,5 +288,4 @@ void Snapshot::restore(RemoteProcess* process) const
   process->clear_cache();
 }
 
-} // namespace mc
-} // namespace simgrid
+} // namespace simgrid::mc