文章目錄
- 1.什么是 bug
- 2.什么是調試(debug)?
- 3.Debug 和 Release
- 4.VS調試快捷鍵
- 4.1 環境準備
- 4.2 調試快捷鍵
- 5.監視和內存觀察
- 5.1 監視
- 5.2 內存
1.什么是 bug
bug現在一般是指在電腦系統或程序中,隱藏著的一些未被發現的缺陷或問題,簡稱程序漏洞。
2.什么是調試(debug)?
當我們發現程序中存在的問題的時候,那下一步就是找到問題,并修復問題。
這個找問題的過程叫稱為調試,英文叫debug。調試一個程序,首先是承認出現了問題,然后通過各種手段去定位問題的位置,可能是逐過程的調試,也可能是隔離和屏蔽代碼的方式,找到問題所的位置,然后確定錯誤產生的原因,再修復代碼,重新測試。
3.Debug 和 Release
Debug
通常稱為調試版本,它包含調試信息,并且不作任何優化,便于程序員調試程序;程序員在寫代碼的時候,需要經常性的調試代碼,就將這里設置為 debug,這樣編譯產生的是debug 版本的可執行程序,其中包含調試信息,是可以直接調試的。
Release
稱為發布版本,它往往是進行了各種優化,使得程序在代碼大小和運行速度上都是最優的,以便用戶很好地使用。當程序員寫完代碼,測試再對程序進行測試,直到程序的質量符合交付給用戶使用的標準,這個時候就會設置為 release ,編譯產生的就是 release 版本的可執行程序,這個版本是用戶使用的,無需包含調試信息等。 公司的測試人員也是測試這個Release
版本。
![]() | ![]() |
---|---|
Debug 版本 | Release版本 |
對比可以看到從同一段代碼,編譯生成的可執行文件的大小,release版本明顯要小,而debug版本明顯大。
4.VS調試快捷鍵
4.1 環境準備
我們需要一個支持調試的開發環境,使用VS的時候應該把VS上設置為Debug。
4.2 調試快捷鍵
調試最常使用的幾個快捷鍵:
-
F9:創建斷點和取消斷點。斷點的作用是可以在程序的任意位置設置斷點,打上斷點就可以使得程序執行到想要的位置暫停執行,接下來我們就可以使用F10,F11這些快捷鍵,觀察代碼的執行細節。
-
條件斷點:滿足這個條件,才觸發斷點
鼠標右擊斷點,點擊條件
可以設置條件。
然后打開監視窗口:
直接跳到滿足條件的地方了,這就是條件斷點。
-
F5:啟動調試,經常用來直接跳到下一個斷點處(這個斷點指的是運行邏輯上的斷點,而不是物理上的斷點),一般是和F9配合使用。
-
F10:逐過程,通常用來處理一個過程,一個過程可以是一次函數調用,或者是一條語句。
-
F11:逐語句,就是每次都執行一條語句,但是這個快捷鍵可以使我們的執行邏輯進入函數內部。在函數調用的地方,想進入函數觀察細節,必須使用F11,如果使用F10,直接完成函數調用。
-
CTRL + F5:開始執行不調試,如果你想讓程序直接運行起來而不調試就可以直接使用。
VS更多快捷鍵了解:http://blog.csdn.net/mrlisky/article/details/72622009
5.監視和內存觀察
5.1 監視
調試的時候可以通過監視功能來查看自己的內部數據。
5.2 內存
如果監視窗口看的不夠仔細,也是可以觀察變量在內存中的存儲情況。
輸入arr
回車
這個就是arr在內存中的地址。
我們還可以更改列數,使得我們方便查看。因為1個16進制位對應4個二進制位,2個十六進制位對應一個字節。所以我們把這個改成4就可以4字節4字節的看了。
int類型剛好4個字節。
中間那一堆就是內存中的值,以16進制存在。
隨著我們程序的進行,內存里的這些值也會發生變化。