"libm",
"libomp",
"libpapi",
+ "libpcre2-8",
"libpfm",
"libpgmath",
"libpthread",
/** Refresh the information about the process
*
- * Do not use direclty, this is used by the getters when appropriate
+ * Do not use directly, this is used by the getters when appropriate
* in order to have fresh data.
* */
void RemoteClient::refresh_malloc_info()
{
// First lookup the variable in the executable shared object.
// A global variable used directly by the executable code from a library
- // is reinstanciated in the executable memory .data/.bss.
+ // is reinstantiated in the executable memory .data/.bss.
// We need to look up the variable in the executable first.
if (this->binary_info) {
std::shared_ptr<simgrid::mc::ObjectInformation> const& info = this->binary_info;
void RemoteClient::read_variable(const char* name, void* target, size_t size) const
{
const simgrid::mc::Variable* var = this->find_variable(name);
+ xbt_assert(var, "Variable %s not found", name);
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 %zu, was %zu)", name,
while (1) {
ssize_t c = pread(this->memory_file, res.data() + off, res.size() - off, (off_t)address.address() + off);
- if (c == -1) {
- if (errno == EINTR)
- continue;
- else
- xbt_die("Could not read from from remote process");
- }
- if (c == 0)
- xbt_die("Could not read string from remote process");
+ if (c == -1 && errno == EINTR)
+ continue;
+ xbt_assert(c > 0, "Could not read string from remote process");
void* p = memchr(res.data() + off, '\0', c);
if (p)