내 프로그램이 라이브러리를 성공적으로로드했습니다 (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