程序停止在终端上运行但进程仍然存在

时间:2014-10-05 22:17:24

标签: c gdb fork

当我的程序到达结束时,它打印出"睡眠X秒"然后执行睡眠(X)。但是,在打印发生后,程序根本不会挂起并退出。使用ps我可以看到该进程仍然在后台运行(虽然这可能只是一个儿童僵尸)。

我的代码的基本层次结构:

主要 - > func1 - > fork multiple func2,set alarm() - (alarm off off)> FUNC3

使用printf和fflush,func2永远不会被输入,但是在生成成功的子进程后在func1中调用它。

我尝试过使用gdb但是当我开始在父/子与fork()之间使用共享内存时,它似乎搞得一团糟。

超过1000行代码,所以发布所有代码都会相当多。

问题:有任何想法如何调试或了解可能导致此问题的人? 注意:对exit()的所有调用都与之前的perror()耦合。

1 个答案:

答案 0 :(得分:0)

问题是对共享内存的错误访问。突然停止了程序,没有任何错误。

相关问题