Fortran 除錯
Microsoft Fortran PowerStation
按鍵 | 功能 |
---|---|
F5 | 執行 |
Shift+F5 | 重新執行 |
F8 | 逐步執行 |
F9 | 設定/解除中斷點 |
Shift+F9 | 觀看變數內容 |
Alt+F5 | 停止除錯,結束執行程式 |
註:在 Visual Fortran 5.0 中
按鍵 | 功能 |
---|---|
F8 | 無 |
F10 | 執行該行敘述 |
F11 | 逐步執行 |
一個程式常會因設計上的 bug 而造成無法執行或結果錯誤,因此,除錯便成為設計程式上重要的一環,有人說,發展一個程式,有 50% - 80% 的時間花在除錯上,由此可見除錯之重要了!
PowerStation 4.0 在發展環境介面上有提供除錯的工具,在使用上必須選擇 Win32 Debug 才能使用到 PowerStation 提供的功能,以下的文章均假定你是使用除錯模式執行程式。
註:你可以在左上角的下拉式視窗發現 Win32 Release 或 Win32 Debug ,若你僅使用 Win32 Debug 模式,則程式會因加入太多除錯用到的符號、旗標而拖慢程式執行的效率,建議在發展時採用 Debug 模式,當程式完全發展完成才用 Release 模式再編譯一次。
以前我們發現變數資料有問題時,會採用一個很古老的技巧:
Write(*,*) VarValue
將上述敘述加在程式各處以便查看變數值,而在 PowerStation 中可以採用逐步執行、隨時監視各變數,首先,改用:
F5 | 執行。從現在所在的程式碼執行到中斷點暫停。 |
Shift+F5 | 重新執行。從頭的程式碼執行到中斷點暫停。 |
F8 | 逐步執行。執行現在的程式碼一行。 |
來啟動程式,使用 F5 或 Shift+F5 需注意程式中要設中斷點,假設用 F8 啟動程式,你會注意到你的程式碼區會多一個黃色箭號,黃色箭號就是現在你的程式「將要」執行的程式碼,程式左下角會有一個 Variables 區,右下角會有一個 Watch 區,如果你找不到,可以用 View 選單分別把 Variables 及 Watch 區叫出來, Variables 區顯示所有變數的值, Watch 區只顯示你設定要監看的變數, Watch 區除可顯示你設定要監看的變數外,亦可監看計算式,設定監看的變數方法如下:
2.按 Shift+F9 。
3.若沒有要更改的,直接選擇 Add Watch 即可,但也可在 Expression 區更改成別的變數或是計算式。
如上, Watch 區即增加一個變數即時監看。
若發現你的程式變數值錯誤,但只要更改變數值後,就能繼續除錯,亦可在 Variables 及 Watch 區中直接修改其值繼續執行,或在 Add Watch 中修改。另外亦可將滑鼠停在該變數上約一秒,亦會顯示該變數的值。
但每次都按 F8 逐步執行遇到大程式可能會瘋掉,所以就可以利用中斷點來協助執行。例如說前 1000 行都沒問題,那就可以在第 1001 行設定中斷執行,則程式會在第 1001 行執行前先停下來,你可以改用 F8 逐步執行,或監看變數是否正確再利用 F5 繼續執行。設定中斷點只需要在欲中斷的那行按 F9 ,設定完成後會在程式碼區顯示棕色圓點表示。
另外提到有關於陣列的即時監看部分,如果在反白的時候,只選擇陣列名 (Array) ,而不含陣列引數 (Array(3)) ,則會將所有的陣列完全納入監看區,用可展開的小十字顯示,可展開亦可收納。
最後,若發現程式執行錯誤,不想繼續執行,可用:
Alt+F5 停止除錯,結束執行程式。
結束程式執行。
註: 設定錯誤中斷顯示 (Win32 Debug):在 Build Menu 下 -> Settings -> Fortran -> Fortran Language 將 Extended Bounds and Error Checking 選項打勾