Visual Studio中11個調(diào)試技巧和方法分享
微軟家的Visual Studio是一款強大的開發(fā)工具,軟件的開發(fā)都離不開調(diào)試的工作,今天小編就來告訴大家軟件的11個調(diào)試技巧和方法,學會了之后,可以大大提升小伙伴們的工作效率 。
方法/技巧
1 懸停鼠標查看表達式值

調(diào)試是很有挑戰(zhàn)性的 。比如在函數(shù)內(nèi)逐步運行可以看出哪里出錯 , 查看堆棧信息可以知道函數(shù)被誰調(diào)用等等……但是無論哪種情況下,查看表達式和局部變量的值都是很麻煩的(把表達式和局部變量放到watch窗口里) 。一種更簡單的方法,把鼠標停在所需查看的數(shù)據(jù)上 。如果是類或結(jié)構(gòu),那么點擊展開可以很方便快速地查看其字段 。
2 在運行過程中改變變量值

調(diào)試器不僅僅是分析程序崩潰和詭異行為的工具,還可以通過逐步調(diào)試檢查數(shù)據(jù)和行為是否符合程序預(yù)期的方法解決許多bug 。有時,你會想是否設(shè)置某些條件為真 , 程序就能正確運行了 。其實你只要把鼠標移動到變量上,雙擊值 , 然后輸入你需要的值 。這樣就不需要修改代碼,重啟程序了 。
3 設(shè)置下一個運行位置

一個典型的調(diào)試案例是我們經(jīng)常會用逐步調(diào)試的方法去分析為什么函數(shù)出錯了 。這時你遇到這個函數(shù)調(diào)用其他函數(shù)返回錯誤,而這個錯誤不是你想要的,你該怎么辦?重啟調(diào)試器?這里有個更好的方法 , 直接把黃色的運行位置箭頭拖到你想要的運行位置 。其實就是跳過中間運行代碼,直接到想要的位置 。很簡單吧 。
4 編輯然后繼續(xù)運行

在運行一個很復(fù)雜的程序和插件時,發(fā)現(xiàn)一個錯誤,但是不想浪費時間去重編譯重啟動程序 。很簡單,只要在這個位置修改這個bug , 然后繼續(xù)調(diào)試 。Visual studio會修改這個程序,使得你可以繼續(xù)調(diào)試而不需要重啟程序 。
值得注意的是“編輯然后繼續(xù)運行”這個功能有幾個限制 。一,它不能在64位代碼上使用 。如果想使用這個功能 , 到項目設(shè)置里的編譯選項,選擇”x86”作為目標平臺 。不要擔心,這目標平臺在reslease配置是和”debug是分離的 , 也就是說依然是”Any CPU”的設(shè)置 。二,“編輯然后繼續(xù)運行”這個功能僅適用于一個函數(shù)內(nèi)部改變 。如果你想要改變這個函數(shù)的聲明或者增加新的方法,你只能選擇重啟程序 , 或者不做任何改變繼續(xù) 。如果修改的方法中包含lambda表達式,則意味著修改了編譯器自動生成的委托類型,這樣會導(dǎo)致編譯器停止運行 。
5 一個方便的查看窗口

大部分現(xiàn)代的調(diào)試器都有查看窗口 。但是 , visual studio的查看窗口使用特別簡單,你能很方便的增加和刪除變量 。只要在窗口里點擊空白行,輸入表達式然后按enter鍵 。或者點擊表達式 , 按delete鍵刪除不需要的表達式 。
在調(diào)試窗口不僅僅可以查看普通的變量值,甚至可以輸入$handles去追蹤打開的句柄數(shù)量,$err去查看函數(shù)的錯誤代碼(然后使用 Tools->Error 查看錯誤代碼的描述)或者輸入 @eax(在64位下是@rax )查看包含函數(shù)返回值的寄存器值 。
6 注釋反匯編

使用內(nèi)部的反匯編功能使得優(yōu)化局部代碼更加簡單 。Visual studio可以在你的每一行代碼下顯示匯編指令 , 并且可以逐步調(diào)試匯編代碼,也可以在任意位置設(shè)置斷點 。查看和修改匯編代碼類似于c。
7 堆棧信息的線程窗口

調(diào)試多線程代碼是很痛苦的 。或許也是有趣的 。這取決于你的調(diào)試器 。Visual studio 一個很贊的功能就是在線程窗口查看線程的堆棧信息 。你能很方便的直接看到所有線程以及他們的堆棧信息 。
8 條件斷點

如果你想重現(xiàn)一個小概率事件,但是斷點在大量不需要的條件下也會觸發(fā) 。你可以很簡單的設(shè)置條件斷點 。在斷點窗口設(shè)置該斷點條件 , Visual studio 會自動忽略不符合條件的斷點 。
9 內(nèi)存窗口

一些bug是由錯誤的結(jié)構(gòu)定義、缺少對齊屬性等原因引起的 。查看每行內(nèi)存的內(nèi)容很容易定位和解決這些bug. Visual studio 的內(nèi)存窗口可以把數(shù)據(jù)翻譯成8/16/32/64-bit數(shù)字或者浮點數(shù) 。你可以在編輯窗口直接改變數(shù)值 。
10 跳轉(zhuǎn)到定義

如果你在解決別人寫的代碼一個bug,會遇到“這個類型是什么”“這個函數(shù)做什么的”之類的問題,你可以使用visual studio的跳轉(zhuǎn)到定義的命令來查看類型或函數(shù)的定義 。
11 命令窗口

【Visual Studio中11個調(diào)試技巧和方法分享】這個小技巧是由chaau建議的,它能節(jié)省你大量的時間 。Visual studio支持一個命令窗口,你可以通過菜單View->Other Windows->Command Window 打開 。你可以在窗口里輸入不同命令使調(diào)試自動化 。比如 , 可以通過很簡單的命令去的測試MFC的COleDateTime變量 。
? dt.Format(“%Y-%m-%d %H:%M:%S”)
英文原文:Ivan Shcherbakov,編譯:@halftone_被禁用了
以上就是經(jīng)驗啦網(wǎng)小編今日為大家?guī)淼腟tudio中11個強大的調(diào)試技巧和方法,更多軟件教程盡在經(jīng)驗啦網(wǎng)!
