В письме от Thu, 13 Oct 2011 23:50:56 +0400, Cherevatenko Vsevolod
<iuaa...@gmail.com> сообщал:
и все
равно виснет и клиент и серверный процесс, собака :(
виснет при выгрузке, так ?
может быть если просмоьтреть в ldd удфку и сервер - увидим, что они гурзят
разные версиии одной и той же библиотеки ?
When compiled with gcc hello.c, an executable file named a.out is created.
Using the Linux command ldd a.out, which prints shared library
dependencies, the required shared libraries are:
libc.so.6 => /lib/libc.so.6 (0x4001d000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
The same dynamic linking loader is used to map a dll into the
application's memory after it is running. The application controls which
dynamic libraries are loaded and which functions in the libraries are
called by using Linux dynamic loader routines to perform the loading and
linking and to return the addresses of the required entry points.
может быть можно загнать сервер в отладчик и протрассировать все
подхходящие вызовы dlclose ?
strace скорее всего слишком много выдаст...
ну и в паскалевском RTL можно попробовать найти системный код выгрузки
SO-шки, ели он в принципе есть на Линуксе. в DDLках он есть...
Linux dll functions
Linux provides four library functions (dlopen, dlerror, dlsym, dlclose),
one include file (dlfcn.h), and two shared libraries (static library
libdl.a and dynamic library libdl.so) to support the dynamic linking
loader. The library function are:
dlopen opens and maps into memory the shared objects file and returns a
handle
dlsym return a pointer to the requested entry point
dlerror returns either NULL or a pointer to an ASCII string describing the
most recent error
dlclose closes the handle and unmaps the shared objects
http://www.ibm.com/developerworks/linux/library/l-dll/index.html
--
Написано в почтовом клиенте браузера Opera: http://www.opera.com/mail/