斷點調試運用的好的情況之下,可以輕鬆的解決DeBugger的任務。是時候總結一下VS的斷點調試了。
首先講一下本篇的一個重點 : “斷點條件”。斷點條件在有些IDE中叫做“斷點屬性”(例如:Flash Builder)。
步驟:
①:在斷點上 右擊-》條件... 如下圖所示:
②:在彈出的《斷點條件》面板中,設置條件 name == "Aonaufly" 。如下圖
(此處我想額外談談Flash Builder的條件 , 在FB中寫爲name = "Aonaufly"爲name設值)
此時應該注意的是,“爲true(T)”表示當條件爲true時,進入此斷點調試。另外注意的是此斷點行“name”,所以在《斷點條件》面板中可對name進行條件判斷。
測試了一下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace NetWorkTest { public class Program { public string GetString(string @name) { string _back = "Hello " + @name; Console.WriteLine(_back); return _back; } public static void Main(string[] args) { Program pro = new Program(); string @rusult = pro.GetString("Aonaufly"); Console.WriteLine(@rusult); string @cc = pro.GetString("Kayer"); Console.WriteLine(@cc); Console.Read(); } } }
經測試string @rusult = pro.GetString("Aonaufly");此行可進入條件斷點,而string @cc = pro.GetString("Kayer");則無法進入斷點調試。
其次,關於其他的調試快捷建 F5 ,F10 , F11
F5 : 直接執行到下一個斷點
詳解: 我們先在Line21和Line24行處各打上斷點。我們運行程序後,程序會自動斷在Line21這個端點上。
當我們按F5的時候,程序跳到下一個斷點也就是Line24號斷點上。中間的Line22和Line23都不會斷在其處。另外Line21行處的GetString方法也不會進入其方法執行,總而言之就是直接跳到Line24(下一個斷點處)。我們再按一次F5的話,程序就直接執行完畢了。
F11:逐語句執行,會進入到斷點處方法的內部去執行
詳解: 我們先在Line21和Line24行處各打上斷點。我們運行程序後,程序會自動斷在Line21這個端點上。
當我們按F11後,因爲Line21處有方法GetString,程序會進入到GetString方法內部。如下圖:
F10 : 與F11很像,不同的地方時,它不會進入到斷點處的方法內部去執行(如:Line21處斷點的GetString方法),而是直接執行斷點後面的語句如(Line21後面的Line22行)
*命中條件
可以在VS的“輸出”窗口中打印信息
測試:
public int Test(int x) { if (x <= 1) return 1; return Test(x - 1) + Test(x - 2); }
如下圖,在方法Line17處加一個斷點。再如下圖進行操作。
在彈出的“命中斷點時”的窗口中,進行如下操作。
值得注意的是 : 繼續執行的意思是,在此處不進行中斷調試,程序繼續運行,只是在“輸出”窗口中打印信息
運行程序,看“輸出”窗口如下