Моя программа успешно загрузила библиотеку (dlopen (..., RTLD_GLOBAL | RTLD_NOW);).Внутри библиотеки у меня есть одна функция, которая вызывает функцию malloc ().Когда я пытаюсь выделить небольшой фрагмент памяти (например, 120 байт), функция работает хорошо.Но если я попытаюсь получить больше (например, 1024 байта), мое приложение умрет с длинным отчетом вроде:
*** glibc detected *** /home/darkamateur/NetBeansProjects/PureServer/dist/Debug/GNU-Linux-x86/pureserver: corrupted double-linked list: 0x00000000006267d0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x731fd)[0x7ffff76d81fd]
/lib64/libc.so.6(+0x7363d)[0x7ffff76d863d]
/lib64/libc.so.6(+0x75994)[0x7ffff76da994]
/lib64/libc.so.6(__libc_malloc+0x62)[0x7ffff76dcfc2]
./libs/omps.blob(systemRun+0x12)[0x7ffff71cd9be]
/home/darkamateur/NetBeansProjects/PureServer/dist/Debug/GNU-Linux-x86/pureserver[0x401f48]
/lib64/libc.so.6(__libc_start_main+0xec)[0x7ffff7683d4c]
/home/darkamateur/NetBeansProjects/PureServer/dist/Debug/GNU-Linux-x86/pureserver[0x400fa9]
Нет обмена данными, общих переменных, потоков и т. Д.
Есть ли некоторые различия между распределением памяти в основном приложении и его динамическими библиотеками?