.NET 技術交流群:337901356 歡迎您的加入!
為什么要學習調試?
調試(Debug)是作為一個程序員必須要學會的東西,學會調試可以極大的提高開發效率,排錯時間,很多人不喜歡調試,但我認為這是一個很不可取的選擇,調試的時候能讓我們看到程序的執行順序、步驟以及過程等,調試的時候可以讓我們監視代碼中各個變量的情況,調試讓我們可以讓我們快速的找出錯誤的根源。可見調試是至關重要的。
要學習好怎么調試,那么必須去了解VS 這個IDE中的各種調試技巧,下面我就講講我所經常在調試程序中所用到的技巧。
調試技巧介紹
1、監視窗口(Ctrl+D,Ctrl+W 快捷鍵開啟)
我們在調試程序的過程中,可以通過此窗口動態查看各個變量的值,以及各個函數的調用的返回結果。
在監視窗口中,我們還可以手動更改某個變量的值,這個有時候很有用,特別是有時候程序執行到指定語句的時候,發現某個值是錯誤的,但是我們又想用一個正確值測試代碼時,
此時可以通過監視窗口直接更改變量的值,而不需要重新啟動調試。
快速監視:選中某個變量后者表達式,然后通過按下快捷鍵Ctrl+D,Ctrl+Q 開啟。
備注:只能在調試情況下才能開啟此窗口。
2、調用堆棧(Ctrl+D,Ctrl+C)
通過該窗口,我們可以看到函數的一級一級的調用過程,我們就可以知道,該方法是來自於上面的哪一個步驟發起的調用。、
可以通過點擊調試->窗口->調用堆棧 來打開調用堆棧窗口。
如下圖:
備注:只能在調試情況下在可以開啟此窗口。
3、拖動調試光標的技巧。
Visual Studio 在調試的情況下可以拖動左側的黃色箭頭進行上下拖動,那么這個有什么作用呢,有時候我們可能想實用F11跟到某個方法里面進行調用過程的查看,結果一個不小心發現手誤按下了F10,此時代碼執行到了方法調用的下一句,那么我們此時就可以點擊左側的黃色箭頭,並按住鼠標左鍵,往上一拖,這個時候,就又可以執行剛才的方法調用的那句代碼了,如果往下拖,那么可以跳過一些語句代碼的執行。
4、編輯並繼續
通過啟用編輯並繼續,可以在調試代碼的過程中直接更改部分代碼,然后立刻執行最新的代碼,而不需要重新啟動調試程序。
但是這種方式在WEB應用程序中有個不好的地方就是,設置了啟動編輯並繼續之后,如果此時結束調試,那么網站或WEB應用程序將自動從IISExpress中退出,也就是此時再刷新網頁,將會顯示無法連接到網站,如果要在繼續瀏覽其他頁面,那么此時就要重新啟動網站了。
不過,在Visual Studio 2015中,默認就是打開了編輯並繼續功能,並且已經把編輯並繼續的復選框給去掉了。
5、設置斷點(F9 快捷鍵開啟)
斷點的好處在於,如果方法或者程序中包含了大量的代碼,那么我們就可以設置到一個我們想讓程序停下來的地方,通過F5可以快速的執行到下一個斷點處。
當我們啟動調試后,如果程序中有大量的斷點,而我們只是想調試某一部分代碼,那么或許有些人會一個一個斷點去取消或者禁用,感覺夠累,
其實是可以通過 點擊 調試->禁用所有斷點 或者調試->刪除所有斷點,如果你決定不需重新設置那些斷點了,那么可以刪除所有斷點,否則建議先禁用所有斷點,然后在你需要啟用斷點調試的地方再把那些斷點啟用。
有一個比較特殊的斷點設置就是:條件斷點
條件斷點就是可以在設置一個表達式,只有表達式的值為true或者更改的時候,語句才會被命中。
看個例子。
6、F5按鍵的使用
Visual Studio 中,F5可以用來啟動調試、也可以快速的將程序執行從一個斷點執行到下一個斷點處,往往有些新手會一句一句的執行進行調試,如果程序代碼沒幾句還好,如果程序代碼量多,或者碰到一個大循環的化,那要手按到何時才能執行到指定的想調試的代碼處呢。
7、F10 逐過程
F10表示逐過程執行代碼,什么是逐過程執行呢,通俗點說就是當執行到方法的語句時,調試不會進入到方法內部,而是一步將方法執行完畢。
8、F11 逐語句
F11是逐語句執行代碼,那么如果碰到調用方法的語句時,那么通過F11可以進入到方法內部的執行過程。
9、切換完成模式
有時候你是不是發現手動打了一部分英文之后,那個智能提示框總是不能自動選中我們想要選中的,而是變成下面那樣:
、
那么,你可以輸入快捷鍵:Ctrl+Alt+空格鍵來切換到到選中模式。
總的來說主要的調試技巧就是這些,這里講解的都是日常開發調試中個比較常用的,希望給新手們有所幫助。