2009-09-01 73 views
3

我想在設置斷點時跳過我的代碼的某些部分。例如,我有一個迭代52次的代碼塊來創建一副牌。這是正常工作,我寧願不必擊中F11繼續通過該塊。無論如何,我可以「跳過」這一點,以便調試器進入下一個方法調用?如何瀏覽整個代碼塊?

語言和IDE是C#在VS 2008

回答

2

如果它是一個選項,你可以移動代碼到一個功能和[DebuggerStepThrough]屬性應用到的功能,使其始終調試

,像這樣在被跳過:

using System.Diagnostics; 

namespace MyNamespace 
{ 
    public class Utilities 
    { 
     [DebuggerStepThrough] 
     public ThisIsAVeryLongMethod() 
     { 
      // 
      // Code 
      // 
     } 
    } 
} 

現在在你的代碼,當你逐步完成,調試器不會去的方法,只是進入到下一行

ShortMethod1(); 
ThisIsAVeryLongMethod(); 
ShortMethod2(); 
+0

我想問,但Google是我的朋友。我喜歡這一點,它爲我現在需要的特定目的而努力。我無法編輯答案,但有人應該編輯此解釋來說明如何使用[DebuggerStepThrough]屬性以及您需要System.Diagnostics名稱空間的事實。 – Pete 2009-09-01 07:15:37

+0

它也在課堂上工作嗎?在完成調試之後,我希望完全逐步完成班級中的每種方法,並且我確定它正常工作。 – 2011-06-14 07:20:20

5

執行以下操作

  • 右鍵點擊第一行的循環
  • 選擇 「運行至光標」

後這將做相當於在該行設置一個斷點,運行代碼就像按F5一樣,然後在它被命中時刪除斷點。

注意:如果循環代碼的執行到達另一個真實的斷點,則執行將停止在那裏,而不是您單擊的位置。如果您認爲可能發生這種情況,只需禁用所有斷點即可,請執行上述操作並重新啓用所有斷點。

+0

你能更多地討論了一下,這是應該如何表現?我試了一下,看起來好像如果我在嵌套if,while等代碼塊中嘗試這樣做,它實際上不會移動到光標,而是下一個if和/或while。我有點不高興,所以我可能只需要更多的「試錯」。 :) – Pete 2009-09-01 07:02:50

5

設置您要結束了另一個破發點,然後按F5鍵:)

+0

有趣的...所以如果我設置了兩個斷點,我可以在調試模式下使用「開始調試」命令跳過它們之間調用的所有代碼? – Pete 2009-09-01 06:59:19

+1

確實你可以:)但是,當在調試中運行時,'F5'被稱爲'Continue'。 – 2009-09-01 07:01:56

2

我不知道有什麼方法可以跳過塊,但你可以在塊後放入一個斷點,或者使用運行 - to-cursor(ctrl-F10,我認爲)。