程式的除錯

2021-09-07 04:34:01 字數 823 閱讀 6951

三類:

編譯時錯誤

編譯器只能翻譯語法正確的程式,否則將導致編譯失敗,無法生成可執行檔案。對於自然語言來說,一點語法錯誤不是很嚴重的問題,因為我們仍然可以讀懂句子。而編譯器就沒那麼寬容了,只要有哪怕乙個很小的語法錯誤,編譯器就會輸出一條錯誤提示資訊然後罷工,你就得不到你想要的結果。雖然大部分情況下編譯器給出的錯誤提示資訊就是你出錯的**行,但也有個別時候編譯器給出的錯誤提示資訊幫助不大,甚至會誤導你。在開始學習程式設計的前幾個星期,你可能會花大量的時間來糾正語法錯誤。等到有了一些經驗之後,還是會犯這樣的錯誤,不過會少得多,而且你能更快地發現錯誤原因。等到經驗更豐富之後你就會覺得,語法錯誤是最簡單最低階的錯誤,編譯器的錯誤提示也就那麼幾種,即使錯誤提示是有誤導的也能夠立刻找出真正的錯誤原因是什麼。相比下面兩種錯誤,語法錯誤解決起來要容易得多。

執行時錯誤

編譯器檢查不出這類錯誤,仍然可以生成可執行檔案,但在執行時會出錯而導致程式崩潰。對於我們接下來的幾章將編寫的簡單程式來說,執行時錯誤很少見,到了後面的章節你會遇到越來越多的執行時錯誤。讀者在以後的學習中要時刻注意區分編譯時和執行時(run-time)這兩個概念,不僅在除錯時需要區分這兩個概念,在學習c語言的很多語法時都需要區分這兩個概念,有些事情在編譯時做,有些事情則在執行時做。

邏輯錯誤和語義錯誤

第三類錯誤是邏輯錯誤和語義錯誤。如果程式裡有邏輯錯誤,編譯和執行都會很順利,看上去也不產生任何錯誤資訊,但是程式沒有幹它該幹的事情,而是幹了別的事情。當然不管怎麼樣,計算機只會按你寫的程式去做,問題在於你寫的程式不是你真正想要的,這意味著程式的意思(即語義)是錯的。找到邏輯錯誤在哪需要十分清醒的頭腦,要通過觀察程式的輸出回過頭來判斷它到底在做什麼。

python程式的除錯

python程式在執行時內部是什麼樣子的呢?這個問題挺深入的,在這學習一下python程式是怎樣除錯的。示例程式1 直接執行這個程式,會發現提示以下錯誤 錯誤發生在functionb中,為了檢視情況,在這裡下乙個斷點 再次執行直接進入pdb介面,並停在斷點處 pdb的介面和python很類似,可以通...

matlab 程式除錯

在程式除錯時,程式執行中變數的值是乙個重要的線索。因此,檢視變數值是程式除錯的重要線索,由於在函式呼叫時只返回最後的輸出引數,而不返回中間變數,因此,可以選擇下面的方法檢視程式執行中的變數值。1 通過分析,將可能出錯的語句後面的分號刪除,將結果顯示在命令視窗中,與預期值進行比較。2 利用函式disp...

VB程式除錯

程式除錯就是對程式進行測試,查詢程式中的錯誤,並將這些錯誤修正或排除。一 在vb程式設計中有三類錯誤 第一類 語法錯誤 由於違反了語言 違反有關語句形式或使用規則而產生的錯誤。系統可以自動檢查,如 輸入非法字元,缺少括號等。第二類 執行錯誤 由於試圖執行乙個不可進行的操作而引起的錯誤,比如引用乙個不...