[mc] Switch to C++ The code in just renamed in .cpp files and some adaptation are made (this is still C style code).
[mc] Read context from remote process in MC_take_snapshot_stacks()
[mc] Cross-process MC/safety implementation
[mc] Do not take NULL to mean 'the current address space' in dwarf expressions
[mc] Read smpi_loaded_page from MCed in MC_process_init()
[mc] Read smpi_privatisation_regions from MCed in MC_region_new_privatized()
[mc] mc_checkpoint.c, remove some TODOs
[mc] Read smpi_process_count() from remote process
[mc] Read host name from remote process
[mc] Cross-process access to smx_process and simcall Process and host names are not handled yet.
Merge master into mc-process
[mc] Make an option for file descriptor snapshot (off by default) This option is currently not supported in client/server mode.
(wip) Move the MCed public API in the same file
[mc] Implement remote support for MC_ignore
[mc] Remote unwinding support The contexts are still read directly from the current process memory however.
[mc] Make a copy of the libunwind context when snapshoting the stacks The libunwind cursors used in `mc_snapshot_stack_t` were referencing the real/live libunwind contexts: this is wrong because those contexts change with the simulated application. Instead, we need to take a copy of the context.
[mc] Add some FIXMEs for cross-process support
[mc] Cross-process support for MC_ignore
[mc] Implements privatization support for MC_process_read This is currently needed for cross-process MC in order to read the heap state.
[mc] Abstract the process and a snapshot types with a address_space superclass Add a `address_space`, superclass of `process` and `snapshot`. In order to do this, the contract of MC_process_read and MC_snapshot_read has been uniformized: * the order of arguments has been harmonized; * a new flag MC_ADDRESS_SPACE_READ_FLAGS_LAZY is used to avoid copy when the data is in the current memory; * MC_NO_PROCESS_INDEX has been renamed into MC_PROCESS_INDEX_MISSING; * MC_ANY_PROCESS_INDEX has been renamed into MC_PROCESS_INDEX_ANY; * MC_PROCESS_INDEX_DISABLED is used to access the raw address space (without privatisation support); * `const void*` is used instead of `void*` when it possible. Soem cleanup things are still to be done: * remove special NULL handling; * add support for SMPI privatization in the process object.