偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

圖文并茂詳解Eclipse斷點(diǎn)

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

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

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"。

#p#

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

3. Watchpoint

Line Breakpoint關(guān)注于程序運(yùn)行的"過(guò)程",大家也常把使用這種斷點(diǎn)的調(diào)試稱為單步調(diào)試。但有時(shí)候,我們對(duì)程序的運(yùn)行過(guò)程不太了解,可能也不太關(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)該變量被訪問(wèn)或它的值被修改時(shí),程序都會(huì)被中斷。但在本示例中,只希望當(dāng)對(duì)value的值進(jìn)行修改時(shí)程序才需要被中斷,所以取消對(duì)"Access"的勾選。

#p#

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

4. Method Breakpoint

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

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

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

#p#

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

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

5. Exception Breakpoint

如果,我們期望某個(gè)特定異常發(fā)生時(shí)程序能夠被中斷,以方便查看當(dāng)時(shí)程序所處的狀態(tài)。通過(guò)設(shè)置Exception Breakpoint就能達(dá)到這一目標(biāo)。本示例故意在第23行拋出了IllegalArgumentException異常,我們期望程序運(yùn)行到此處時(shí)會(huì)被中斷。但我們不直接為此行代碼設(shè)置Line Breakpoint,而是為IllegalArgumentException設(shè)置Exception Breakpoint。設(shè)置Exception Breakpoint的方法與其它類型斷點(diǎn)都不同,它不能通過(guò)雙擊左側(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)試器來(lái)看看value具體是等于0,3或6。

6. Class Load Breakpoint

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

小  結(jié)

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

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

【編輯推薦】

  1. Google開源其Eclipse插件
  2. Eclipse十年磨一劍,霜刃未曾試
  3. Eclipse 3.1新特性及各插件詳細(xì)介紹
  4. Java開發(fā)框架Play框架快速入門
  5. IBM演示基于Eclipse 3.0的軟件開發(fā)平臺(tái)新功能
責(zé)任編輯:林師授 來(lái)源: Sha Jiang的博客
相關(guān)推薦

2012-07-27 10:27:19

OfficeWord

2011-07-04 16:57:36

QT 布局 界面

2011-08-03 15:21:23

ORM XCode 數(shù)據(jù)庫(kù)

2011-01-18 18:08:28

Thunderbird

2011-01-18 18:29:28

Thunderbird

2011-07-18 13:11:53

2011-01-19 17:34:39

Postfix如何接收郵件

2012-07-23 14:39:27

移動(dòng)

2011-01-19 17:30:21

Postfix郵件投遞

2023-05-16 08:01:13

架構(gòu)網(wǎng)站演進(jìn)

2011-01-20 09:13:18

Postfix

2021-12-27 08:04:49

架構(gòu)網(wǎng)站高并發(fā)

2015-07-08 10:25:05

Javascript上下文作用域

2011-08-09 16:47:24

Xcode 4發(fā)布程序

2011-01-19 10:30:20

UbuntuThunderbird

2011-01-21 10:28:06

2022-07-18 14:33:05

PythonPDF報(bào)告

2012-05-29 14:27:34

PHP

2009-07-15 14:49:16

2022-04-20 18:30:00

算法架構(gòu)粗排
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)