您好,登錄后才能下訂單哦!
斷點(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)上 右擊-》條件... 如下圖所示:
②:在彈出的《斷點(diǎn)條件》面板中,設(shè)置條件 name == "Aonaufly" 。如下圖
(此處我想額外談?wù)凢lash Builder的條件 , 在FB中寫為name = "Aonaufly"為name設(shè)值)
此時(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)上。
當(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)部。如下圖:
F10 : 與F11很像,不同的地方時(shí),它不會(huì)進(jìn)入到斷點(diǎn)處的方法內(nèi)部去執(zhí)行(如:Line21處斷點(diǎn)的GetString方法),而是直接執(zhí)行斷點(diǎn)后面的語句如(Line21后面的Line22行)
*命中條件
可以在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)行操作。
在彈出的“命中斷點(diǎn)時(shí)”的窗口中,進(jìn)行如下操作。
值得注意的是 : 繼續(xù)執(zhí)行的意思是,在此處不進(jìn)行中斷調(diào)試,程序繼續(xù)運(yùn)行,只是在“輸出”窗口中打印信息
運(yùn)行程序,看“輸出”窗口如下
免責(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)容。