當我使用gfortran -g -fbacktrace -ffpe陷阱=無效,溢出編譯我的代碼,溢File.f90我得到以下錯誤:解釋回溯錯誤信息
Program received signal SIGFPE : Floating - Point exception - erroneous arithmetic operation.
Backtrace for this error:
#0 0x7f3da0768ed7 in ???
#1 0x7f3da076810d in ???
#2 0x7f3d9fe9b7ef in ???
#3 0x7f3da0230a3e in ???
我的問題是:如何能我解釋這些數字,並在「回溯這個錯誤:」之下。我如何使用此錯誤消息來幫助我找到錯誤?它們與某些有問題的代碼行有關嗎?如果是這樣,怎麼樣?
截至目前我知道我有一個錯誤的算術運算錯誤,但我不知道在哪裏和這個回溯錯誤消息根本沒有幫助。如果我僅使用gfortran File.f90進行編譯,則編譯期間或運行期間根本沒有錯誤消息。
我不知道FORTRAN,但是當我在其他語言中碰上離奇的消息是這樣的地方是不明確的地方錯誤正在發生,我將遍佈各地的'print'語句並查看最後一次打印的內容。這通常是在沒有有用位置的情況下縮小範圍的最佳方法。如果可用,調試器也是一個很好的選擇。 – Carcigenicate
@Carcigenicate我已經做到了。謝謝! –
調試時,我通常禁用優化('-O0'),這樣可以更容易地查看出錯的地方。 – chw21