2015-10-23 58 views
-2

我用名爲alltest.o的可執行文件製作了一個程序,並遇到了一個基本問題。所有測試都會運行另一個程序10000次,以檢查是否存在分段錯誤或斷言(此代碼旨在幫助查找多線程的錯誤)。我在linux上使用這個命令運行了代碼「./alltext.o> outut.txt」,但seg fault和assert從未出現在output.txt中。當我運行「./alltext.o」而不是運行到output.txt時,偶爾會出現錯誤。無論如何,要讓錯誤在output.txt中寫入自己嗎?如何使用linux收集錯誤

+0

似乎只要使用調試程序並逐步執行程序來查找崩潰發生的位置會更容易。 – MrEricSir

+1

重定向標準錯誤。 './alltext.o> output.txt 2>&1' –

回答

1

請記住,Linux中的重定向將stdout重定向到文件。我猜在這種情況下,你的錯誤是通過stderr報告的。將stderr重定向到文件的正確重定向將是「./alltext.o 2> output.txt」。這隻會引導錯誤消息。

您也可以使用「./alltext.o &> output.txt」將stdout和stderr重定向到該文件。有很多你可以使用的組合。

我建議閱讀更多關於重定向。 Here is a link to a short explanation.