這裏有一個快速和骯髒的方式使用簡單的文本替換做到這一點:
- 格式化C#文件,使所有凹槽的一字排開。您可以在
Edit
>Advanced
>Format Document
- 打開做到這一點的文字與
Ctrl+H
- 設置「文本查找」字段此
"^ {"
更換。
- 將「替換」字段此
" {System.Diagnostics.Debugger.Break();"
- 點擊小「使用正則表達式」按鈕,在窗口
- 點擊「全部替換」或打
Alt+A
- 如果你的文件有嵌套枚舉任何類,類或結構,你會有一些編譯錯誤。直到代碼編譯完成,從它們中移除調試調用。如果你的嵌套類有自己的方法,那麼你必須在替換字符串中使用更多的選項卡再次運行這個過程。
工作原理:這使用Visual Studio文檔格式化程序,並假定文件中的所有方法都以兩個選項卡開始,然後是「{」。因此,任何以兩個標籤和一個「{」開始的行將被替換爲相同的兩個標籤,相同的「{」和調試器的調用。
如果你的文件嵌套枚舉等,你會得到編譯器錯誤,因爲文本替換不區分方法和枚舉。例如,你會看到這一點:
enum MyColors
{ System.Diagnostics.Debugger.Break(); //error here
Red,
Green,
Blue,
}
如果要禁用這些斷點的能力,我能想到的最好的辦法就是一個簡單的布爾。某處在你的代碼,插入此:
#if DEBUG
private static bool _ignoreDebug = false;
#endif
(我把#if DEBUG
在那裏作爲一個標誌,這個代碼僅用於調試這是沒有必要的。)然後,在步驟#4以上,使用替換字符串,而不是:
" {if(!_ignoreDebug){System.Diagnostics.Debugger.Break();}"
然後,當你打一個斷點,不希望打更多的,在監視窗口中鍵入這並回車_ignoreDebug = true
。要重新啓用它,您需要在可訪問_ignoreDebug
bool的某處插入手動斷點。
從代碼中刪除了這一切,無論是做另外的文本替換,或只是編輯撤消一切。
[有沒有Visual Studio宏來設置類中每個方法的開始處的斷點?](http://stackoverflow.com/questions/4396613/is-there-a-visual-studio -macro-set-a-breakpoint-on-the-start-of-every-method) – Sjoerd
這是一個瘋狂的想法,但非常有用! –
你可以在一個步驟中設置許多斷點,看看:http://www.codeproject.com/Articles/139120/Tips-Set-Breakpoint-to-multiple-Functions-at-the-s但是,它沒有設置_every_方法的斷點。請注意,這可能會[緩慢調試](http://stackoverflow.com/questions/589338/slow-debugging-issue-in-visual-studio)巨大。 –