繁体   English   中英

从关联的函数返回后,克隆系统调用退出

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM