我有基於IO::Async
的Perl程序,它有時會在幾小時/幾天後退出,而不會打印任何錯誤消息。 dmesg
或/var/log
也沒有。 STDOUT
/STDERR
都是autoflush(1)
,所以數據不應該在緩衝區中丟失。它實際上並沒有從IO::Async::Loop->loop_forever
退出 - 我只是爲了確保永遠不會被觸發而放在那裏。如何調試突然退出的Perl程序?
現在,一種方法是繼續用更多的印刷品來刻畫程序,並希望其中一個給我一些線索。有沒有更好的方法來獲取信息在程序中發生了什麼,使程序退出/靜默崩潰?
我不明白爲什麼這應該是社區wiki'd。 – Zaid 2010-06-09 06:30:26