VisualStudio斷點調試基礎

斷點調試運用的好的情況之下,可以輕鬆的解決DeBugger的任務。是時候總結一下VS的斷點調試了。

首先講一下本篇的一個重點 : “斷點條件”。斷點條件在有些IDE中叫做“斷點屬性”(例如:Flash Builder)。

步驟:

①:在斷點上  右擊-》條件... 如下圖所示:

wKioL1jNMnawrNmkAAC-Gv8TCqI299.png-wh_50

②:在彈出的《斷點條件》面板中,設置條件 name == "Aonaufly" 。如下圖

(此處我想額外談談Flash Builder的條件 , 在FB中寫爲name = "Aonaufly"爲name設值)

wKioL1jNPAWRmjPDAABc-nFjBkU978.png-wh_50

此時應該注意的是,“爲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這個端點上。

wKioL1jN7-XjYeMQAABq9vP6Gdo583.png-wh_50

當我們按F5的時候,程序跳到下一個斷點也就是Line24號斷點上。中間的Line22和Line23都不會斷在其處。另外Line21行處的GetString方法也不會進入其方法執行,總而言之就是直接跳到Line24(下一個斷點處)。我們再按一次F5的話,程序就直接執行完畢了。


F11:逐語句執行,會進入到斷點處方法的內部去執行

詳解: 我們先在Line21和Line24行處各打上斷點。我們運行程序後,程序會自動斷在Line21這個端點上。

當我們按F11後,因爲Line21處有方法GetString,程序會進入到GetString方法內部。如下圖:

wKioL1jN9ojBkXy3AACtAXjyO7o870.png-wh_50


F10 : 與F11很像,不同的地方時,它不會進入到斷點處的方法內部去執行(如:Line21處斷點的GetString方法),而是直接執行斷點後面的語句如(Line21後面的Line22行)

wKiom1jN-Gii4l3zAACOnwaK2FA847.png-wh_50


*命中條件

可以在VS的“輸出”窗口中打印信息

測試:

        public int Test(int x)
        {
            if (x <= 1)
                return 1;
            return Test(x - 1) + Test(x - 2);
        }

如下圖,在方法Line17處加一個斷點。再如下圖進行操作。

wKiom1jOAbDg0FnNAACULcyrefg557.png-wh_50

在彈出的“命中斷點時”的窗口中,進行如下操作。

wKiom1jOApDyFm82AAC9xRqbBGk566.png-wh_50

值得注意的是 : 繼續執行的意思是,在此處不進行中斷調試,程序繼續運行,只是在“輸出”窗口中打印信息

運行程序,看“輸出”窗口如下

wKioL1jOA2DjarygAAA6jIye_pc155.png-wh_50

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章