*
* This gets 'processInfo' from '&processInfo->copy'. It upcasts in the
* sense that we could achieve the same thing by having SimixProcessInformation
*
* This gets 'processInfo' from '&processInfo->copy'. It upcasts in the
* sense that we could achieve the same thing by having SimixProcessInformation
this->read_variable("simix_global", &simix_global_p, sizeof(simix_global_p));
// simix_global = REMOTE(*simix_global)
this->read_variable("simix_global", &simix_global_p, sizeof(simix_global_p));
// simix_global = REMOTE(*simix_global)
// This is the address of the smx_process in the MCed process:
auto address = simgrid::mc::remote(req->issuer);
// This is the address of the smx_process in the MCed process:
auto address = simgrid::mc::remote(req->issuer);
/* HACK, Horrible hack to find the offset of the id in the simgrid::s4u::Host.
Offsetof is not supported for non-POD types but this should
/* HACK, Horrible hack to find the offset of the id in the simgrid::s4u::Host.
Offsetof is not supported for non-POD types but this should
// Read the simgrid::xbt::string in the MCed process:
simgrid::mc::SimixProcessInformation* info = process_info_cast(p);
// Read the simgrid::xbt::string in the MCed process:
simgrid::mc::SimixProcessInformation* info = process_info_cast(p);
char hostname[remote_string.len];
process->read_bytes(hostname, remote_string.len + 1, remote(remote_string.data));
info->hostname = mc_model_checker->get_host_name(hostname);
char hostname[remote_string.len];
process->read_bytes(hostname, remote_string.len + 1, remote(remote_string.data));
info->hostname = mc_model_checker->get_host_name(hostname);
const char* MC_smx_process_get_name(smx_process_t p)
{
simgrid::mc::Process* process = &mc_model_checker->process();
const char* MC_smx_process_get_name(smx_process_t p)
{
simgrid::mc::Process* process = &mc_model_checker->process();
- if (info->name.empty())
- info->name = process->read_string(p->name);
+ if (info->name.empty()) {
+ simgrid::xbt::string_data string_data = (simgrid::xbt::string_data&)p->name;
+ info->name = process->read_string(remote(string_data.data), string_data.len);
+ }
return smpi_process_count();
int res;
mc_model_checker->process().read_variable("process_count",
return smpi_process_count();
int res;
mc_model_checker->process().read_variable("process_count",