溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VisualStudio斷點(diǎn)調(diào)試基礎(chǔ)

發(fā)布時(shí)間:2020-07-15 04:21:03 來源:網(wǎng)絡(luò) 閱讀:904 作者:Aonaufly 欄目:編程語言

斷點(diǎn)調(diào)試運(yùn)用的好的情況之下,可以輕松的解決DeBugger的任務(wù)。是時(shí)候總結(jié)一下VS的斷點(diǎn)調(diào)試了。

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

步驟:

①:在斷點(diǎn)上  右擊-》條件... 如下圖所示:

VisualStudio斷點(diǎn)調(diào)試基礎(chǔ)

②:在彈出的《斷點(diǎn)條件》面板中,設(shè)置條件 name == "Aonaufly" 。如下圖

(此處我想額外談?wù)凢lash Builder的條件 , 在FB中寫為name = "Aonaufly"為name設(shè)值)

VisualStudio斷點(diǎn)調(diào)試基礎(chǔ)

此時(shí)應(yīng)該注意的是,“為true(T)”表示當(dāng)條件為true時(shí),進(jìn)入此斷點(diǎn)調(diào)試。另外注意的是此斷點(diǎn)行“name”,所以在《斷點(diǎn)條件》面板中可對(duì)name進(jìn)行條件判斷。

測(cè)試了一下:

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();
        }
    }
}

經(jīng)測(cè)試string @rusult = pro.GetString("Aonaufly");此行可進(jìn)入條件斷點(diǎn),而string @cc = pro.GetString("Kayer");則無法進(jìn)入斷點(diǎn)調(diào)試。

其次,關(guān)于其他的調(diào)試快捷建 F5 ,F(xiàn)10 , F11

F5 : 直接執(zhí)行到下一個(gè)斷點(diǎn)

詳解: 我們先在Line21和Line24行處各打上斷點(diǎn)。我們運(yùn)行程序后,程序會(huì)自動(dòng)斷在Line21這個(gè)端點(diǎn)上。

VisualStudio斷點(diǎn)調(diào)試基礎(chǔ)

當(dāng)我們按F5的時(shí)候,程序跳到下一個(gè)斷點(diǎn)也就是Line24號(hào)斷點(diǎn)上。中間的Line22和Line23都不會(huì)斷在其處。另外Line21行處的GetString方法也不會(huì)進(jìn)入其方法執(zhí)行,總而言之就是直接跳到Line24(下一個(gè)斷點(diǎn)處)。我們?cè)侔匆淮蜦5的話,程序就直接執(zhí)行完畢了。


F11:逐語句執(zhí)行,會(huì)進(jìn)入到斷點(diǎn)處方法的內(nèi)部去執(zhí)行

詳解: 我們先在Line21和Line24行處各打上斷點(diǎn)。我們運(yùn)行程序后,程序會(huì)自動(dòng)斷在Line21這個(gè)端點(diǎn)上。

當(dāng)我們按F11后,因?yàn)長(zhǎng)ine21處有方法GetString,程序會(huì)進(jìn)入到GetString方法內(nèi)部。如下圖:

VisualStudio斷點(diǎn)調(diào)試基礎(chǔ)


F10 : 與F11很像,不同的地方時(shí),它不會(huì)進(jìn)入到斷點(diǎn)處的方法內(nèi)部去執(zhí)行(如:Line21處斷點(diǎn)的GetString方法),而是直接執(zhí)行斷點(diǎn)后面的語句如(Line21后面的Line22行)

VisualStudio斷點(diǎn)調(diào)試基礎(chǔ)


*命中條件

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

測(cè)試:

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

如下圖,在方法Line17處加一個(gè)斷點(diǎn)。再如下圖進(jìn)行操作。

VisualStudio斷點(diǎn)調(diào)試基礎(chǔ)

在彈出的“命中斷點(diǎn)時(shí)”的窗口中,進(jìn)行如下操作。

VisualStudio斷點(diǎn)調(diào)試基礎(chǔ)

值得注意的是 : 繼續(xù)執(zhí)行的意思是,在此處不進(jìn)行中斷調(diào)試,程序繼續(xù)運(yùn)行,只是在“輸出”窗口中打印信息

運(yùn)行程序,看“輸出”窗口如下

VisualStudio斷點(diǎn)調(diào)試基礎(chǔ)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI