- 少兒計算思維養(yǎng)成記:六個孩子的編程學習筆記
- 包若寧等編著
- 750字
- 2022-04-24 09:43:36
九、程序里的bug和debug
bug就是程序中出現(xiàn)的錯誤。那為什么叫bug呢?我們查了字典,bug的意思可是“臭蟲、小蟲子”??!包老師解開了我們的困惑。
原來在計算機剛問世的時候,它的內部是一個一個小燈泡(包老師說這叫電子管,見圖1-13左側部分)。有一次,這臺計算機運行出錯了,所有人都不知道是怎么回事。過了幾天,程序員Grace Hopper發(fā)現(xiàn)一個小燈泡里有只小飛蟲,把蟲子拿出來后,計算機就正常運行了(見圖1-14)。

圖1-13 早期計算機里用的電子管(左)和計算機程序里的第一個bug(右)

圖1-14 Grace Hopper工作照(源自https://en.wikipedia.org/wiki/Grace_Hopper)
因為蟲子的英文是bug,所以后來當計算機出故障時,大家就說:“出bug了!出bug了!”圖1-13中右側圖片里的那只蟲子就是歷史上第一個“計算機里的bug”,旁邊還有Grace寫的注釋“First actual case of bug being found”。
在后面的每一講里,我們都會總結一下到底出了哪些bug,概括起來是以下幾種原因:馬虎、沒有初始化變量、循環(huán)邊界不正確、弄混了形式參數(shù)和實際參數(shù)。
出了bug怎么辦呢?那就進行debug吧。老師告訴我們,英文里面把單詞前面加上“de”表示“否定、去除”的意思。debug就是找到程序中的bug并改正它們。
那么怎樣進行debug呢?我覺得debug就像是“警察破案”,我們要從蛛絲馬跡中找出真相。我們總結了下面兩種方法。
(1)看
在開始debug之前,必須保證自己大腦中有一個清晰的程序執(zhí)行思路,順著思路仔細閱讀自己的代碼兩到三遍,也就是對照腦子里的思路和寫出的程序,看是否有不同,一定要仔細!
(2)執(zhí)行
有時候光看還不行,還需要執(zhí)行。在找到可疑的地方之后,嘗試修改一下,或者把這一段指令暫時移走,再次運行程序,看是否正常。
一個非常好的方法是“打印中間結果”,也就是設置一些用于調試的變量,把程序運行的中間過程都打印出來,看是不是按照我們的意圖運行的。
還有其他的一些進行debug的方法,都放到了這本書的輔助閱讀材料里,請讀者參考輔助閱讀材料吧。