X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a07cd49f9305465488d9703ac069c7ee236ba3ee..bad659ba49e277946de6d31462fdceffe908b88e:/src/mc/remote/RemoteClient.cpp diff --git a/src/mc/remote/RemoteClient.cpp b/src/mc/remote/RemoteClient.cpp index 0172d7064e..f137cb2607 100644 --- a/src/mc/remote/RemoteClient.cpp +++ b/src/mc/remote/RemoteClient.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2014-2018. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -35,8 +35,8 @@ #include #include "src/mc/mc_smx.hpp" -#include "src/mc/mc_snapshot.hpp" #include "src/mc/mc_unw.hpp" +#include "src/mc/sosp/mc_snapshot.hpp" #include "src/mc/AddressSpace.hpp" #include "src/mc/ObjectInformation.hpp" @@ -74,6 +74,8 @@ static const std::vector filtered_libraries = { "libboost_context-mt", "libboost_system", "libboost_thread", + "libboost_timer", + "libboost_unit_test_framework", "libc", "libc++", "libcdt", @@ -83,15 +85,25 @@ static const std::vector filtered_libraries = { "libdl", "libdw", "libelf", + "libexecinfo", + "libflang", "libevent", "libgcc_s", + "libgfortran", + "libimf", + "libintlc", + "libirng", "liblua5.1", "liblua5.3", "liblzma", "libm", + "libpapi", + "libpfm", "libpthread", + "libquadmath", "librt", "libstdc++", + "libsvml", "libunwind", "libunwind-x86_64", "libunwind-x86", @@ -110,19 +122,18 @@ static bool is_filtered_lib(const std::string& libname) static std::string get_lib_name(const std::string& pathname) { - constexpr char digits[] = ".0123456789"; - std::string map_basename = simgrid::xbt::Path(pathname).getBasename(); + std::string map_basename = simgrid::xbt::Path(pathname).get_base_name(); std::string libname; size_t pos = map_basename.rfind(".so"); - if (pos != std::string::npos && map_basename.find_first_not_of(digits, pos + 3) == std::string::npos) { - // strip the extension (matching regex "\.so[.0-9]*$") + if (pos != std::string::npos) { + // strip the extension (matching regex "\.so.*$") libname.assign(map_basename, 0, pos); // strip the version suffix (matching regex "-[.0-9-]*$") while (true) { pos = libname.rfind('-'); - if (pos == std::string::npos || libname.find_first_not_of(digits, pos + 1) != std::string::npos) + if (pos == std::string::npos || libname.find_first_not_of(".0123456789", pos + 1) != std::string::npos) break; libname.erase(pos); } @@ -443,7 +454,7 @@ const void* RemoteClient::read_bytes(void* buffer, std::size_t size, RemotePtr const& info = this->find_object_info_rw((void*)address.address()); + std::shared_ptr const& info = this->find_object_info_rw(address); // Segment overlap is not handled. #if HAVE_SMPI if (info.get() && this->privatized(*info)) {