錯誤訊息判讀與除錯

 

Points to remeber :
錯誤排除的要點:

Always READ error messages carefully. If you do not understand those error messages, ask for help first. For example, you can ask lecturer or teaching assistant, or even copy/paste the error message to do a Google search
一定要仔細地閱讀錯誤訊息,如果你不了解該錯誤訊息在講些什麼,先找尋幫助。例如,你可以問老師或助教,或甚至到 Google 去搜尋那些您不懂的辭。

Try to solve first error message first. It is possible that the number of error will largely reduce when you resolve the error that appear first. Makeing the follow-on correction much easier.
總是優先解決編譯器指出的第一個錯誤,往往解決了前面的錯誤後,原本在後面的錯誤就少很多甚至完全沒有了。

 

Commonly seen error messages :
常見的錯誤訊息:

Syntax errors :
語法錯誤:

The error message will diplay the line which compiler think there is an error.

 

Compiling / linking error :
編譯/鏈結錯誤:

Can not find "library" or "reference"
無法找到程式中指定要用的函式或副程式

可能原因之一:程式中呼叫了某個外部(非 Fortran 內建)的副程式或函式,而該函式寫錯了名稱。

可能原因之二:下編譯指令時,函式庫的名稱或路徑錯誤以致沒鏈結到。

 

 

Compiler "internal error" : this is a compiler's problem, not that of you or your program. You should use a newer version of compiler or change to a different compiler.

 

Runtime errors :
執行的錯誤:

Core dump :

Segmentation fault :
區段錯誤:

常發生於記憶體的空間位置塞不下要貯存的資料而導致程式中斷。例如,把一個一百格的陣列要寫給九十格的陣列。

Program crash :

 

執行結果可能產生的錯誤:

NaN:

NaN 是Not A Numer 的意思,該變數被寫入一個不是數字的東西,或是貯存了數字被除以零之後的結果)。它通常會出現在輸出到檔案或螢幕的數據中。

 

除錯(Debuging

設定中間查核點(check point)

印出中問過程的程式位置資訊或變數的結果。

使用 gdb

編譯器與除錯器 小節。