#define VERSION_RE "-[\\.0-9-]*$"
// List of library which memory segments are not considered:
-static const char *const filtered_libraries[] = {
+static const char* const filtered_libraries[] = {
#ifdef __linux__
- "ld",
+ "ld",
#elif defined __FreeBSD__
- "ld-elf",
- "ld-elf32",
- "libkvm", /* kernel data access library */
- "libprocstat", /* process and file information retrieval */
- "libthr", /* thread library */
- "libutil",
+ "ld-elf",
+ "ld-elf32",
+ "libkvm", /* kernel data access library */
+ "libprocstat", /* process and file information retrieval */
+ "libthr", /* thread library */
+ "libutil",
#endif
- "libasan", /* gcc sanitizers */
- "libargp", /* workarounds for glibc-less systems */
- "libtsan",
- "libubsan",
- "libbz2",
- "libboost_chrono",
- "libboost_context",
- "libboost_system",
- "libboost_thread",
- "libc",
- "libc++",
- "libcdt",
- "libcgraph",
- "libcxxrt",
- "libdl",
- "libdw",
- "libelf",
- "libevent",
- "libgcc_s",
- "liblua5.1",
- "liblua5.3",
- "liblzma",
- "libm",
- "libpthread",
- "librt",
- "libstdc++",
- "libunwind",
- "libunwind-x86_64",
- "libunwind-x86",
- "libunwind-ptrace",
- "libz"
-};
+ "libasan", /* gcc sanitizers */
+ "libargp", /* workarounds for glibc-less systems */
+ "libtsan",
+ "libubsan",
+ "libbz2",
+ "libboost_chrono",
+ "libboost_context",
+ "libboost_context-mt",
+ "libboost_system",
+ "libboost_thread",
+ "libc",
+ "libc++",
+ "libcdt",
+ "libcgraph",
+ "libcrypto",
+ "libcxxrt",
+ "libdl",
+ "libdw",
+ "libelf",
+ "libevent",
+ "libgcc_s",
+ "liblua5.1",
+ "liblua5.3",
+ "liblzma",
+ "libm",
+ "libpthread",
+ "librt",
+ "libstdc++",
+ "libunwind",
+ "libunwind-x86_64",
+ "libunwind-x86",
+ "libunwind-ptrace",
+ "libz"};
static bool is_simgrid_lib(const char* libname)
{
remote(std_heap_var->address),
simgrid::mc::ProcessIndexDisabled);
- this->smx_process_infos.clear();
- this->smx_old_process_infos.clear();
+ this->smx_actors_infos.clear();
+ this->smx_dead_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(
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));
}
}
if (pread_whole(this->memory_file, buffer, size, address.address()) < 0)
- xbt_die("Read from process %lli failed", (long long) this->pid_);
+ xbt_die("Read at %p from process %lli failed", (void*)address.address(), (long long)this->pid_);
return buffer;
}
/** Write data to a process memory
*
- * @param process the process
- * @param local local memory address (source)
- * @param remote target process memory address (target)
- * @param len data size
+ * @param buffer local memory address (source)
+ * @param len data size
+ * @param address target process memory address (target)
*/
void Process::write_bytes(const void* buffer, size_t len, RemotePtr<void> address)
{
info->remove_local_variable(var_name, frame_name);
}
-std::vector<simgrid::mc::SimixProcessInformation>& Process::simix_processes()
+std::vector<simgrid::mc::ActorInformation>& Process::actors()
{
this->refresh_simix();
- return smx_process_infos;
+ return smx_actors_infos;
}
-std::vector<simgrid::mc::SimixProcessInformation>& Process::old_simix_processes()
+std::vector<simgrid::mc::ActorInformation>& Process::dead_actors()
{
this->refresh_simix();
- return smx_old_process_infos;
+ return smx_dead_actors_infos;
}
void Process::dumpStack()