X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cde2aca7feb21f861c3f2da5fa5ae957ff15bb8e..911232a13bacc6c120600c8e1fc70e6a73ca761f:/src/mc/mc_checkpoint.cpp?ds=sidebyside diff --git a/src/mc/mc_checkpoint.cpp b/src/mc/mc_checkpoint.cpp index f05cfcdf19..44d50918eb 100644 --- a/src/mc/mc_checkpoint.cpp +++ b/src/mc/mc_checkpoint.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2008-2015. The SimGrid Team. +/* Copyright (c) 2008-2017. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -6,10 +6,10 @@ #include +#include +#include #include -#include #include -#include #ifndef WIN32 #include @@ -17,7 +17,7 @@ #include "src/internal_config.h" #include "src/mc/mc_private.h" -#include "src/smpi/private.h" +#include "src/smpi/include/private.h" #include "xbt/mmalloc.h" #include "xbt/module.h" @@ -142,7 +142,7 @@ void add_region(int index, simgrid::mc::Snapshot* snapshot, return; } -static void get_memory_regions(simgrid::mc::Process* process, simgrid::mc::Snapshot* snapshot) +static void get_memory_regions(simgrid::mc::RemoteClient* process, simgrid::mc::Snapshot* snapshot) { const size_t n = process->object_infos.size(); snapshot->snapshot_regions.resize(n + 1); @@ -283,13 +283,12 @@ static void fill_local_variables_values(mc_stack_frame_t stack_frame, int process_index, std::vector& result) { - simgrid::mc::Process* process = &mc_model_checker->process(); + simgrid::mc::RemoteClient* process = &mc_model_checker->process(); if (not scope || not scope->range.contain(stack_frame->ip)) return; - for(simgrid::mc::Variable& current_variable : - scope->variables) { + for (simgrid::mc::Variable& current_variable : scope->variables) { if (not valid_variable(¤t_variable, scope, (void*)stack_frame->ip)) continue; @@ -331,7 +330,7 @@ static void fill_local_variables_values(mc_stack_frame_t stack_frame, } // Recursive processing of nested scopes: - for(simgrid::mc::Frame& nested_scope : scope->scopes) + for (simgrid::mc::Frame& nested_scope : scope->scopes) fill_local_variables_values( stack_frame, &nested_scope, process_index, result); } @@ -347,7 +346,7 @@ static std::vector get_local_variables_values( static std::vector unwind_stack_frames(simgrid::mc::UnwindContext* stack_context) { - simgrid::mc::Process* process = &mc_model_checker->process(); + simgrid::mc::RemoteClient* process = &mc_model_checker->process(); std::vector result; unw_cursor_t c = stack_context->cursor(); @@ -453,7 +452,7 @@ static void snapshot_handle_ignore(simgrid::mc::Snapshot* snapshot) } // Zero the memory: - for(auto const& region : mc_model_checker->process().ignored_regions()) + for (auto const& region : mc_model_checker->process().ignored_regions()) snapshot->process()->clear_bytes(remote(region.addr), region.size); } @@ -555,11 +554,11 @@ std::shared_ptr take_snapshot(int num_state) { XBT_DEBUG("Taking snapshot %i", num_state); - simgrid::mc::Process* mc_process = &mc_model_checker->process(); + simgrid::mc::RemoteClient* mc_process = &mc_model_checker->process(); std::shared_ptr snapshot = std::make_shared(mc_process, num_state); - for (auto& p : mc_model_checker->process().actors()) + for (auto const& p : mc_model_checker->process().actors()) snapshot->enabled_processes.insert(p.copy.getBuffer()->pid); snapshot_handle_ignore(snapshot.get()); @@ -588,19 +587,16 @@ std::shared_ptr take_snapshot(int num_state) static inline void restore_snapshot_regions(simgrid::mc::Snapshot* snapshot) { - for(std::unique_ptr const& region : snapshot->snapshot_regions) { + for (std::unique_ptr const& region : snapshot->snapshot_regions) { // For privatized, variables we decided it was not necessary to take the snapshot: if (region) restore(region.get()); } #if HAVE_SMPI - // TODO, send a message to implement this in the MCed process if(snapshot->privatization_index >= 0) { // Fix the privatization mmap: - s_mc_message_restore message; - message.type = MC_MESSAGE_RESTORE; - message.index = snapshot->privatization_index; + s_mc_message_restore message{MC_MESSAGE_RESTORE, snapshot->privatization_index}; mc_model_checker->process().getChannel().send(message); } #endif