国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

11個強大的VisualStudio調試小技巧

2019-11-14 14:31:41
字體:
來源:轉載
供稿:網友

調試是軟件開發周期中很重要的一部分。它具有挑戰性,同時也很讓人疑惑和煩惱。總的來說,對于稍大一點的程序,調試是不可避免的。最近幾年,調試工具的發展讓很多調試任務變的越來越簡單和省時。

  這篇文章總結了可能節省你大量時間的十個visual studio的調試技巧和方法。

  1 懸停鼠標查看表達式值

  調試是很有挑戰性的。比如在函數內逐步運行可以看出哪里出錯,查看堆棧信息可以知道函數被誰調用等等。。。

  但是無論哪種情況下,查看表達式和局部變量的值都是很麻煩的(把表達式和局部變量放到watch窗口里)。

  一種更簡單的方法,把鼠標停在所需查看的數據上。如果是類或結構,那么點擊展開可以很方便快速地查看其字段。

  2 在運行過程中改變變量值

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

  3 設置下一個運行位置

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

  4 編輯然后繼續運行

  在運行一個很復雜的程序和插件時,發現一個錯誤,但是不想浪費時間去重編譯重啟動程序。

  很簡單,只要在這個位置修改這個bug,然后繼續調試。Visual studio會修改這個程序,使得你可以繼續調試而不需要重啟程序。

  值得注意的是“編輯然后繼續運行”這個功能有幾個限制。一,它不能在64位代碼上使用。如果想使用這個功能,到項目設置里的編譯選項,選擇”x86”作為目標平臺。不要擔心,這目標平臺在reslease配置是和”debug是分離的,也就是說依然是”Any  CPU”的設置。二,“編輯然后繼續運行”這個功能僅適用于一個函數內部改變。如果你想要改變這個函數的聲明或者增加新的方法,你只能選擇重啟程序,或者不做任何改變繼續。如果修改的方法中包含lambda表達式,則意味著修改了編譯器自動生成的委托類型,這樣會導致編譯器停止運行。

  5 一個方便的查看窗口

  大部分現代的調試器都有查看窗口。但是,visual studio的查看窗口使用特別簡單,你能很方便的增加和刪除變量。只要在窗口里點擊空白行,輸入表達式然后按enter鍵。或者點擊表達式,按delete鍵刪除不需要的表達式。

  在調試窗口不僅僅可以查看普通的變量值,甚至可以輸入$handles去追蹤打開的句柄數量,$err去查看函數的錯誤代碼(然后使用 Tools->Error 查看錯誤代碼的描述)或者輸入 @eax(在64位下是@rax )查看包含函數返回值的寄存器值。

  6 注釋反匯編

  使用內部的反匯編功能使得優化局部代碼更加簡單。Visual studio可以在你的每一行代碼下顯示匯編指令,并且可以逐步調試匯編代碼,也可以在任意位置設置斷點。查看和修改匯編代碼類似于c++。

  7 堆棧信息的線程窗口

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

  8 條件斷點

  如果你想重現一個小概率事件,但是斷點在大量不需要的條件下也會觸發。你可以很簡單的設置條件斷點。在斷點窗口設置該斷點條件,Visual studio 會自動忽略不符合條件的斷點。

  9 內存窗口

  一些bug是由錯誤的結構定義、缺少對齊屬性等原因引起的。查看每行內存的內容很容易定位和解決這些bug. Visual studio 的內存窗口可以把數據翻譯成8/16/32/64-bit數字或者浮點數。你可以在編輯窗口直接改變數值。

  10 跳轉到定義

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

  11 命令窗口

  這個小技巧是由chaau建議的,它能節省你大量的時間。Visual studio支持一個命令窗口,你可以通過菜單View->Other Windows->Command Window 打開。你可以在窗口里輸入不同命令使調試自動化。比如,可以通過很簡單的命令去的測試MFC的COleDateTime變量。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北安市| 武义县| 济南市| 三亚市| 易门县| 姚安县| 沽源县| 遂宁市| 岳西县| 理塘县| 游戏| 宁国市| 会东县| 乐至县| 偃师市| 六盘水市| 汉沽区| 河源市| 承德县| 宕昌县| 兴义市| 绥滨县| 山西省| 双牌县| 舞阳县| 德钦县| 沙湾县| 宝清县| 伊春市| 太仆寺旗| 灌阳县| 新竹县| 陆河县| 嫩江县| 安阳市| 临海市| 青海省| 连江县| 双峰县| 彭州市| 右玉县|