X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d574355c7629f9f18b0667c69bfb0f1695b7b3b6..9698e575e77c1df3dcf1614a8404ee0e2ea55778:/src/mc/remote/RemoteClient.cpp diff --git a/src/mc/remote/RemoteClient.cpp b/src/mc/remote/RemoteClient.cpp index 4412b4fd0c..940d9f9b7e 100644 --- a/src/mc/remote/RemoteClient.cpp +++ b/src/mc/remote/RemoteClient.cpp @@ -72,6 +72,7 @@ static const std::vector filtered_libraries = { "libm", "libomp", "libpapi", + "libpcre2", "libpfm", "libpgmath", "libpthread", @@ -85,7 +86,30 @@ static const std::vector filtered_libraries = { "libunwind-ptrace", "libunwind-x86", "libunwind-x86_64", - "libz"}; + "libz", + "libkrb5support", /*odd behaviour on fedora rawhide ... remove these when fixed*/ + "libkeyutils", + "libunistring", + "libbrotlidec", + "liblber", + "libldap", + "libcom_err", + "libk5crypto", + "libkrb5", + "libgssapi_krb5", + "libssl", + "libpsl", + "libssh", + "libidn2", + "libnghttp2", + "libcurl", + "libdebuginfod", + "libbrotlicommon", + "libsasl2", + "libresolv", + "libcrypt", + "libselinux" +}; static bool is_simgrid_lib(const std::string& libname) { @@ -246,7 +270,7 @@ void RemoteClient::refresh_heap() /** 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() @@ -368,7 +392,7 @@ const simgrid::mc::Variable* RemoteClient::find_variable(const char* name) const { // 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 const& info = this->binary_info; @@ -389,6 +413,7 @@ const simgrid::mc::Variable* RemoteClient::find_variable(const char* name) const 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, @@ -406,14 +431,9 @@ std::string RemoteClient::read_string(RemotePtr address) const 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) @@ -425,8 +445,7 @@ std::string RemoteClient::read_string(RemotePtr address) const } } -const void* RemoteClient::read_bytes(void* buffer, std::size_t size, RemotePtr address, - ReadOptions /*options*/) const +void* RemoteClient::read_bytes(void* buffer, std::size_t size, RemotePtr address, ReadOptions /*options*/) const { if (pread_whole(this->memory_file, buffer, size, (size_t)address.address()) < 0) xbt_die("Read at %p from process %lli failed", (void*)address.address(), (long long)this->pid_);