在寫(xiě)程序調(diào)試過(guò)程中,除了我們之前講的任意行下斷點(diǎn)以外,由于程序?qū)嶋H執(zhí)行的復(fù)雜性,處于便捷和更加精準(zhǔn)的需求,VC為我們還提供了條件斷點(diǎn),即滿足某一條件時(shí)才觸發(fā)斷點(diǎn)。
舉一個(gè)具體場(chǎng)景,比如當(dāng)程序進(jìn)行循環(huán)等大量運(yùn)算時(shí),如果單步調(diào)試顯然會(huì)相當(dāng)費(fèi)事,而條件斷點(diǎn)就可以很好解決這個(gè)問(wèn)題。
來(lái)一個(gè)具體的程序例子:打印九九乘法表程序,代碼如下:
比如我們想在打印8*9=72這個(gè)結(jié)果時(shí)候斷點(diǎn)停止,如果單步運(yùn)行顯然要按70多下F10…? 這個(gè)時(shí)候無(wú)疑條件斷點(diǎn)將是很好的選擇!具體如下:
首先在printf輸入語(yǔ)句處F9下斷點(diǎn)?。ㄗ⒁膺@個(gè)斷點(diǎn)一定要在i和j在滿足8和9的時(shí)候可以觸發(fā)處,不然即使條件滿足也將無(wú)法觸發(fā)斷點(diǎn)。)
然后點(diǎn)擊Edit – 斷點(diǎn) 或者按快捷鍵 Alt+F9,彈出斷點(diǎn)設(shè)置框,如下圖:
這個(gè)時(shí)候,在下方斷點(diǎn)處已經(jīng)有一條剛剛F9設(shè)置的斷點(diǎn),可以看到位于第十行,單擊這條斷點(diǎn)信息,在分隔符處會(huì)自動(dòng)加載,并且條件按鈕這個(gè)button也可以點(diǎn)擊了,如下圖:
繼續(xù)點(diǎn)擊條件button,在回車(chē)表達(dá)式的編輯框內(nèi)輸入條件:“i==9 && j==8”(這里還是C語(yǔ)言語(yǔ)法,不帶雙引號(hào)哈)
點(diǎn)擊確定關(guān)閉對(duì)話框!注意觀察斷點(diǎn)的條件也已經(jīng)進(jìn)行了更新。
OK,這個(gè)時(shí)候按F5運(yùn)行程序!注意觀察!有提示如下:
單擊確定,可以觀察到控制臺(tái)的輸出和當(dāng)前i與j的值均為條件里的要求。如下:
以上,條件斷點(diǎn)完畢!
怎么樣,大家學(xué)會(huì)了嗎?
C語(yǔ)言研究中心(www.sztianhecheng.cn)