ldd и lsof показывают библиотеки, загруженные либо напрямую , либо на данный момент . Они не учитывают библиотеки, загруженные через dlopen
(или отброшенные через dlclose
). Вы можете получить более полное представление об этом, используя strace
, например,
strace -e trace=open myprogram
(поскольку dlopen
в конечном итоге вызывает open
) - хотя вы, конечно, можете иметь систему, использующую разные имена для 64-битных открытий ...).
Пример:
strace -e trace=open date
показывает мне это:
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib/x86_64-linux-gnu/librt.so.1", O_RDONLY) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
open("/etc/localtime", O_RDONLY) = 3
Wed Apr 12 04:56:32 EDT 2017
, из которого можно найти имена ".so", чтобы просто увидеть общие объекты.
xeyes
не знает, как встроить себя в другое окно, такое как панель задач - GNOME 2.x включил апплет geyes
в набор gnome-applets , который мог бы это сделать, что, вероятно, вы помните.