/** Hostname (owned by `mc_model_checker->hostnames_`) */
const xbt::string* hostname = nullptr;
- std::string name;
+ xbt::string name;
void clear()
{
public:
explicit RemoteProcess(pid_t pid);
~RemoteProcess() override;
- void init();
+ void init(xbt_mheap_t mmalloc_default_mdp, void* maxpid, void* actors, void* dead_actors);
RemoteProcess(RemoteProcess const&) = delete;
RemoteProcess(RemoteProcess&&) = delete;
/* ***************** */
/* SIMIX-related API */
/* ***************** */
+private:
+ // Cache the address of the variables we read directly in the memory of remote
+ void* maxpid_addr_;
+ void* actors_addr_;
+ void* dead_actors_addr_;
+public:
std::vector<ActorInformation>& actors();
std::vector<ActorInformation>& dead_actors();
}
unsigned long get_maxpid() const;
+ void get_actor_vectors(RemotePtr<s_xbt_dynar_t>& actors, RemotePtr<s_xbt_dynar_t>& dead_actors);
void dump_stack() const;
public:
/** Address of the heap structure in the MCed process. */
- void* heap_address;
+ RemotePtr<s_xbt_mheap_t> heap_address;
/** Copy of the heap structure of the process
*