xbt_assert(waitpid(pid, &status, WAITPID_CHECKED_FLAGS) == pid && WIFSTOPPED(status) && WSTOPSIG(status) == SIGSTOP,
"Could not wait model-checked process");
- setup_ignore();
-
errno = 0;
#ifdef __linux__
ptrace(PTRACE_SETOPTIONS, pid, nullptr, PTRACE_O_TRACEEXIT);
errno);
}
-static constexpr auto ignored_local_variables = {
- std::make_pair("e", "*"),
- std::make_pair("_log_ev", "*"),
-
- /* Ignore local variable about time used for tracing */
- std::make_pair("start_time", "*"),
-};
-
-void ModelChecker::setup_ignore()
-{
- const RemoteProcessMemory& process = this->get_remote_process_memory();
- for (auto const& [var, frame] : ignored_local_variables)
- process.ignore_local_variable(var, frame);
-
- /* Static variable used for tracing */
- process.ignore_global_variable("counter");
-}
-
bool ModelChecker::handle_message(const char* buffer, ssize_t size)
{
s_mc_message_t base_message;
this->unw_addr_space = simgrid::mc::UnwindContext::createUnwindAddressSpace();
this->unw_underlying_addr_space = simgrid::unw::create_addr_space();
this->unw_underlying_context = simgrid::unw::create_context(this->unw_underlying_addr_space, this->pid_);
+
+ auto ignored_local_variables = {
+ std::make_pair("e", "*"),
+ std::make_pair("_log_ev", "*"),
+
+ /* Ignore local variable about time used for tracing */
+ std::make_pair("start_time", "*"),
+ };
+ for (auto const& [var, frame] : ignored_local_variables)
+ ignore_local_variable(var, frame);
+
+ ignore_global_variable("counter"); // Static variable used for tracing
}
RemoteProcessMemory::~RemoteProcessMemory()