小編給大家分享一下Eclipse斷點(diǎn)怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元永吉做網(wǎng)站,已為上家服務(wù),為永吉各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
1. 示例程序
BreakpointDemo是一個(gè)臆造的應(yīng)用程序,只是為了便于講解Eclipse中各類斷點(diǎn)的使用罷了。其代碼如下圖所示,
BreakpointDemo主要包含兩個(gè)方法:
[1] setValue,該方法根據(jù)指定的次數(shù)(count),對(duì)成員變量value進(jìn)行賦值,值的范圍為0-9的隨機(jī)整數(shù)。
[2] printValue,該方法會(huì)調(diào)用setValue()對(duì)value進(jìn)行賦值,并打印出value的值;但,如果value能被3整除,那么就會(huì)拋出IllegalArgumentException異常。
2. Line Breakpoint
Line Breakpoin是最簡(jiǎn)單的Eclipse斷點(diǎn),只要雙擊某行代碼對(duì)應(yīng)的左側(cè)欄,就對(duì)該行設(shè)置上斷點(diǎn)。此處,對(duì)第20行代碼設(shè)置上Line Breakpoint,如下圖所示,
可以為L(zhǎng)ine Breakpoint設(shè)置一個(gè)條件,那么當(dāng)程序運(yùn)行到該斷點(diǎn)時(shí),只有滿足設(shè)定的條件,才會(huì)被中斷。右鍵點(diǎn)擊第20行的斷點(diǎn),選擇"Breakpoint Properties..."。
在彈出的屬性對(duì)話框中,勾選上"Conditional",然后在文本框中輸入"count % 2 == 0"。
該條件表示,當(dāng)程序運(yùn)行到第20行時(shí),只有當(dāng)count為偶數(shù)時(shí),程序才會(huì)被中斷。細(xì)心地話,你會(huì)發(fā)現(xiàn)該斷點(diǎn)的圖標(biāo)發(fā)生了改變,多了一個(gè)問號(hào)。
3. Watchpoint
Line Breakpoint關(guān)注于程序運(yùn)行的"過程",大家也常把使用這種斷點(diǎn)的調(diào)試稱為單步調(diào)試。但有時(shí)候,我們對(duì)程序的運(yùn)行過程不太了解,可能也不太關(guān)心,不能確定在什么地方設(shè)置斷點(diǎn)比較合適,而可能比較關(guān)注某個(gè)關(guān)鍵變量的變化或使用。此時(shí),就可以為該變量設(shè)置一種特殊的斷點(diǎn)--Watchpoint。在此示例,我們最關(guān)心的就是成員變量value的值,那么就可以為它設(shè)置一個(gè)Watchpoint,雙擊第9行代碼對(duì)應(yīng)的左側(cè)欄就可以了。
使用在2中所提及的方法,查看該斷點(diǎn)的屬性,
默認(rèn)地,當(dāng)該變量被訪問或它的值被修改時(shí),程序都會(huì)被中斷。但在本示例中,只希望當(dāng)對(duì)value的值進(jìn)行修改時(shí)程序才需要被中斷,所以取消對(duì)"Access"的勾選。
這時(shí),我們會(huì)發(fā)現(xiàn)原來的Watchpoin圖標(biāo)也有變化了。
4. Method Breakpoint
與關(guān)注對(duì)某個(gè)變量的訪問與修改一樣,我們也可以關(guān)注程序?qū)δ硞€(gè)方法的調(diào)用情況,即,可以設(shè)置Method Breakpoint。在此處,設(shè)置針對(duì)方法setValue的Method Breakpoint。同理,雙擊第11行代碼對(duì)應(yīng)的左側(cè)欄即可。
仍然要查看該斷點(diǎn)的屬性。默認(rèn)地,只勾選了"Entry",而沒有勾選"Exit"。
這表示,當(dāng)剛進(jìn)入該方法(調(diào)用開始)時(shí),程序會(huì)被中斷;而,離開該方法(調(diào)用結(jié)束)時(shí),程序并不會(huì)被中斷。在本示例中,需要同時(shí)勾選上"Exit"。
點(diǎn)擊OK之后,可以看到該斷點(diǎn)的圖標(biāo)也有所改變。
根據(jù)這里的設(shè)置,當(dāng)程序運(yùn)行到第20行后會(huì)在第12行被中斷,盡管這里沒有顯式的斷點(diǎn),但這就是setValue()方法的入口(Entry)。必須注意地是,程序在運(yùn)行到第16行時(shí)不會(huì)被中斷,盡管它看起來像是setValue()方法的出口(Exit)。實(shí)際上,程序會(huì)在第17行被中斷,這里才是setValue()調(diào)用結(jié)束的地方。
5. Exception Breakpoint
如果,我們期望某個(gè)特定異常發(fā)生時(shí)程序能夠被中斷,以方便查看當(dāng)時(shí)程序所處的狀態(tài)。通過設(shè)置Exception Breakpoint就能達(dá)到這一目標(biāo)。本示例故意在第23行拋出了IllegalArgumentException異常,我們期望程序運(yùn)行到此處時(shí)會(huì)被中斷。但我們不直接為此行代碼設(shè)置Line Breakpoint,而是為IllegalArgumentException設(shè)置Exception Breakpoint。設(shè)置Exception Breakpoint的方法與其它類型斷點(diǎn)都不同,它不能通過雙擊左側(cè)欄的方式在代碼編輯器上直接進(jìn)行設(shè)置。點(diǎn)擊Breakpoints視圖右上角形如Ji的圖標(biāo),
會(huì)彈出如下所示的對(duì)話框,
在其中選中IllegalArgumentException,并點(diǎn)擊OK,這時(shí)一個(gè)Exception Breakpoint就設(shè)置好了。
當(dāng)value為3的倍數(shù)時(shí),程序會(huì)在第23行被中斷,這時(shí)我們就能使用調(diào)試器來看看value具體是等于0,3或6。
6. Class Load Breakpoint
還有一種大家平時(shí)可能不太用的斷點(diǎn)--Class Load Breakpoint,即當(dāng)某個(gè)類被加載時(shí),通過該斷點(diǎn)可以中斷程序。
以上是“Eclipse斷點(diǎn)怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!