首页 文章

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

提问于
浏览
0

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

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

main - > func1 - > fork multiple func2,set alarm() - (alarm off off)> func3

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

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

有超过1000行代码,所以发布它们会相当多 .

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

1 回答

  • 0

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

相关问题