一個靈魂問題:你怕bug嗎?
聽到這個問題的你瑟瑟發抖,

不要怕,正所謂“知己知彼,百戰不殆”首先,你知道什么是bug嗎?
我們來看一個有趣的小故事:

這個小故事介紹了第一個bug發現的程序和bug的本義,是不是非常有趣?作為計科專業的小禿頭你是否為debug的程序而煩惱,你要有著福爾摩斯般地智慧和判斷力,才能將一個一個bug按在地上摩擦,
現在,讓我們開始我們的福爾摩斯之旅,來掌握一些摩擦bug的實用除錯技巧吧!

福爾摩斯之旅第一站:明確兩個概念:debug和release**

我們以一個代碼為例:

我們可以看到在Debug的環境下,除錯和監視都是可以的,下面我們換release環境來看一下


我們會發現它根本無法除錯且讓我的360認為有木馬,直呼好家伙!但并不是所有使用release都會出現被誤會成木馬的情況,也要根據不同編譯器,不同程式等等因素來看,不要卡太死,

除了能否除錯不同外,兩種檔案的大小也不相同,
福爾摩斯之旅第二站:
下面我們來介紹Windows環境除錯:
我們先來看一下除錯的選單:

紅色圈出的部分是我們經常用到的哦,
注意:F5和F9經常配合使用
F5為啟動除錯,F9為切換斷點(斷點通俗來說就是程式走到那里就不繼續走了),二者相遇如高山流水伯牙子期,我們來用一個例子看看他們倆怎么一塊用:

下面我們來記下幾個常用的快捷鍵:
F5
啟動除錯,經常用來直接調到下一個斷點處,
F9
創建斷點和取消斷點 斷點的重要作用,可以在程式的任意位置設定斷點,這樣就可以使得程式在想要的位置隨意停止執行,繼而一步步執行下去,
F10
逐程序,通常用來處理一個程序,一個程序可以是一次函式呼叫,或者是一條陳述句,
F11
逐陳述句,就是每次都執行一條陳述句,但是這個快捷鍵可以使我們的執行邏輯進入函式內部(這是最常用的),
CTRL + F5
開始執行不除錯,如果你想讓程式直接運行起來而不除錯就可以直接使用,
如果你想了解更多快捷鍵可以去網上搜索哦,我在這里就不一一列舉了,
接下來我們來了解這樣一件事情,
**
福爾摩斯之旅第三站:
除錯時如何查看程式當前資訊
**

當我們除錯一個程式時,視窗里的選項是我們可以觀察到的,我們先來看看自動視窗的效果:




我們發現,自動視窗可以根據程式的執行情況自動選擇監視的變數,
我們再來看看監視視窗:



我們發現監視視窗只能監視我們選中的變數,自定義性很強,
我們再來看看區域變數視窗,為了演示方便,我們選擇換一個例子:



通過對比自動視窗和區域視窗,我們發現,區域視窗放的是當前環境中執行的背景關系變數,
接下來我們看一下記憶體視窗

我們來打開記憶體視窗看一下:

下面我們來觀察一下i的情況


接下來,我們了解一下反匯編:

點進去之后就會看到匯編語言
接下來我們再簡單看看呼叫堆疊

通過這個視窗,我們可以很好地觀察到呼叫邏輯,當代碼比較龐大時,效果很好,
我們的福爾摩斯之旅到這里就先告一段落啦!
希望以上的分享可以幫助大家了解一些除錯的知識,本人能力有限,歡迎大家批評指正,相信總有一天我們都可以像福爾摩斯一樣,征服所有難題,找到所有bug!!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/263868.html
標籤:其他
上一篇:2_25刷題小結
