書名: 零基礎學C語言(第4版)作者名: 康莉 李寬本章字數: 1131字更新時間: 2020-06-17 18:23:09
2.4 調試排錯(debug)
程序員的主要工作之一是編寫代碼。代碼從無到有,需要逐個字符輸入,工作量顯然比較大。但實際上,編碼容易調試難。代碼編寫完畢后,程序員將會花費大量時間進行錯誤或者問題的排查、修改。在計算機系統程序中,把隱藏著的一些未被發現的缺陷、問題或者錯誤,統稱為bug。
說明 本節僅向讀者展示最基本的調試手段。
2.4.1 debug的由來
bug的英文意思是臭蟲,被引入到計算機領域,需要追溯到第一代計算機時代。當時的計算機是由許多真空管構成的,需要利用大量的電力使真空管發光。某天,一只蟲子爬進了其中的某個真空管中,導致計算機停止了工作。研究人員耗費很長時間,找來找去,一處地方一處地方地排查,最后終于發現了這個“蟲子”。取出“蟲子”后,計算機就恢復了正常。于是bug這個詞語在計算機領域中成了隱藏的錯誤、缺陷、漏洞或者問題的代名詞。而排除錯誤的過程則被稱為debug。
調試水平的高低,在很大程度上顯示出程序員能力的高低??梢哉f,不會調試的程序員,就不會開發出好的軟件。調試的方法也五花八門,各有特色。
調試需要在調試器中進行。一般的編程環境中已經集成了調試器。為了調試程序,需要在編譯連接的時候進行一些設置,使得程序生成的時候,加入一些幫助調試的相關數據。利用調試器運行程序后,就進入了調試模式。
2.4.2 設置斷點
斷點是為了方便程序員在調試過程中觀察程序內部各狀態而專門設置的一種調試手段。也就是在調試模式下運行程序的過程中,當程序語句運行到設置的斷點處后,暫停程序運行,但是當時的內存、寄存器、上下文環境等數據都被保持,并且在源代碼編輯器中指示出當前停留在代碼的哪一行。然后程序員就可以不慌不忙地利用調試器查看程序的內部狀態了。
注意 先進入調試模式,再設置斷點。要想調試程序,設置斷點后,程序才能被中斷回到調試器中,才能對程序進行各狀態的查詢。
要在CodeBlocks中設置斷點,首先將光標移到需要設置斷點的代碼行上,使用鼠標左鍵單擊,或者在彈出的菜單中單擊【添加斷點】命令。斷點設置后,代碼行前有一個紅色的圓點出現,如圖2-12所示。在已經設置斷點的代碼行再次使用鼠標左鍵單擊,或者在彈出的菜單中單擊【移除斷點】命令,即可取消斷點。

圖2-12 設置斷點
2.4.3 調試運行
設置完斷點后,可以通過按F8鍵在調試器中啟動已編寫的程序。程序啟動后,當運行到斷點代碼行后,程序暫停,如圖2-13所示。

圖2-13 調試:運行中斷
(1)此時讀者編寫的程序已經被運行起來,只是處于暫停狀態。可以看到運行窗口后面那個黑色的控制臺窗口中此時沒有任何輸出,因為當前僅運行到“{”這一行,這一行什么都沒有做。
(2)按F7鍵可單步運行。每按一次F7鍵,就往下運行一行代碼,直到程序運行結束。如果不想單步運行,可以直接按F8鍵接著運行下去。
(3)運行結束,調試器彈出窗口提示運行結束,返回代碼窗口。
- Flask Blueprints
- Java程序員面試算法寶典
- Getting Started with Python Data Analysis
- Visual Basic程序設計實驗指導(第二版)
- 愛上micro:bit
- Statistical Application Development with R and Python(Second Edition)
- R數據科學實戰:工具詳解與案例分析
- 小型編譯器設計實踐
- Modern C++ Programming Cookbook
- Building Dynamics CRM 2015 Dashboards with Power BI
- 算法圖解
- Python 3 Object:oriented Programming(Second Edition)
- Python Machine Learning Cookbook
- DB2SQL性能調優秘笈
- Kotlin語言實例精解