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

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

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

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

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

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

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

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

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

斷點(diǎn)

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

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

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

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

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

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

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

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


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

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

    ? Conditional Expression

    ? Hit Count

    ? Filter

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

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

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

?在Hit Count等于多少次時中斷 

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

?在Hit Count大于或等于多少次時中斷

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

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

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