Turbo C程序的調試
一個程序設計好了以後,通常會有一些錯誤,查找和修改程序中的錯誤是令人頭痛的事。Turbo C集成開發環境提供了一調試裝置,使得這一個工作容易了許多,程序調試達到了編譯和運行級。
一、TC消息窗口
使用TC最好的理由之一是它允許用戶修改語法錯誤(編譯時)和評估編譯器給出的警告。TC將編譯器和連接器發出的消息收集到一緩沖區中,然後在消息窗口中顯示,這樣在訪問源代碼的同時,還能一下看到這些消息。
現將上面的HELLO.C制造一點語法錯誤,將第一行包含語句的#去掉,再去掉第五行printf語句中的後引號。現在程序看上去是這樣的:
include <stdio.h>
main()
{
printf("Hello, world\n);
}
按CTRL+F9重新編譯之。編譯窗口將顯示有多少錯誤和警告:應為兩個錯誤,0個警告。
當看見編譯窗口中的Press anykey提示時,按空格鍵,消息窗口立刻被激活,亮條出現在第一個錯誤或警告上,這時編輯窗口中也會有一亮條---它標志著編譯器給出的錯誤或警告在源代碼中的相應位置。
這時可用光標鍵將消息窗口中的亮條上下移動,注意到編輯窗口中的亮條也隨著跟蹤源代碼中錯誤發生的位置。如果將亮條置於"compile"上,則編輯器顯示文件的最後位置。
如果消息窗口太長看不見,可用左、右光標水平滾動消息,為了一次能夠多看點信息,可按F5放大消息窗口。放大後,編輯窗口不可見了,因此不進行錯誤跟蹤。現在,保持分屏模式。
為了改正錯誤,將消息窗口中的亮條置於第一個錯誤消息上,回車,光標移到編輯窗口中錯誤產生處,注意,編輯器狀態給出所選消息(這在放大模式下是有用的)改正之。(將第一行拿走的#重新寫上)。
當不只一個錯誤時,可用兩種方法來修改下一錯誤。
第一種方法和前面一樣,按F6回到消息窗口選擇想修改的下一條消息。
第二種方法不用回到消息窗口,只要按Alt+F8,編譯器就會將光標移至消息窗口中列的下一個錯誤。按Alt+F7可移至前一個錯誤。
這兩種方法各有長短,視情況而定。有時源代碼中一個愚蠢的錯誤把編譯弄糊塗了,產生好多消息,這時選擇修改第一條消息就使得其余的一些錯誤消息沒有什麼意義了,這種情況發生時,使用方法一會方便些,一修改完第一個錯誤之後回到消息窗口,再滾動到下一個有意義的消息上,選擇之。在別的情況下,按Alt+F8會方便得多。
記住,Alt+F7和Alt+F8是熱鍵,TC中無論何時均起作用。因此在消息窗口中按Alt+F8得到的不是當前亮行消息,而是下一個消息(按Enter選擇當前消息)。但如果沒別的編譯消息,Alt+F8就不起作用了。
注:可以如此法選擇連接消息,但它們不跟蹤源文件。在修改語法錯誤的過程當中,經常需要增加、刪除正文,編輯器是記住的,依然能正確定位錯誤位置。沒有必要記住行號和增加、刪除的正文行。