在越南做網(wǎng)站需要什么企業(yè)推廣公司
我們的博客已經(jīng)更新到了數(shù)據(jù)結(jié)構(gòu),但是當(dāng)我在深耕數(shù)據(jù)結(jié)構(gòu)時我發(fā)現(xiàn)我在C語言是遺漏了一個重要的東西,那就是C語言的使用調(diào)試技巧。這篇博客對數(shù)據(jù)結(jié)構(gòu)非常重要,請大家耐心觀看。
1. 什么是bug??
第一次被發(fā)現(xiàn)的導(dǎo)致計算機(jī)錯誤的飛蛾,也是第一個計算機(jī)程序錯誤。
注:參考資料?https://zh.wikipedia.org/wiki/%E7%A8%8B%E5%BA%8F%E9%94%99%E8%AF%AF
?2. 調(diào)試是什么?有多重要?
所有發(fā)生的事情都一定有跡可循,如果問心無愧,就不需要掩蓋也就沒有跡象了,如果問心有愧,
就必然需要掩蓋,那就一定會有跡象,跡象越多就越容易順藤而上,這就是推理的途徑。
順著這條途徑順流而下就是犯罪,逆流而上,就是真相。
一名優(yōu)秀的程序員是一名出色的偵探。
每一次調(diào)試都是嘗試破案的過程
我們是如何寫代碼的?
又是如何排查出現(xiàn)的問題的呢??
拒絕-迷信式調(diào)試!!!!
2.1 調(diào)試是什么?
調(diào)試(英語:Debugging / Debug),又稱除錯,是發(fā)現(xiàn)和減少計算機(jī)程序或電子儀器設(shè)備中程序
錯誤的一個過程。
2.2 調(diào)試的基本步驟
發(fā)現(xiàn)程序錯誤的存在
以隔離、消除等方式對錯誤進(jìn)行定位
確定錯誤產(chǎn)生的原因
提出糾正錯誤的解決辦法
對程序錯誤予以改正,重新測試
2.3 Debug和Release的介紹。
Debug 通常稱為調(diào)試版本,它包含調(diào)試信息,并且不作任何優(yōu)化,便于程序員調(diào)試程序。
Release 稱為發(fā)布版本,它往往是進(jìn)行了各種優(yōu)化,使得程序在代碼大小和運行速度上都是最優(yōu)
的,以便用戶很好地使用。
從上述我們不難觀察出debug和release它們的大小差異很大(debug 61KB??? release 11KB)
那這是為什么呢?
這是因為debug包含了調(diào)試等其他的一系列的過程所以大小會更大。
3. Windows環(huán)境調(diào)試介紹
注:linux開發(fā)環(huán)境調(diào)試工具是gdb,后期博客會介紹。
3.1 調(diào)試環(huán)境的準(zhǔn)備
在windows環(huán)境中選擇 debug 選項,才能使代碼正常調(diào)試 。
3.2 學(xué)會快捷鍵
最常使用的幾個快捷鍵:
F5
啟動調(diào)試,經(jīng)常用來直接跳到下一個斷點處。
F9
創(chuàng)建斷點和取消斷點
斷點的重要作用,可以在程序的任意位置設(shè)置斷點。
這樣就可以使得程序在想要的位置隨意停止執(zhí)行,繼而一步步執(zhí)行下去。
F10
逐過程,通常用來處理一個過程,一個過程可以是一次函數(shù)調(diào)用,或者是一條語句。
F11
逐語句,就是每次都執(zhí)行一條語句,但是這個快捷鍵可以使我們的執(zhí)行邏輯進(jìn)入函數(shù)內(nèi)部(這是最
長用的)。
CTRL + F5
開始執(zhí)行不調(diào)試,如果你想讓程序直接運行起來而不調(diào)試就可以直接使用 。
VS中常用的快捷鍵_vs快捷鍵-CSDN博客
3.3 調(diào)試的時候查看程序當(dāng)前信息
3.3.1 查看臨時變量的值
在調(diào)試開始之后,用于觀察變量的值。
3.3.2 查看內(nèi)存信息?
3.3.3 查看調(diào)用堆棧?
通過調(diào)用堆棧,可以清晰的反應(yīng)函數(shù)的調(diào)用關(guān)系以及當(dāng)前調(diào)用所處的位置。
3.3.4 查看匯編信息?
在調(diào)試開始之后,有兩種方式轉(zhuǎn)到匯編:
(1)第一種方式:右擊鼠標(biāo),選擇【轉(zhuǎn)到反匯編】:
(2)第二種方式:
可以切換到匯編代碼。?
3.3.5 查看寄存器信息
可以查看當(dāng)前運行環(huán)境的寄存器的使用信息。
一定要熟練掌握調(diào)試技巧。
初學(xué)者可能80%的時間在寫代碼,20%的時間在調(diào)試。但是一個程序員可能20%的時間在寫
程序,但是80%的時間在調(diào)試。
我們所講的都是一些簡單的調(diào)試。
以后可能會出現(xiàn)很復(fù)雜調(diào)試場景:多線程程序的調(diào)試等。
多多使用快捷鍵,提升效率。
本期的內(nèi)容就到這里了,目的是為了幫助大家更好的學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)相關(guān)知識。
感謝你的觀看
后續(xù)會持續(xù)為大家更新數(shù)據(jù)結(jié)構(gòu)知識。