X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/51944fbb208aeba94040ac47118d748f2cb5c854..HEAD:/src/mc/sosp/Snapshot.hpp diff --git a/src/mc/sosp/Snapshot.hpp b/src/mc/sosp/Snapshot.hpp deleted file mode 100644 index 45b00dc172..0000000000 --- a/src/mc/sosp/Snapshot.hpp +++ /dev/null @@ -1,91 +0,0 @@ -/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */ - -/* 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. */ - -#ifndef SIMGRID_MC_SNAPSHOT_HPP -#define SIMGRID_MC_SNAPSHOT_HPP - -#include "src/mc/ModelChecker.hpp" -#include "src/mc/inspect/mc_unw.hpp" -#include "src/mc/remote/RemoteClient.hpp" -#include "src/mc/sosp/Region.hpp" - -// ***** MC Snapshot - -/** Ignored data - * - * Some parts of the snapshot are ignored by zeroing them out: the real - * values is stored here. - * */ -struct s_mc_snapshot_ignored_data_t { - void* start; - std::vector data; -}; - -/** Information about a given stack frame */ -struct s_mc_stack_frame_t { - /** Instruction pointer */ - unw_word_t ip; - /** Stack pointer */ - unw_word_t sp; - unw_word_t frame_base; - simgrid::mc::Frame* frame; - std::string frame_name; - unw_cursor_t unw_cursor; -}; -typedef s_mc_stack_frame_t* mc_stack_frame_t; - -struct s_local_variable_t { - simgrid::mc::Frame* subprogram; - unsigned long ip; - std::string name; - simgrid::mc::Type* type; - void* address; -}; -typedef s_local_variable_t* local_variable_t; - -struct XBT_PRIVATE s_mc_snapshot_stack_t { - std::vector local_variables; - simgrid::mc::UnwindContext context; - std::vector stack_frames; -}; -typedef s_mc_snapshot_stack_t* mc_snapshot_stack_t; - -namespace simgrid { -namespace mc { - -class XBT_PRIVATE Snapshot final : public AddressSpace { -public: - Snapshot(int num_state, RemoteClient* process = &mc_model_checker->process()); - ~Snapshot() = default; - - /* Initialization */ - - /* Regular use */ - void* read_bytes(void* buffer, std::size_t size, RemotePtr address, - ReadOptions options = ReadOptions::none()) const override; - Region* get_region(const void* addr) const; - Region* get_region(const void* addr, Region* hinted_region) const; - void restore(RemoteClient* process); - - // To be private - int num_state_; - std::size_t heap_bytes_used_; - std::vector> snapshot_regions_; - std::set enabled_processes_; - std::vector stack_sizes_; - std::vector stacks_; - std::vector to_ignore_; - std::uint64_t hash_ = 0; - std::vector ignored_data_; - -private: - void add_region(RegionType type, ObjectInformation* object_info, void* start_addr, std::size_t size); - void snapshot_regions(simgrid::mc::RemoteClient* process); - void snapshot_stacks(simgrid::mc::RemoteClient* process); -}; -} // namespace mc -} // namespace simgrid - -#endif