0
我在C中調用了一個子系統調用系統調用,執行該子系統,然後返回到父系以執行某些代碼。子成功執行並控制返回到克隆語句。克隆語句然後崩潰並且程序執行終止。克隆系統調用從其關聯的函數返回後退出
我的C代碼是:
void *stack;
stack=(void *)calloc(1,16384);
stack+=16384;
clone(NewFunc, stack, CLONE_VM|CLONE_FILES, NULL);
printf ("Control has returned from clone\n");
從我NewFunc功能控制返回後,程序執行停止,控制不轉移到下面的printf語句。這些是我在gdb中的錯誤消息:
(gdb)
clone() at ../sysdeps/unix/sysv/linux/x86_64/clone.S:117
117 movq %rax, %rdi
(gdb)
118 call HIDDEN_JUMPTARGET (_exit)
(gdb)
[Inferior 1 (process 16603) exited normally]
請幫助調試此問題。
你可以發佈更多的代碼..足以編譯? – Dmitri
'NewFunc()'看起來如何?它有什麼作用? – alk