X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e7c9e5f18448d9485d71ab58b77a4f9cb62a4bb4..208547c8a823a2df7a6e945697aacd2a7a38cbaf:/src/mc/mc_process.h diff --git a/src/mc/mc_process.h b/src/mc/mc_process.h index 9825fed414..f5fd69f976 100644 --- a/src/mc/mc_process.h +++ b/src/mc/mc_process.h @@ -8,6 +8,7 @@ #define MC_PROCESS_H #include +#include #include "simgrid_config.h" @@ -25,6 +26,8 @@ SG_BEGIN_DECL() +int MC_process_vm_open(pid_t pid, int flags); + typedef enum { MC_PROCESS_NO_FLAG = 0, MC_PROCESS_SELF_FLAG = 1, @@ -75,8 +78,31 @@ struct s_mc_process { * use `MC_process_get_malloc_info` in order to use it. */ malloc_info* heap_info; + + // ***** Libunwind-data + + /** Full-featured MC-aware libunwind address space for the process + * + * This address space is using a mc_unw_context_t + * (with mc_process_t/mc_address_space_t and unw_context_t). + */ + unw_addr_space_t unw_addr_space; + + /** Underlying libunwind addres-space + * + * The `find_proc_info`, `put_unwind_info`, `get_dyn_info_list_addr` + * operations of the native MC address space is currently delegated + * to this address space (either the local or a ptrace unwinder). + */ + unw_addr_space_t unw_underlying_addr_space; + + /** The corresponding context + */ + void* unw_underlying_context; }; +bool MC_is_process(mc_address_space_t p); + void MC_process_init(mc_process_t process, pid_t pid); void MC_process_clear(mc_process_t process);