VisualStudio 調試技巧總結

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

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

 

工具/原料

  • Visual studio多線程

方法/步驟

  1. 1

    1 懸停鼠標查看錶達式值函數

    調試是頗有挑戰性的。好比在函數內逐步運行能夠看出哪裏出錯,查看堆棧信息能夠知道函數被誰調用等等……可是不管哪一種狀況下,查看錶達式和局部變量的值都是很麻煩的(把表達式和局部變量放到watch窗口裏)。一種更簡單的方法,把鼠標停在所需查看的數據上。若是是類或結構,那麼點擊展開能夠很方便快速地查看其字段。工具

    11個強大的Visual Studio調試小技巧
  2. 2

    2 在運行過程當中改變變量值測試

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

    11個強大的Visual Studio調試小技巧
  3. 3

    3 設置下一個運行位置插件

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

     

    11個強大的Visual Studio調試小技巧
  4. 4

    4 編輯而後繼續運行翻譯

    在運行一個很複雜的程序和插件時,發現一個錯誤,可是不想浪費時間去重編譯重啓動程序。很簡單,只要在這個位置修改這個bug,而後繼續調試。Visual studio會修改這個程序,使得你能夠繼續調試而不須要重啓程序。

    值得注意的是「編輯而後繼續運行」這個功能有幾個限制。一,它不能在64位代碼上使用。若是想使用這個功能,到項目設置裏的編譯選項,選擇」x86」做爲目標平臺。不要擔憂,這目標平臺在reslease配置是和」debug是分離的,也就是說依然是」Any CPU」的設置。二,「編輯而後繼續運行」這個功能僅適用於一個函數內部改變。若是你想要改變這個函數的聲明或者增長新的方法,你只能選擇重啓程序,或者不作任何改變繼續。若是修改的方法中包含lambda表達式,則意味着修改了編譯器自動生成的委託類型,這樣會致使編譯器中止運行。

    11個強大的Visual Studio調試小技巧
  5. 5

    5 一個方便的查看窗口

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

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

     

    11個強大的Visual Studio調試小技巧
  6. 6

    6 註釋反彙編

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

     

    11個強大的Visual Studio調試小技巧
  7. 7

    7 堆棧信息的線程窗口

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

     

    11個強大的Visual Studio調試小技巧
  8. 8

    8 條件斷點

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

     

    11個強大的Visual Studio調試小技巧
  9. 9

    9 內存窗口

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

     

    11個強大的Visual Studio調試小技巧
  10. 10

    10 跳轉到定義

    若是你在解決別人寫的代碼一個bug,會遇到「這個類型是什麼」「這個函數作什麼的」之類的問題,你可使用visual studio的跳轉到定義的命令來查看類型或函數的定義。

     

    11個強大的Visual Studio調試小技巧
  11. 11

    11 命令窗口

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

     

    11個強大的Visual Studio調試小技巧
相關文章
相關標籤/搜索