Skip to content

Commit 93641de

Browse files
authored
logging full path of loaded library in traces (#236)
Signed-off-by: Łukasz Ślusarczyk <[email protected]>
1 parent 3daaf31 commit 93641de

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

source/inc/ze_util.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ inline void getLastErrorString(std::string &errorValue) {
3939
# define GET_FUNCTION_PTR(LIB, FUNC_NAME) GetProcAddress(LIB, FUNC_NAME)
4040
# define string_copy_s strncpy_s
4141
#else
42+
# include <link.h>
4243
# include <dlfcn.h>
4344
# define HMODULE void*
4445
# define MAKE_LIBRARY_NAME(NAME, VERSION) "lib" NAME ".so." VERSION

source/loader/ze_loader.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -439,12 +439,19 @@ namespace loader
439439
for( auto name : discoveredDrivers )
440440
{
441441
auto handle = LOAD_DRIVER_LIBRARY( name.c_str() );
442-
if (debugTraceEnabled) {
443-
std::string message = "Loading Driver " + name;
444-
debug_trace_message(message, "");
445-
}
446442
if( NULL != handle )
447443
{
444+
if (debugTraceEnabled) {
445+
std::string message = "Loading Driver " + name + " succeeded";
446+
#ifndef _WIN32
447+
// TODO: implement same message for windows, move dlinfo to ze_util.h as a macro
448+
struct link_map *dlinfo_map;
449+
if (dlinfo(handle, RTLD_DI_LINKMAP, &dlinfo_map) == 0) {
450+
message += " from: " + std::string(dlinfo_map->l_name);
451+
}
452+
#endif
453+
debug_trace_message(message, "");
454+
}
448455
allDrivers.emplace_back();
449456
allDrivers.rbegin()->handle = handle;
450457
allDrivers.rbegin()->name = name;

0 commit comments

Comments
 (0)