我的程序成功加載了一個庫(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]
沒有任何數據交換,共享變量,線程等。
在主應用程序和動態庫中的內存分配之間是否存在一些不同?
我懷疑你在搗毀'malloc'使用的內部簿記。 – cnicutar