成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Visual Studio的八個調試建議:像老大哥一樣調試

開發 后端 前端
Visual Studio內置有如此之多有用的調試特性,但并非眾所周知。本文列舉一些我的最愛,包括最近我在 VS2013 中發現的調試特性。

Visual Studio內置有如此之多有用的調試特性,但并非眾所周知。本文列舉一些我的***,包括最近我在 VS2013 中發現的調試特性。

1.在Lambda表達式中的斷點

如果你點擊左邊欄設置斷點,你可能很容易被誤導認為斷點發生在行級別上。實際上,你可以在行內部插入斷點,如在你的LINQ的Lamdba表達式中。僅需右擊代碼部分并且從菜單選擇Breakpoint > Insert breakpoint。

2.便捷的輸出窗口

輸出窗口對調試很有用,同樣斷點也是彈出式或中斷程序的,但它確實很嘈雜。僅需右擊輸出窗口(要確保輸出被設為調試),關閉Module Load,Module Unload,Process Exit 和Thread Exit 以只輸出你關心的內容。現在用Debug.WriteLine給出你真正關心的內容吧。

2171

你也可以在輸出窗口使用Ctrl-S保存設置。

3.在客戶端和服務器端附加調試(VS2012)

服務器端和客戶端工程在一個solution中是有用的,你僅需要一份Visual Studio運行時拷貝而且也不會在alt-tab鍵的前進后退中迷失,特別是當它們使用共同的代碼如數據結構工程。

有一個缺點,start-up工程是唯一獲得附加調試的工程。如果你遇到異常,它會顯示在你的客戶端,而不是服務端。

現在這個問題很容易解決了。右擊solution,選擇properties > Multiple startup projects,然后選擇Start動作為你需要附加調試的工程。

2172

 

4.創建可重建工程模板

如果你負責SDK或者API,創建一個你獨用的簡單的應用程序。然后使用File > Export template保存它。

現在你隨時可以從你的模板創建一個新的工程,僅需要一些點擊。更好的做法是使得用戶和測試者能夠使用它們,以便他們給你最小的重建。

5.使用DebuggerDisplay屬性

調試器默認會使用ToString()來監視并在窗口正常輸出類名。即使你重寫ToString,對其他調試者也不見得一目了然。

在你的類中通過一句簡單的表達式,而不是改變屬性值來使用DebuggerDisplay。例如:

  1. [DebuggerDisplay("Order {ID,nq}"
  2. class Order { 
  3.     public string ID { get { return id; } } 

“nq”阻止了雙引號發散。你也可以在這里使用方法,但是別做任何可能帶來微小副作用的事,否則你觀察的對象可能改變其行為,并導致奇怪的事發生。

6.管理斷點

你創建了一些帶勁的斷點,現在你要關閉其中的一個,因為它被點擊了太多次,但你馬上又要再次用到它。如果你刪除了這個斷點,你就不得不回來再找到斷點位置。

打開常被忽視的Breakpoints窗口(Ctrl-Alt-B)。這個窗口顯示了你設置的所有的斷點但關鍵的是允許你使它們無效僅僅通過去除check標記。再次check上以重新使它有效。

2173

這個窗口同樣提供了快速調試的功能:

  • 條件 斷點什么時候發生
  • 發生次數 觀察多長時間發生一次并基于該次數中斷
  • 標簽 斷點在分支中允許有效和無效
  • 何時發生 在輸出窗口顯示一條消息以代替真實的中斷

 7.斷開或輸出調用者信息(.NET 4.5/Windows 8 Store)

沒有為調用程序當前方法準備的全局變量,并且得到當前棧內容是一個非常慢的操作。

一個快速簡單的手段是,為方法增加一個額外的可選字符型參數了,用CallerMemberName屬性。例如,

  1. void MyFunction(string someValue, [CallerMemberName] string caller = null) { 
  2.     ... 

因為這是可選的值,你不必修改任何調用程序,但現在你能:

①基于調用程序變量,在某些程序中設置斷點條件

②向日志文件或者輸出窗口輸出調用程序內容

你也可以使用CallerLineNumber 和CallerFilePath。同樣記住構造函數,終結器和運算符重載將會顯示它們的相關方法名(.ctor,op_Equals等等)。

 8.監視方法返回值(VS2013, .NET 4.5/Windows 8.1 Store)

有時你想看看方法返回值但對你來說并不容易,因為它是另一個方法的輸入參數,所以你并沒有存儲該值。

這個功能被加到VS2013中,但是它卻非常容易錯過,你不得不在正確的時間和正確的地方使用它。正確的地方是 Autos窗口,正確的時間是剛好回到方法被調用的地方這一步。當在你調用方法之前或者在方法體中時你看不到這個。它是一個單一步驟,像這樣:

2174

箭頭標明它是返回值,并且讓你知道和它相關的方法名。

寫在***

我也不得不強調,一旦軟件離開了你的機器,記錄日志對問題解決是多么有效。但這是一個比這個更大的議題。

我是不是遺漏了一些更好的調試建議?在下面的回復中隨時讓我知道吧。

附:Michael Parshin也有一些調試的很棒的建議。

原文鏈接:http://damieng.com/blog/2014/02/05/8-visual-studio-debugging-tips-debug-like-a-boss

譯文鏈接:http://blog.jobbole.com/59618/

責任編輯:陳四芳 來源: 伯樂在線
相關推薦

2013-12-17 09:02:03

Python調試

2013-12-31 09:19:23

Python調試

2013-02-26 10:53:16

大數據云計算

2022-10-21 13:52:56

JS 報錯調試本地源碼

2022-08-26 08:17:32

Sidekick開源

2010-04-06 14:32:12

2013-10-29 16:04:50

UbuntuUbuntu創始人Mark Shuttl

2022-05-26 01:15:22

GitHub代碼快捷鍵

2020-07-09 15:10:20

開發技能代碼

2014-08-07 09:18:34

在線追蹤

2025-05-26 01:00:00

MCP平臺AI

2013-07-23 10:02:19

隱私保護

2010-12-14 09:15:50

Visual Stud

2015-06-09 15:23:50

2009-04-23 14:05:28

Visual Stud歷史調試功能

2013-08-01 15:12:03

Visual Stud

2022-07-25 15:21:50

Java編程語言開發

2009-11-23 14:32:55

Visual Stud

2009-12-04 10:35:56

Visual Stud

2009-12-03 15:58:33

Visual Stud
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成年网站在线观看 | 亚洲国产高清在线观看 | 九九在线视频 | 亚洲 自拍 另类 欧美 丝袜 | 超碰男人天堂 | 亚洲网站在线观看 | 亚洲乱码国产乱码精品精98午夜 | 亚洲视频自拍 | 精品国产乱码久久久久久牛牛 | 黄a在线播放| 亚洲精品国产第一综合99久久 | 日韩精品一区二区三区中文在线 | 青青草免费在线视频 | 久久激情视频 | 日韩欧美在线免费 | 操视频网站 | 国产精品区二区三区日本 | h在线免费观看 | 成人av电影天堂 | 国产女人与拘做受视频 | 亚洲一区二区免费视频 | 草久久 | 福利网址 | 亚洲国产精品一区二区久久 | 亚洲一区二区中文字幕 | 国产精品揄拍一区二区 | 国产午夜精品一区二区 | 久久精品国产亚洲夜色av网站 | 久久成人人人人精品欧 | av中文网 | h视频在线观看免费 | 国产精品一区三区 | 国产一区在线视频 | 日韩精品在线一区 | 日日噜噜噜夜夜爽爽狠狠视频97 | 99精品欧美一区二区三区综合在线 | 在线视频91 | 欧美专区在线 | 亚洲 欧美 综合 | 日本一区高清 | 国产精品久久久久久久一区探花 |