SimGrid  3.16
Versatile Simulation of Distributed Systems
mc_snapshot.h File Reference
#include <vector>
#include <set>
#include <string>
#include <memory>
#include "src/mc/ModelChecker.hpp"
#include "src/mc/RegionSnapshot.hpp"
#include "src/mc/mc_forward.hpp"
#include "src/mc/mc_unw.h"

Classes

struct  s_mc_snapshot_ignored_data
 Ignored data. More...
 
struct  s_fd_infos
 
struct  s_mc_stack_frame
 Information about a given stack frame. More...
 
struct  s_local_variable
 
struct  s_mc_snapshot_stack
 
class  simgrid::mc::Snapshot
 

Namespaces

 simgrid
 Alltoall Bruck.
 
 simgrid::mc
 

Typedefs

typedef struct s_mc_snapshot_ignored_data s_mc_snapshot_ignored_data_t
 Ignored data. More...
 
typedef struct s_mc_snapshot_ignored_datamc_snapshot_ignored_data_t
 
typedef struct s_fd_infos s_fd_infos_t
 
typedef struct s_fd_infosfd_infos_t
 
typedef struct s_mc_stack_frame s_mc_stack_frame_t
 Information about a given stack frame. More...
 
typedef struct s_mc_stack_framemc_stack_frame_t
 
typedef struct s_local_variable s_local_variable_t
 
typedef struct s_local_variablelocal_variable_t
 
typedef struct s_mc_snapshot_stack s_mc_snapshot_stack_t
 
typedef struct s_mc_snapshot_stackmc_snapshot_stack_t
 

Functions

void mc_region_restore_sparse (simgrid::mc::Process *process, mc_mem_region_t reg)
 
static XBT_ALWAYS_INLINE voidmc_translate_address_region_chunked (uintptr_t addr, mc_mem_region_t region)
 
static XBT_ALWAYS_INLINE voidmc_translate_address_region (uintptr_t addr, mc_mem_region_t region, int process_index)
 
mc_mem_region_t mc_get_snapshot_region (const void *addr, const simgrid::mc::Snapshot *snapshot, int process_index)
 Find the snapshoted region from a pointer. More...
 
static XBT_ALWAYS_INLINE mc_mem_region_t mc_get_region_hinted (void *addr, simgrid::mc::Snapshot *snapshot, int process_index, mc_mem_region_t region)
 
static const voidmc_snapshot_get_heap_end (simgrid::mc::Snapshot *snapshot)
 
void mc_restore_page_snapshot_region (simgrid::mc::Process *process, void *start_addr, simgrid::mc::ChunkedData const &pagenos)
 Restore a snapshot of a region. More...
 
const voidMC_region_read_fragmented (mc_mem_region_t region, void *target, const void *addr, std::size_t size)
 
int MC_snapshot_region_memcmp (const void *addr1, mc_mem_region_t region1, const void *addr2, mc_mem_region_t region2, std::size_t size)
 
int MC_snapshot_memcmp (const void *addr1, simgrid::mc::Snapshot *snapshot1, const void *addr2, simgrid::mc::Snapshot *snapshot2, int process_index, std::size_t size)
 
static XBT_ALWAYS_INLINE const voidMC_region_read (mc_mem_region_t region, void *target, const void *addr, std::size_t size)
 Read memory from a snapshot region. More...
 
static XBT_ALWAYS_INLINE voidMC_region_read_pointer (mc_mem_region_t region, const void *addr)
 

Typedef Documentation

◆ s_mc_snapshot_ignored_data_t

Ignored data.

Some parts of the snapshot are ignored by zeroing them out: the real values is stored here.

◆ mc_snapshot_ignored_data_t

◆ s_fd_infos_t

typedef struct s_fd_infos s_fd_infos_t

◆ fd_infos_t

typedef struct s_fd_infos * fd_infos_t

◆ s_mc_stack_frame_t

Information about a given stack frame.

◆ mc_stack_frame_t

◆ s_local_variable_t

◆ local_variable_t

◆ s_mc_snapshot_stack_t

◆ mc_snapshot_stack_t

Function Documentation

◆ mc_region_restore_sparse()

void mc_region_restore_sparse ( simgrid::mc::Process process,
mc_mem_region_t  reg 
)

◆ mc_translate_address_region_chunked()

static XBT_ALWAYS_INLINE void* mc_translate_address_region_chunked ( uintptr_t  addr,
mc_mem_region_t  region 
)
static

◆ mc_translate_address_region()

static XBT_ALWAYS_INLINE void* mc_translate_address_region ( uintptr_t  addr,
mc_mem_region_t  region,
int  process_index 
)
static

◆ mc_get_snapshot_region()

mc_mem_region_t mc_get_snapshot_region ( const void addr,
const simgrid::mc::Snapshot snapshot,
int  process_index 
)

Find the snapshoted region from a pointer.

Parameters
addrPointer
snapshotSnapshot
Snapshotregion in the snapshot this pointer belongs to (or nullptr if it does not belong to any snapshot region)

◆ mc_get_region_hinted()

static XBT_ALWAYS_INLINE mc_mem_region_t mc_get_region_hinted ( void addr,
simgrid::mc::Snapshot snapshot,
int  process_index,
mc_mem_region_t  region 
)
static

◆ mc_snapshot_get_heap_end()

static XBT_ALWAYS_INLINE const void * mc_snapshot_get_heap_end ( simgrid::mc::Snapshot snapshot)
static

◆ mc_restore_page_snapshot_region()

void mc_restore_page_snapshot_region ( simgrid::mc::Process process,
void start_addr,
simgrid::mc::ChunkedData const &  pages_copy 
)

Restore a snapshot of a region.

If possible, the restoration will be incremental (the modified pages will not be touched).

Parameters
start_addr
page_countNumber of pages of the region
pagenos

◆ MC_region_read_fragmented()

const void* MC_region_read_fragmented ( mc_mem_region_t  region,
void target,
const void addr,
std::size_t  size 
)

◆ MC_snapshot_region_memcmp()

int MC_snapshot_region_memcmp ( const void addr1,
mc_mem_region_t  region1,
const void addr2,
mc_mem_region_t  region2,
std::size_t  size 
)

◆ MC_snapshot_memcmp()

int MC_snapshot_memcmp ( const void addr1,
simgrid::mc::Snapshot snapshot1,
const void addr2,
simgrid::mc::Snapshot snapshot2,
int  process_index,
std::size_t  size 
)

◆ MC_region_read()

static XBT_ALWAYS_INLINE const void* MC_region_read ( mc_mem_region_t  region,
void target,
const void addr,
std::size_t  size 
)
static

Read memory from a snapshot region.

Parameters
addrProcess (non-snapshot) address of the data
regionSnapshot memory region where the data is located
targetBuffer to store the value
sizeSize of the data to read in bytes
Returns
Pointer where the data is located (target buffer of original location)

◆ MC_region_read_pointer()

static XBT_ALWAYS_INLINE void* MC_region_read_pointer ( mc_mem_region_t  region,
const void addr 
)
static