X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/50683b2a05805cc9f74a47907405da062ce4feef..2738598c9f876339ee6f8b3fc217984b7b837539:/src/xbt/memory_map.cpp diff --git a/src/xbt/memory_map.cpp b/src/xbt/memory_map.cpp index 567611b81b..9dd422f721 100644 --- a/src/xbt/memory_map.cpp +++ b/src/xbt/memory_map.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2008-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2008-2019. 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. */ @@ -13,13 +13,13 @@ #include #if defined __APPLE__ +# include # include # include # include # include # include # include -# include # if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050 # define mach_vm_address_t vm_address_t # define mach_vm_size_t vm_size_t @@ -145,11 +145,9 @@ XBT_PRIVATE std::vector get_memory_map(pid_t pid) memreg.inode = 0; /* Path */ - char path[MAXPATHLEN]; - int pathlen; - pathlen = proc_regionfilename(pid, address, path, sizeof(path)); - path[pathlen] = '\0'; - memreg.pathname = path; + Dl_info dlinfo; + if (dladdr(reinterpret_cast(address), &dlinfo)) + memreg.pathname = dlinfo.dli_fname; XBT_DEBUG("Region: %016" PRIx64 "-%016" PRIx64 " | %c%c%c | %s", memreg.start_addr, memreg.end_addr, (memreg.prot & PROT_READ) ? 'r' : '-', (memreg.prot & PROT_WRITE) ? 'w' : '-',