X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4f0b473db654af3da6cc609b6d94b5b6d9652c4c..39b079c66644d717e0a7983d3325410dd05152b2:/src/mc/mc_object_info.h diff --git a/src/mc/mc_object_info.h b/src/mc/mc_object_info.h index 749c3e87b1..9dbf036ae8 100644 --- a/src/mc/mc_object_info.h +++ b/src/mc/mc_object_info.h @@ -23,13 +23,14 @@ #include "mc_process.h" #include "../smpi/private.h" -SG_BEGIN_DECL(); - // ***** Type typedef int e_dw_type_type; struct s_dw_type { + s_dw_type(); + ~s_dw_type(); + e_dw_type_type type; Dwarf_Off id; /* Offset in the section (in hexadecimal form) */ char *name; /* Name of the type */ @@ -47,7 +48,6 @@ struct s_dw_type { dw_type_t full_type; // The same (but more complete) type }; -XBT_INTERNAL void dw_type_free(dw_type_t t); XBT_INTERNAL void dw_variable_free(dw_variable_t v); XBT_INTERNAL void dw_variable_free_voidp(void *t); @@ -59,12 +59,21 @@ typedef int mc_object_info_flags; #define MC_OBJECT_INFO_EXECUTABLE 1 struct s_mc_object_info { + s_mc_object_info(); + ~s_mc_object_info(); + s_mc_object_info(s_mc_object_info const&) = delete; + s_mc_object_info& operator=(s_mc_object_info const&) = delete; + mc_object_info_flags flags; char* file_name; - const void* start, *end; - char *start_exec, *end_exec; // Executable segment - char *start_rw, *end_rw; // Read-write segment - char *start_ro, *end_ro; // read-only segment + const void* start; + const void *end; + char *start_exec; + char *end_exec; // Executable segment + char *start_rw; + char *end_rw; // Read-write segment + char *start_ro; + char *end_ro; // read-only segment xbt_dict_t subprograms; // xbt_dict_t xbt_dynar_t global_variables; // xbt_dynar_t xbt_dict_t types; // xbt_dict_t @@ -104,8 +113,9 @@ bool MC_object_info_is_privatized(mc_object_info_t info) */ XBT_INTERNAL void* MC_object_base_address(mc_object_info_t info); -XBT_INTERNAL mc_object_info_t MC_new_object_info(void); -XBT_INTERNAL mc_object_info_t MC_find_object_info(memory_map_t maps, const char* name, int executable); +XBT_INTERNAL std::shared_ptr MC_find_object_info( + std::vector const& maps, const char* name, int executable); + XBT_INTERNAL void MC_free_object_info(mc_object_info_t* p); XBT_INTERNAL dw_frame_t MC_file_object_info_find_function(mc_object_info_t info, const void *ip); @@ -159,6 +169,4 @@ struct s_mc_function_index_item { XBT_INTERNAL void mc_frame_free(dw_frame_t freme); -SG_END_DECL() - #endif