我有一個克隆功能的問題,因爲它在第9次調用它後給我一個分段錯誤。程序工作正常,直到我開始使用9 +線程。第9次通話克隆產生seg故障
這裏是我的電話,克隆:
void **child_stack = (void **) malloc(SIGSTKSZ);
clone (func,
(child_stack + SIGSTKSZ),
CLONE_VM | CLONE_FILES | CLONE_PARENT_SETTID,
(void *) argsForFunc,
&pid);
我使用克隆,而不是任何更高級別的線程庫像並行線程。
如果有幫助,這是使用GDB時,我得到的錯誤:以上
Program received signal SIGSEGV, Segmentation fault.
clone() at ../sysdeps/unix/sysv/linux/x86_64/clone.S:66
66 movq %rcx,8(%rsi)
Current language: auto; currently asm
爲什麼void ** child_stack,而不僅僅是void * child_stack? – TJD 2012-01-27 19:16:29
爲什麼使用clone來代替pthread或其他線程庫? – 2012-01-28 12:52:33