2014-10-05 99 views
0

當我的程序到達結尾時,它打印出「睡眠X秒」然後執行睡眠(X)。但是,打印完成後,程序根本不會掛起並退出。使用ps我可以看到該進程仍在後臺運行(儘管這可能只是一個小孩殭屍)。程序停止運行在終端上,但進程仍然存在

我的代碼非常基本的層次:

主 - > FUNC1 - >叉多FUNC2,設置報警() - (警報響起)> FUNC3

使用printf和fflush,FUNC2從來沒有得到進入但是在成功的子進程產生之後它會在func1中調用。

我試過使用GDB,但它似乎弄亂了,當我開始使用父/子與fork()之間的共享內存。

有超過1000行的代碼,所以發佈這一切將是相當多。

問題:任何人有關於如何調試的想法或對可能導致這種情況的想法有所瞭解? 注意:所有對exit()的調用都加上了perror()。

回答

0

問題是對共享內存的訪問不正確。突然停止該程序沒有任何錯誤。