#include <string>
#include <string_view>
-using simgrid::mc::remote;
-
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_process, mc, "MC process information");
-namespace simgrid {
-namespace mc {
+namespace simgrid::mc {
// ***** Helper stuff
RemoteProcess::RemoteProcess(pid_t pid) : AddressSpace(this), pid_(pid), running_(true) {}
-void RemoteProcess::init(xbt_mheap_t mmalloc_default_mdp, unsigned long* maxpid, xbt_dynar_t actors)
+void RemoteProcess::init(xbt_mheap_t mmalloc_default_mdp, unsigned long* maxpid)
{
this->heap_address = remote(mmalloc_default_mdp);
this->maxpid_addr_ = remote(maxpid);
- this->actors_addr_ = remote(actors);
this->memory_map_ = simgrid::xbt::get_memory_map(this->pid_);
this->init_memory_map_info();
xbt_assert(fd >= 0, "Could not open file for process virtual address space");
this->memory_file = fd;
- this->smx_actors_infos.clear();
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_);
void RemoteProcess::refresh_heap()
{
// Read/dereference/refresh the std_heap pointer:
- if (not this->heap)
- this->heap = std::make_unique<s_xbt_mheap_t>();
this->read(this->heap.get(), this->heap_address);
this->cache_flags_ |= RemoteProcess::cache_heap;
}
this->read_bytes(this->heap_info.data(), count * sizeof(malloc_info), remote(this->heap->heapinfo));
this->cache_flags_ |= RemoteProcess::cache_malloc;
}
+std::size_t RemoteProcess::get_remote_heap_bytes()
+{
+ return mmalloc_get_bytes_used_remote(get_heap()->heaplimit, get_malloc_info());
+}
/** @brief Finds the range of the different memory segments and binary paths */
void RemoteProcess::init_memory_map_info()
info->remove_local_variable(var_name, frame_name);
}
-std::vector<simgrid::mc::ActorInformation>& RemoteProcess::actors()
-{
- this->refresh_simix();
- return smx_actors_infos;
-}
-
void RemoteProcess::dump_stack() const
{
unw_addr_space_t as = unw_create_addr_space(&_UPT_accessors, BYTE_ORDER);
_UPT_destroy(context);
unw_destroy_addr_space(as);
}
-} // namespace mc
-} // namespace simgrid
+} // namespace simgrid::mc