void Process::read_variable(const char* name, void* target, size_t size) const
{
simgrid::mc::Variable* var = this->find_variable(name);
- if (!var->address)
- xbt_die("No simple location for this variable");
- if (!var->type->full_type)
- xbt_die("Partial type for %s, cannot check size", name);
- if ((size_t) var->type->full_type->byte_size != size)
- xbt_die("Unexpected size for %s (expected %zi, was %zi)",
- name, size, (size_t) var->type->full_type->byte_size);
+ xbt_assert(var->address, "No simple location for this variable");
+ xbt_assert(var->type->full_type, "Partial type for %s, cannot check size", name);
+ xbt_assert((size_t)var->type->full_type->byte_size == size, "Unexpected size for %s (expected %zi, was %zi)", name,
+ size, (size_t)var->type->full_type->byte_size);
this->read_bytes(target, size, remote(var->address));
}
simgrid::mc::Process* mc_process = &mc_model_checker->process();
- std::shared_ptr<simgrid::mc::Snapshot> snapshot =
- std::make_shared<simgrid::mc::Snapshot>(mc_process);
-
- snapshot->num_state = num_state;
+ std::shared_ptr<simgrid::mc::Snapshot> snapshot = std::make_shared<simgrid::mc::Snapshot>(mc_process, num_state);
for (auto& p : mc_model_checker->process().simix_processes())
snapshot->enabled_processes.insert(p.copy.getBuffer()->pid);
namespace simgrid {
namespace mc {
-Snapshot::Snapshot(Process* process) :
- AddressSpace(process),
- num_state(0),
- heap_bytes_used(0),
- enabled_processes(),
- privatization_index(0),
- hash(0)
+Snapshot::Snapshot(Process* process, int _num_state)
+ : AddressSpace(process)
+ , num_state(_num_state)
+ , heap_bytes_used(0)
+ , enabled_processes()
+ , privatization_index(0)
+ , hash(0)
{
}
class XBT_PRIVATE Snapshot final : public AddressSpace {
public:
- Snapshot(Process* process);
+ Snapshot(Process* process, int num_state);
~Snapshot();
const void* read_bytes(void* buffer, std::size_t size,
RemotePtr<void> address, int process_index = ProcessIndexAny,