공유 라이브러리에 바인딩하기 위해 Python의 CTypes를 사용하고 있습니다. 이 라이브러리에 등록 된 콜백이 있는데, 라이브러리 자체에서 만드는 스레드의 컨텍스트에서 호출됩니다. 내 콜백 내에서 libc.malloc()
(libc = cdll.LoadLibrary('libc.so.6')
)을 호출하면 가짜 값을 반환한다는 것을 발견했습니다. 아니 NULL
,하지만 내가 그것을 역 참조하는 경우 segfault를 일으킬 주소.c 스레드에서 ctypes를 통해 호출 할 때 Malloc이 실패합니다.
다른 사람이 내게 어떤 일이 일어날 지에 대한 통찰력을 주거나, 아니면 같은 방법으로 malloc()
으로 전화를 걸 었는지 말해 줄 수 있습니까?