X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/573a49afcc1a146f9776a7a772d87efd9db77657..2b4c4cf7533ad4a7405c807132943c6139233cb2:/src/mc/mc_snapshot.h diff --git a/src/mc/mc_snapshot.h b/src/mc/mc_snapshot.h index 1a58db855d..8d9ce91aa0 100644 --- a/src/mc/mc_snapshot.h +++ b/src/mc/mc_snapshot.h @@ -12,6 +12,7 @@ #include #include +#include #include #include "../xbt/mmalloc/mmprivate.h" @@ -104,16 +105,25 @@ typedef struct s_mc_stack_frame { unw_word_t sp; unw_word_t frame_base; dw_frame_t frame; - char* frame_name; + std::string frame_name; unw_cursor_t unw_cursor; } s_mc_stack_frame_t, *mc_stack_frame_t; -typedef struct s_mc_snapshot_stack{ - xbt_dynar_t local_variables; - mc_unw_context_t context; - xbt_dynar_t stack_frames; // mc_stack_frame_t +typedef struct s_local_variable{ + dw_frame_t subprogram; + unsigned long ip; + std::string name; + dw_type_t type; + void *address; + int region; +} s_local_variable_t, *local_variable_t; + +typedef struct s_mc_snapshot_stack { + std::vector local_variables; + s_mc_unw_context_t context; + std::vector stack_frames; int process_index; -}s_mc_snapshot_stack_t, *mc_snapshot_stack_t; +} s_mc_snapshot_stack_t, *mc_snapshot_stack_t; typedef struct s_mc_global_t { mc_snapshot_t snapshot; @@ -140,12 +150,11 @@ public: // To be private mc_process_t process; int num_state; size_t heap_bytes_used; - mc_mem_region_t* snapshot_regions; - size_t snapshot_regions_count; + std::vector> snapshot_regions; std::set enabled_processes; int privatization_index; std::vector stack_sizes; - xbt_dynar_t stacks; + std::vector stacks; std::vector to_ignore; uint64_t hash; std::vector ignored_data;