2014-10-05 101 views
0

当我的程序到达结尾时,它打印出“睡眠X秒”然后执行睡眠(X)。但是,打印完成后,程序根本不会挂起并退出。使用ps我可以看到该进程仍在后台运行(尽管这可能只是一个小孩僵尸)。程序停止运行在终端上,但进程仍然存在

我的代码非常基本的层次:

主 - > FUNC1 - >叉多FUNC2,设置报警() - (警报响起)> FUNC3

使用printf和fflush,FUNC2从来没有得到进入但是在成功的子进程产生之后它会在func1中调用。

我试过使用GDB,但它似乎弄乱了,当我开始使用父/子与fork()之间的共享内存。

有超过1000行的代码,所以发布这一切将是相当多。

问题:任何人有关于如何调试的想法或对可能导致这种情况的想法有所了解? 注意:所有对exit()的调用都加上了perror()。

回答

0

问题是对共享内存的访问不正确。突然停止该程序没有任何错误。