[英]Clone system call exits after returning from its associated function
我在C中有一个克隆系统调用,它将调用子函数,执行子函数,然后返回父函数执行一些代码。 子级成功执行,控制权返回到clone语句。 然后,clone语句崩溃,程序执行终止。
我的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]
请帮助调试此问题。
我希望在调试子项本身时,父项实际上会执行printf语句。
为什么不只使用fork / wait?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.