Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
1 a.m. lazy commit. Plenty of new libs appeared on our radar on fedora after an updat...
[simgrid.git] / src / mc / remote / RemoteClient.cpp
index 4412b4f..940d9f9 100644 (file)
@@ -72,6 +72,7 @@ static const std::vector<std::string> filtered_libraries = {
     "libm",
     "libomp",
     "libpapi",
+    "libpcre2",
     "libpfm",
     "libpgmath",
     "libpthread",
@@ -85,7 +86,30 @@ static const std::vector<std::string> 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<simgrid::mc::ObjectInformation> 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<char> 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<char> address) const
   }
 }
 
-const void* RemoteClient::read_bytes(void* buffer, std::size_t size, RemotePtr<void> address,
-                                     ReadOptions /*options*/) const
+void* RemoteClient::read_bytes(void* buffer, std::size_t size, RemotePtr<void> 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_);