X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e1a5484101efbff9c8d982a0c4650f7953ee7e2f..5afd75483d80ccf2c678e50f82613b3556c7ca97:/src/simix/libsmx.cpp diff --git a/src/simix/libsmx.cpp b/src/simix/libsmx.cpp index 8203c2fd5e..2744ea4336 100644 --- a/src/simix/libsmx.cpp +++ b/src/simix/libsmx.cpp @@ -25,6 +25,10 @@ #include "popping_bodies.cpp" +#include +#include +#include + /** * @ingroup simix_host_management * @brief Waits for the completion of an execution synchro and destroy it. @@ -369,9 +373,18 @@ int simcall_mc_random(int min, int max) // XBT_ATTRIB_DEPRECATD_v331 /* ************************************************************************** */ /** @brief returns a printable string representing a simcall */ -const char* SIMIX_simcall_name(Simcall kind) -{ - return simcall_names[static_cast(kind)]; +const char* SIMIX_simcall_name(const s_smx_simcall& simcall) +{ + if (simcall.observer_ != nullptr) { + static std::string name; + name = boost::core::demangle(typeid(*simcall.observer_).name()); + const char* cname = name.c_str(); + if (name.rfind("simgrid::kernel::", 0) == 0) + cname += 17; // strip prefix "simgrid::kernel::" + return cname; + } else { + return simcall_names[static_cast(simcall.call_)]; + } } namespace simgrid {