日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
圖文并茂詳解Eclipse斷點(diǎn)

大家肯定都用過Eclipse的調(diào)試的功能,在調(diào)試的過程中自然也無法避免要使用斷點(diǎn)(breakpoint),但不知是否對Eclipse中各類斷點(diǎn)都有所了解。本篇圖文并茂地介紹了Eclipse中全部類型的斷點(diǎn),及其設(shè)置,希望對大家有所幫助。

創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為確山企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),確山網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

1. 示例程序
BreakpointDemo是一個臆造的應(yīng)用程序,只是為了便于講解Eclipse中各類斷點(diǎn)的使用罷了。其代碼如下圖所示,

BreakpointDemo主要包含兩個方法:

[1] setValue,該方法根據(jù)指定的次數(shù)(count),對成員變量value進(jìn)行賦值,值的范圍為0-9的隨機(jī)整數(shù)。

[2] printValue,該方法會調(diào)用setValue()對value進(jìn)行賦值,并打印出value的值;但,如果value能被3整除,那么就會拋出IllegalArgumentException異常。

2. Line Breakpoint

Line Breakpoin是最簡單的Eclipse斷點(diǎn),只要雙擊某行代碼對應(yīng)的左側(cè)欄,就對該行設(shè)置上斷點(diǎn)。此處,對第20行代碼設(shè)置上Line Breakpoint,如下圖所示,

可以為Line Breakpoint設(shè)置一個條件,那么當(dāng)程序運(yùn)行到該斷點(diǎn)時,只有滿足設(shè)定的條件,才會被中斷。右鍵點(diǎn)擊第20行的斷點(diǎn),選擇"Breakpoint Properties..."。

在彈出的屬性對話框中,勾選上"Conditional",然后在文本框中輸入"count % 2 == 0"。

#p#

該條件表示,當(dāng)程序運(yùn)行到第20行時,只有當(dāng)count為偶數(shù)時,程序才會被中斷。細(xì)心地話,你會發(fā)現(xiàn)該斷點(diǎn)的圖標(biāo)發(fā)生了改變,多了一個問號。

3. Watchpoint

Line Breakpoint關(guān)注于程序運(yùn)行的"過程",大家也常把使用這種斷點(diǎn)的調(diào)試稱為單步調(diào)試。但有時候,我們對程序的運(yùn)行過程不太了解,可能也不太關(guān)心,不能確定在什么地方設(shè)置斷點(diǎn)比較合適,而可能比較關(guān)注某個關(guān)鍵變量的變化或使用。此時,就可以為該變量設(shè)置一種特殊的斷點(diǎn)--Watchpoint。在此示例,我們最關(guān)心的就是成員變量value的值,那么就可以為它設(shè)置一個Watchpoint,雙擊第9行代碼對應(yīng)的左側(cè)欄就可以了。

使用在2中所提及的方法,查看該斷點(diǎn)的屬性,

默認(rèn)地,當(dāng)該變量被訪問或它的值被修改時,程序都會被中斷。但在本示例中,只希望當(dāng)對value的值進(jìn)行修改時程序才需要被中斷,所以取消對"Access"的勾選。

#p#

這時,我們會發(fā)現(xiàn)原來的Watchpoin圖標(biāo)也有變化了。

4. Method Breakpoint

與關(guān)注對某個變量的訪問與修改一樣,我們也可以關(guān)注程序?qū)δ硞€方法的調(diào)用情況,即,可以設(shè)置Method Breakpoint。在此處,設(shè)置針對方法setValue的Method Breakpoint。同理,雙擊第11行代碼對應(yīng)的左側(cè)欄即可。

仍然要查看該斷點(diǎn)的屬性。默認(rèn)地,只勾選了"Entry",而沒有勾選"Exit"。

這表示,當(dāng)剛進(jìn)入該方法(調(diào)用開始)時,程序會被中斷;而,離開該方法(調(diào)用結(jié)束)時,程序并不會被中斷。在本示例中,需要同時勾選上"Exit"。

#p#

點(diǎn)擊OK之后,可以看到該斷點(diǎn)的圖標(biāo)也有所改變。

根據(jù)這里的設(shè)置,當(dāng)程序運(yùn)行到第20行后會在第12行被中斷,盡管這里沒有顯式的斷點(diǎn),但這就是setValue()方法的入口(Entry)。必須注意地是,程序在運(yùn)行到第16行時不會被中斷,盡管它看起來像是setValue()方法的出口(Exit)。實(shí)際上,程序會在第17行被中斷,這里才是setValue()調(diào)用結(jié)束的地方。

5. Exception Breakpoint

如果,我們期望某個特定異常發(fā)生時程序能夠被中斷,以方便查看當(dāng)時程序所處的狀態(tài)。通過設(shè)置Exception Breakpoint就能達(dá)到這一目標(biāo)。本示例故意在第23行拋出了IllegalArgumentException異常,我們期望程序運(yùn)行到此處時會被中斷。但我們不直接為此行代碼設(shè)置Line Breakpoint,而是為IllegalArgumentException設(shè)置Exception Breakpoint。設(shè)置Exception Breakpoint的方法與其它類型斷點(diǎn)都不同,它不能通過雙擊左側(cè)欄的方式在代碼編輯器上直接進(jìn)行設(shè)置。點(diǎn)擊Breakpoints視圖右上角形如Ji的圖標(biāo),

會彈出如下所示的對話框,

在其中選中IllegalArgumentException,并點(diǎn)擊OK,這時一個Exception Breakpoint就設(shè)置好了。

當(dāng)value為3的倍數(shù)時,程序會在第23行被中斷,這時我們就能使用調(diào)試器來看看value具體是等于0,3或6。

6. Class Load Breakpoint

還有一種大家平時可能不太用的斷點(diǎn)--Class Load Breakpoint,即當(dāng)某個類被加載時,通過該斷點(diǎn)可以中斷程序。

小  結(jié)

上述的Eclipse斷點(diǎn),我們在現(xiàn)實(shí)工作中肯定都有意或無意地使用過其中的幾種,只是不一定十分了解內(nèi)情罷了。使用好Eclipse的各種斷點(diǎn),可以把很好地幫助我們分析程序,定位問題。

原文鏈接:http://www.blogjava.net/jiangshachina/archive/2011/11/20/364367.html


分享名稱:圖文并茂詳解Eclipse斷點(diǎn)
文章鏈接:http://www.5511xx.com/article/djedceh.html