位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# 進(jìn)入中斷模式

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-12-04

    進(jìn)入中斷模式的最簡(jiǎn)單方式是在運(yùn)行應(yīng)用程序時(shí),單擊IDE中的Pause按鈕。這個(gè)Pause按鈕在Debug工具欄上,你應(yīng)把該工具欄添加到Visual Studio默認(rèn)顯示的工具欄中。為此,右擊工具欄區(qū)域,然后選擇Debug。

使用之前顯示為灰色的3個(gè)按鈕。使用它們可以:

?暫停應(yīng)用程序的執(zhí)行,進(jìn)入中斷模式

?完全停止應(yīng)用程序的執(zhí)行(不進(jìn)入中斷模式,而是退出應(yīng)用程序)

?重新啟動(dòng)應(yīng)用程序

    暫停應(yīng)用程序是進(jìn)入中斷模式的最簡(jiǎn)單方式,但這并不能更好地控制停止程序運(yùn)行的位置。我們可能會(huì)停在應(yīng)用程序正常暫停的地方,例如,要求用戶輸入信息。還可以在長(zhǎng)時(shí)間的操作或循環(huán)過程中進(jìn)入中斷模式,但停止位置可能相當(dāng)隨機(jī)。一般情況下,最好使用斷點(diǎn)。

斷點(diǎn)

斷點(diǎn)是源代碼中自動(dòng)進(jìn)入中斷模式的標(biāo)記。它們可以配置為:

    ?遇到斷點(diǎn)時(shí),立即進(jìn)入中斷模式

    ?遇到斷點(diǎn)時(shí),如果布爾表達(dá)式的值為true,就進(jìn)入中斷模式

    ?遇到某斷點(diǎn)一定的次數(shù)后,進(jìn)入中斷模式

    ?在遇到斷點(diǎn)時(shí),如果自從上次遇到斷點(diǎn)以來變量的值發(fā)生了變化,就進(jìn)入中斷模式

    注意,上述功能僅能用于調(diào)試程序。如果編譯發(fā)布程序,將忽略所有斷點(diǎn)。

    添加斷點(diǎn)有幾種方法。要添加簡(jiǎn)單斷點(diǎn),當(dāng)遇到該斷點(diǎn)所在的代碼行時(shí),就中斷執(zhí)行,可以單擊該代碼行左邊的灰色E域。另外可以選擇Debug j Toggle Breakpoint菜單項(xiàng),或者按下F9鍵,將斷點(diǎn)放在有焦點(diǎn)的代碼行上。

    斷點(diǎn)在代碼行的旁邊顯示為一個(gè)紅色圓圈,而該行代碼也突出顯示。


    使用Breakpoints窗口(前面介紹過啟用該窗口的方法)還可以査看文件中的斷點(diǎn)信息。在Breakpoints窗口中,可以禁用斷點(diǎn)、刪除斷點(diǎn)、編輯斷點(diǎn)的屬性。還可以為斷點(diǎn)添加標(biāo)簽,這是對(duì)所選定的斷點(diǎn)進(jìn)行分組的一種便捷方式。注意,刪除描述信息左邊的記號(hào)后,禁用的斷點(diǎn)用未填充的紅色圓圈來表示??梢栽贚abels列中査看標(biāo)簽,并按標(biāo)簽過濾Breakpoints窗口中的項(xiàng)。

    這個(gè)窗口中顯示的Condition和Hit Count列是最有用的兩個(gè)列。右擊斷點(diǎn),并選擇Conditions...Expanding下拉框,通過顯示的如下選項(xiàng),就可以編輯它們:

    ? Conditional Expression

    ? Hit Count

    ? Filter

    選擇Conditions...將彈出一個(gè)對(duì)話框。在該對(duì)話框中可以鍵人任意布爾表達(dá)式,該表達(dá)式可以包含在斷點(diǎn)位置仍在作用域內(nèi)的任何變量。例如,可配置一個(gè)斷點(diǎn),輸入表達(dá)式maxVal>4,選擇Istrue選項(xiàng),在遇到這個(gè)斷點(diǎn)且maxVal的值大于4時(shí),就會(huì)觸發(fā)該斷點(diǎn)。還可以檢査這個(gè)表達(dá)式是否有變化,僅當(dāng)發(fā)生變化時(shí),才會(huì)觸發(fā)斷點(diǎn)(例如,如果在遇到斷點(diǎn)時(shí),maxVal的值從2改為6,就會(huì)觸發(fā)該斷點(diǎn))。

    選擇Hit Count將彈出另一個(gè)對(duì)話框。在這個(gè)對(duì)話框中可以指定在遇到斷點(diǎn)多少次后才觸發(fā)該斷點(diǎn)。該對(duì)話框中的下拉列表提供了如下選項(xiàng):

?總是中斷(默認(rèn)值)

?在Hit Count等于多少次時(shí)中斷 

?在Hit Count是某個(gè)數(shù)的倍數(shù)時(shí)中斷

?在Hit Count大于或等于多少次時(shí)中斷

所選的選項(xiàng)與在選項(xiàng)旁邊的文本框中輸入的值共同確定斷點(diǎn)的行為。這個(gè)計(jì)數(shù)在比較長(zhǎng)的循環(huán)中很有用,例如,在執(zhí)行了前5000次循環(huán)后需要中斷。如果不這么做,中斷并重啟5000次是很痛苦的。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部