寫程序簡單一調試就頭疼?高手分享C語言調試經驗
寫程序簡單一調試就頭疼?高手分享C語言調試經驗
很多同學在寫C語言時,感覺最難的不是程序怎麼寫,而是程序寫完了怎麼調試。程序寫出來了,自己檢查著沒有錯誤,但一運行卻出現一大堆錯誤,好不容易、好不容易改的沒錯誤了,一運行卻不出正確結果,然後又小心戀戀的改動一處,忽然又冒出一大堆錯誤來,再後來呢,稀里嘩啦一陣亂響之後,便「飄然而去」。
今天,我(作者)總結了一些的經驗與大家一起交流,如有不當之處肯請大家指正。
產生這種情況的原因是基本知識掌握不牢,基本語法掌握不靠,練習做的太少,調試功夫不到家所致。掌握了正確的調試技巧,多多練習,這種情況應該能比較快的解決。
程序的調試非常重要,不只是C語言,對於所有語言來說都是如此,掌握好的調試方法,可以事半功倍。下面說一下程序已經沒有編譯錯誤,能夠運行,但又得不出正確結果的情況下的程序的常用常見調試方法:
1、追蹤方式執行(Trace):一步一步執行,遇到函數調用,追蹤到調用函數,一步一步執行。
2、單步方式執行(step):一步一步執行,遇到函數調用,調用語句作為一步執行
3、下斷點(breakpoint):設置斷點,當程序執行到斷點時,程序暫停執行。
4、執行到游標所在處(go to cursor):相當於一個斷點。
5、監視(watches):隨時監視某些變數或對象值的變化情況。
常用常見的就是這五種方法。以上方法適用於程序已經沒有編譯錯誤,能夠運行,但又得不出正確結果的情況。在程序的調試過程中,監視某些變數或對象值的變化情況是很重要的一部分,前四種執行方式與值的監視配合使用,能準確定位錯誤所在,可以具體到是哪一行出現錯誤。
如果怎麼調都有編譯錯誤怎麼辦呢?這是練習做的太少,基礎不是太好的緣故。這需要再下點功夫,再多做點練習。程序寫多了,當出現一種錯誤時,就知道大體是什麼原因造成的了。網上和教材上有專門論述出錯信息及錯誤處理的文章,個人覺得這類文章大部分不太適合初學者看。
出錯信息都是E文,不是太明白怎麼辦?可以用金山快譯翻譯一下,盡量避免下次再犯錯。
※嵌入式er日常!從事嵌入式開發一年多,發現一些小細節總結
※國內半導體行業哪家最賺錢?中興遭美國「封禁」,華為今年9月將發布人工智慧戰略
TAG:嵌入式ARM |