每個程式設計師的很多時間都在和bug打交道,而debug的過程總不那麼令人高興。本人在除錯過程中總結了幾點除錯程式的一般方法,寫出來和大家分享,能力有限,歡迎各位大神批評指正!
1.單步除錯
從問題程式的起點開始,單步執行程式
觀察變數的變化過程,是最基本的程式除錯方法。這種方法適合錯誤定位範圍較小的程式,並且要求我們知道正確的變數值應該怎樣變化,通過對比當前值和理論值來發現錯誤的**點。
2.斷點即條件斷點
在程式中設定斷點,觀察斷點處的變數值也是一種常用的除錯方法。斷點用於快速排除正確的程式,縮小錯誤**範圍。比如在迭代類程式中,有時出錯點在多次迴圈之中的某一步,我們可以通過條件斷點來跳過前面的n次正常迴圈。我們一般先用斷點縮小錯誤範圍,再用第一種方法逐步檢查**。二者也可以交叉使用。
3.生成日誌檔案
在比較大的程式中,為了以後的維護方便,一般會對重要的變數生成日誌檔案,我們也可以針對我們的除錯生成日誌檔案。通過檢視日誌檔案來確定出錯點,這個方法適合除錯變數多,除錯範圍長的程式。缺點是代價比較大,要編寫日誌生成**。
3.邊界條件的檢查
很多邊界條件是程式的死穴,陣列讀取越界、下標範圍的錯位、迴圈的邊界條件有誤、特殊的輸入值沒有特殊處理等等問題都是邊界問題。我們在程式設計時也要注意對邊界條件的考慮,因為這往往是程式設計師最容易忽略的地方。
4.縮小規模檢查演算法
實際編碼過程中,我們的演算法很多時候是不成熟的,沒有經過仔細的數學推導。所以除錯程式有一定的試探性,這個時候我們為了驗證思路的正確性,要舉乙個小的例子來驗證程式的演算法是否正確。
除錯能力的養成不是一朝一夕的,只有平時多動手,多思考,在實踐中不斷摸索,我們的除錯能力才會有所長進。最後再說一點心態問題,和大家共勉:無論是code還是debug,都是乙個勞神的過程,長期高負荷工作會耗費我們的精力而影響我們的心情,所以要盡量保證健康生活習慣,充足的精力是我們構思編碼、除錯程式的基礎。
軟體除錯的一般思路
解決軟體的bug就像警察破案一樣。警察在掌握了案件發生的時間地點和相關人物後進行分析推理,採訪相關人員,排除嫌疑人,最終找到 同樣的,軟體開發人員在接到bug時,也是分析bug發生的背景,然後在運用各種方法來找出問題的原因。並不是所有的bug都能一眼看出問題發生在哪個地方。雖然bug發生的原因千差萬...
實現爬蟲的一般思路
實現爬蟲的套路 一 準備url 準備start url url位址規律不明顯,總數不確定 xpath 尋找url位址,部分引數在當前的響應中 比如,當前頁碼數和總的頁碼數在當前響應中 準備url list 頁碼總數明確 url位址規律明顯 二 傳送請求,獲取響應 新增隨機的user agent,反反...
一般處理程式
一般處理程式是乙個字尾名為.ashx的 檔案,該檔案的類實現了ihttphandler介面,這個類用於負責處理它所對應的url的訪問請求,並接受客戶端傳送的請求資訊和傳送響應內容 get和post的請求方式 get和post是向伺服器傳送請求的兩種方式,其中get請求是將需要提交給伺服器端的資料放在...