diff --git a/public/TracyClient.cpp b/public/TracyClient.cpp index 4aa4647a..77f81a4a 100644 --- a/public/TracyClient.cpp +++ b/public/TracyClient.cpp @@ -28,6 +28,7 @@ #include "client/tracy_rpmalloc.cpp" #include "client/TracyDxt1.cpp" #include "client/TracyAlloc.cpp" +#include "client/TracyOverride.cpp" #if TRACY_HAS_CALLSTACK == 2 || TRACY_HAS_CALLSTACK == 3 || TRACY_HAS_CALLSTACK == 4 || TRACY_HAS_CALLSTACK == 6 # include "libbacktrace/alloc.cpp" diff --git a/public/client/TracyOverride.cpp b/public/client/TracyOverride.cpp new file mode 100644 index 00000000..591508a7 --- /dev/null +++ b/public/client/TracyOverride.cpp @@ -0,0 +1,26 @@ +#ifdef TRACY_ENABLE +# ifdef __linux__ +# include "TracyDebug.hpp" +# ifdef TRACY_VERBOSE +# include +# include +# endif + +extern "C" int dlclose( void* hnd ) +{ +#ifdef TRACY_VERBOSE + struct link_map* lm; + if( dlinfo( hnd, RTLD_DI_LINKMAP, &lm ) == 0 ) + { + TracyDebug( "Overriding dlclose for %s\n", lm->l_name ); + } + else + { + TracyDebug( "Overriding dlclose for unknown object (%s)\n", dlerror() ); + } +#endif + return 0; +} + +# endif +#endif