亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 學(xué)院 > 編程設(shè)計(jì) > 正文

Eclipse 調(diào)試器 零距離接觸實(shí)戰(zhàn)技巧

2020-07-14 13:37:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
調(diào)試的方法雖然千千萬(wàn)萬(wàn),但歸根結(jié)底,就是找到引發(fā)錯(cuò)誤的代碼。Eclipse調(diào)試器的目標(biāo)是讓程序員能對(duì)本地或遠(yuǎn)程程序進(jìn)行錯(cuò)誤偵測(cè)與診斷。該調(diào)試器提 供所有標(biāo)準(zhǔn)調(diào)試功能,包括進(jìn)行單步執(zhí)行、設(shè)置斷點(diǎn)和值、檢查變量和值以及暫掛和恢復(fù)線程的能力。這篇文章主要講述Eclipse調(diào)試器,包括Debug視 圖,斷點(diǎn)的設(shè)置,Java代碼的調(diào)試等等。與一些理論性較強(qiáng)的文章相比,本文更注重實(shí)踐,為讀者提供更加使用的調(diào)試技巧。

Eclipse 平臺(tái)的最大特色是插件化(Plugin)。調(diào)試是任何程序員都無(wú)法回避的工作。因此Eclipse的內(nèi)置插件Java開(kāi)發(fā)工具包(Java Development Toolkit,簡(jiǎn)稱JDT)中集成了一個(gè)功能強(qiáng)大的Java調(diào)試器(Debugger)。實(shí)際上,JDT是Eclipse工作平臺(tái)(Eclipse Platform Workbench)的基礎(chǔ)工具,除了調(diào)試器,還提供透視圖、視圖、編輯器、搜索等Eclipse基礎(chǔ)功能。

由于Eclipse調(diào)試器采用了基于客戶端/服務(wù)器的設(shè)計(jì)模式,遠(yuǎn)程應(yīng)用的調(diào)試變得與本地一樣簡(jiǎn)單。其工作原理是,本地Eclipse工作平臺(tái)充當(dāng)調(diào)試的客戶端,而遠(yuǎn)程應(yīng)用所在的機(jī)器則充當(dāng)了調(diào)試服務(wù)器的角色。

Debug 視圖

Debug視圖作為Eclipse調(diào)試器透視圖的一部分,管理與程序調(diào)試相關(guān)的功能。如圖所示,Debug視圖呈樹(shù)狀結(jié)構(gòu),每一個(gè)線程對(duì)應(yīng)一樹(shù)節(jié)點(diǎn)。圖中顯示的是暫掛線程Main的調(diào)試堆棧幀結(jié)構(gòu)。

Eclipse 調(diào)試器:零距離接觸實(shí)戰(zhàn)技巧

作為標(biāo)準(zhǔn)的Java調(diào)試平臺(tái),Debug視圖提供了許多執(zhí)行控制命令(Execution Control Commands),用于在程序中設(shè)置/取消斷點(diǎn),單步執(zhí)行,暫掛與恢復(fù)線程。以下是一些常用的執(zhí)行控制命令:

1. Layout布局

Debug視圖的布局與斷點(diǎn)調(diào)試等主體功能相比,顯得并不那么乍眼,因此也常被人忽略,不過(guò)Eclipse的魅力之一就是它的細(xì)節(jié)做的特別完美。我們簡(jiǎn)單介紹一下Debug視圖布局的特點(diǎn),如圖所示。

第一個(gè)特點(diǎn)是Automatic功能。選擇菜單選項(xiàng)Layout -> Automatic,可以實(shí)現(xiàn)Debug視圖在樹(shù)狀模式與Breadrumb模式之間的自動(dòng)互換。相信很多編程人員都喜歡Breadrumb模式,向面包片一樣,一層一層的,直觀,醒目。

Layout菜單的第二個(gè)特點(diǎn)Breadrumb模式。選擇菜單選項(xiàng)Layout -> Breadcrumb,打開(kāi)Breadrumb模式。除此之外,選擇菜單選項(xiàng)Layout -> Auto-Expand Breadcrumb,可實(shí)現(xiàn)自動(dòng)展開(kāi)Breadrumb模式。當(dāng)選擇下拉框時(shí),可自動(dòng)定位到暫掛線程的調(diào)試堆棧幀。這個(gè)細(xì)節(jié)對(duì)于編程人員來(lái)說(shuō),也是非常 的方便。

Eclipse 調(diào)試器:零距離接觸實(shí)戰(zhàn)技巧

2. 調(diào)試啟動(dòng)停止等相關(guān)命令

Debug視圖提供了諸多的啟??刂泼?,叫法上與其它的調(diào)試器可能稍微有些不同,具體如下:

啟動(dòng)調(diào)試視圖:Eclipse提供三種方式來(lái)啟動(dòng)程序(Launch)的調(diào)試,分別是通過(guò)菜單(Run –> Debug)、圖標(biāo)(“綠色臭蟲(chóng)”)以及快捷鍵(F11),在這一點(diǎn)上,與其他命令(例如Run)類似。

停止調(diào)試:Eclipse通過(guò)Terminate命令終止對(duì)本地程序的調(diào)試。特別的,對(duì)于遠(yuǎn)程程序的調(diào)試,Eclipse使用 Disconnect命令來(lái)終止與遠(yuǎn)程JVM的socket連接。前面我們談到,Eclipse調(diào)試器采用了基于客戶端/服務(wù)器的設(shè)計(jì)模式,本地 Eclipse工作平臺(tái)充當(dāng)調(diào)試的客戶端,而遠(yuǎn)程應(yīng)用所在的JVM則充當(dāng)了調(diào)試服務(wù)器的角色。簡(jiǎn)單的說(shuō),Terminate命令終止本地調(diào) 試,Disconnect命令終止遠(yuǎn)程調(diào)試。Terminate/Disconnect All終止所有的調(diào)試,包括本地與遠(yuǎn)程。

重新啟動(dòng)調(diào)試:Eclipse通過(guò)Relaunch命令重新啟動(dòng)調(diào)試。這里需要指出的是Relaunch支持兩種重啟動(dòng)模式,一種是針對(duì)已經(jīng)停止的程序調(diào) 試,另一種是針對(duì)Active的當(dāng)程序調(diào)試。前者不難理解,效果上等同于Terminate+Launch。后者的處理方式有些不同,效果上則等同于 Launch一個(gè)新的Debug項(xiàng)。實(shí)際上,針對(duì)后一種情況,我們通常采用Eclipse的Terminate and Relaunch命令來(lái)達(dá)到重啟Debug的目的。

刪除調(diào)試項(xiàng):Eclipse支持針對(duì)多個(gè)程序的調(diào)試。我們稱每一項(xiàng)對(duì)應(yīng)一個(gè)Debug Item。Remove命令將某一個(gè)Debug Item從當(dāng)前的Debug視圖中刪除。不過(guò),Remove命令只適用于已停止的Debug Item,而對(duì)于運(yùn)行中的Debug Item,Eclipse提供了Terminate and Remove命令。假如想停止并清除所有的Debug Item,則可以通過(guò)Terminate and Remove All命令。此外,Eclipse還提供了Copy Stack命令或者快捷鍵Ctr+C,可將調(diào)試堆棧幀內(nèi)容拷貝至剪貼板中,這樣效果上就等同于“撤銷”。

以上這些命令雖然有些瑣碎,但是非常能反映Eclipse對(duì)細(xì)節(jié)的把握與控制。

3. 單步執(zhí)行

相信任何調(diào)試人員對(duì)單步調(diào)試非常的熟悉。Eclipse提供step into、step over、 step return三個(gè)命令來(lái)支持單步調(diào)試。三者的具體區(qū)別是:step into(快捷鍵F5)就是單步執(zhí)行,遇到子函數(shù)就進(jìn)入并且繼續(xù)單步執(zhí)行;step over(快捷鍵F6)是在單步執(zhí)行時(shí),在函數(shù)內(nèi)遇到子函數(shù)時(shí)不會(huì)進(jìn)入子函數(shù)內(nèi)單步執(zhí)行,而是將子函數(shù)整個(gè)執(zhí)行完再停止,也就是把子函數(shù)整個(gè)作為一步。 step return(快捷鍵F7)就是單步執(zhí)行到子函數(shù)內(nèi)時(shí),用step return就可以執(zhí)行完子函數(shù)余下部分,并返回到上一層函數(shù)。說(shuō)的通俗點(diǎn)就是,step into:進(jìn)入子函數(shù),step over:越過(guò)子函數(shù),但子函數(shù)會(huì)執(zhí)行,step return:跳出子函數(shù)。

此外,Eclipse還提供了Run to line(快捷鍵Ctr + R)功能,從開(kāi)始處運(yùn)行程序,到正在執(zhí)行的斷點(diǎn)暫停。

4. Drop to Frame

Drop to Frame功能雖然不屬于單步調(diào)試的核心,但是該功能非常的適用,它為調(diào)試人員提供了調(diào)試回退的機(jī)會(huì)。Drop to Frame可以重新跳到當(dāng)前方法的開(kāi)始處重新執(zhí)行,并且所有上下文變量的值也相應(yīng)回到初始時(shí)刻,如圖所示。

Eclipse 調(diào)試器:零距離接觸實(shí)戰(zhàn)技巧

5. Step Filters

當(dāng)在你調(diào)試的時(shí)候,你只希望查看自己的代碼,而不是從JDK或者是其他庫(kù)中的代碼,甚至是你也想屏蔽自己代碼庫(kù)中的框架部分代碼。

針對(duì)這樣的需求,Eclipse提供了逐步過(guò)濾器(Step Filters)選項(xiàng)指的是一直執(zhí)行直到遇到未經(jīng)過(guò)濾的位置或斷點(diǎn)。Step Filters功能由Use Step Filters,Edit Step Filters,F(xiàn)ilter Type,F(xiàn)ilter Package四項(xiàng)組成。

具體操作如下:

步驟 1: Windows -> Preferences -> Java -> Debug -> Step Filtering.

步驟 2:選擇‘Use Step Filters’.

步驟 3:在屏幕上選中所需的選項(xiàng)。你可以添加你自己代碼庫(kù)中的部分代碼。

步驟 4:點(diǎn)擊‘Apply’.

原理上,Edit Step Filter命令用于配置Step Filter規(guī)則,而Filter Type與Filter Package分別指的是過(guò)濾的Java類型與Java Package,如圖所示。

Eclipse 調(diào)試器:零距離接觸實(shí)戰(zhàn)技巧

6. 聲明選項(xiàng)

Open Declared Type命令會(huì)打開(kāi)當(dāng)前調(diào)試堆棧幀的類型聲明編輯器。而Open Declared Type Hierarchy則展現(xiàn)的是完整的層次結(jié)構(gòu),如圖所示。

Eclipse 調(diào)試器:零距離接觸實(shí)戰(zhàn)技巧

7. 線程的暫掛/恢復(fù)

Eclipse通過(guò)Suspend與Resume來(lái)支持線程的暫掛與恢復(fù)。一般來(lái)講,Suspend適用于多線程程序的調(diào)試,當(dāng)需要查看某一個(gè)線程的堆棧 幀及變量值時(shí),我們可以通過(guò)Suspend命令將該線程暫掛。Resume用于恢復(fù)。有兩種Resume需要注意:第一是當(dāng)在調(diào)試過(guò)程中修改程序代碼,然 后保存,點(diǎn)擊Resume,此時(shí)程序會(huì)暫掛于斷點(diǎn)。第二是當(dāng)程序拋出異常時(shí),運(yùn)行Resume,程序也會(huì)暫掛于斷點(diǎn)。

8. Show Monitor命令

Show Monitor命令可實(shí)時(shí)顯示變量的值。舉個(gè)例子,我們寫(xiě)一個(gè)簡(jiǎn)單的HelloWorld程序。

以下是代碼片段:
/**
* Hello World
*/
public class HelloWorld {
public static void main(String[] args) {
Line 11: Object mutex = new Object();
synchronized (mutex) {
System.out.println("Hello World!");
}
}
}
如圖所示,Show Monitor對(duì)應(yīng)的監(jiān)視信息會(huì)以“鑰匙”的形式出現(xiàn)在當(dāng)前stack frame前面。當(dāng)前信號(hào)量的id為16。

Eclipse 調(diào)試器:零距離接觸實(shí)戰(zhàn)技巧

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
播九公社成人综合网站| 青娱乐极品盛宴一区二区| 嫩草研究院在线| 99久久人妻精品免费二区| 黄色一区二区三区四区| 国产黄色网址在线观看| 一本一本大道香蕉久在线精品| 国产蜜臀在线| 国产成人综合欧美精品久久| 日本精品一二三| 高清亚洲成在人网站天堂| 91丨porny丨九色| 7777精品伊人久久久大香线蕉经典版下载| 久久国产柳州莫菁门| 久久久久久久久久久久av| 国产精品pans私拍| 欧美精品福利在线| 日韩精品成人一区| 国产精品国产亚洲精品| 欧美77777| 一个色的综合| 好吊妞国产欧美日韩免费观看网站| 丰满人妻一区二区三区无码av| 精品国产乱码久久久久久夜甘婷婷| 国产精品一卡二卡在线观看| 麻豆av免费在线观看| 亚洲v欧美v另类v综合v日韩v| 国产一区二区三区在线播放免费观看| 国产亚洲精品综合一区91| 久久久精品日本| 久久精品国产免费观看99| 丁香花在线观看完整版电影| 中文字幕高清一区| 捆绑裸体绳奴bdsm亚洲| 国产精选一区二区三区不卡催乳| 亚洲精品在线不卡| 国产xxxx做受性欧美88| 亚州色图欧美色图| 亚洲精品99| 中国a一片一级一片| 九九热在线视频观看这里只有精品| 日产电影一区二区三区| 乱中年女人av三区中文字幕| 51成人做爰www免费看网站| 精品久久久噜噜噜噜久久图片| 国产一级在线观看www色| 欧美日韩1080p| 国产成人精品亚洲精品色欲| 欧美交受高潮1| 九色视频网站在线观看| 欧美日韩精品在线一区| 亚洲天堂中文在线| 国产激情视频一区二区三区| 色视频免费网站| 亚洲精品日日夜夜| 精品日韩中文字幕| 国产卡二和卡三的视频| 精品国产乱子伦一区二区| 亚洲精品国产精华液| 精品欧美一区二区三区免费观看| 欧美承认网站| 一级特黄aaa大片| 亚洲av中文无码乱人伦在线视色| 精品av久久久久电影| 亚洲成人三级| 精品一区二区三区自拍图片区| 北条麻妃在线一区| 久久久精品在线观看| 91免费版看片| 96日本xxxxxⅹxxx17| 91在线一区二区三区| 亚洲欧美精品中文字幕在线| 秋霞一区二区| 性欧美xxxx视频在线观看| 欧美日韩国内| 国产视频综合在线| 福利精品视频在线| 在线免费国产视频| 国产不卡视频一区| 亚洲人成电影网| 老女人av在线| 蜜桃视频一日韩欧美专区| 日韩和欧美一区二区三区| 日本在线观看不卡| 欧美一级免费片| 最新国产精品精品视频| 中文字幕激情视频| 日韩欧美在线番号| 欧美专区在线| 91小视频免费观看| 午夜国产视频| 亚洲视频久久久| 蜜桃av一区二区| 国产一卡二卡三卡| 日韩精品一二三四区| 久久久久久亚洲精品| 久久久久久久久久久久久久| 熟妇人妻一区二区三区四区| 在线观看日韩毛片| 欧美日韩综合一区二区| 欧美色偷偷大香| 欧美日韩免费一区二区三区视频| 欧美性色aⅴ视频一区日韩精品| www.国产福利| 国产视频三区| 国产婷婷在线观看| 日韩一区二区三区高清在线观看| 日韩欧美网址| 成人免费淫片视频软件| 秋霞午夜理伦电影在线观看| 朝桐光av一区二区三区| 波多野吉衣在线视频| 黑人乱码一区二区三区av| 日韩一区二区三区高清在线观看| 国产精品一区二区不卡| 亚洲精品v欧美精品v日韩精品| 伊人网在线综合| 精品一区二区三区在线观看l| 亚洲国产中文字幕在线观看| 亚洲精品国产偷自在线观看| 桥本有菜亚洲精品av在线| 国产调教视频在线观看| 在线播放的av| 欧美成人一区在线观看| 伊人亚洲福利一区二区三区| 91精品国产自产观看在线| 久久久久九九精品影院| 午夜视频99| 国产精品白丝jk喷水视频一区| 在线观看美女网站大全免费| 人人狠狠综合久久亚洲婷| 欧美a级在线观看| 九九热线视频只有这里最精品| 91精品久久久久久久久99蜜臂| 免费黄频在线观看| 毛片网站在线免费观看| 天堂在线视频免费| 国产精品美女免费看| 噜噜噜噜噜在线视频| 男人天堂亚洲| 日韩欧美美女一区二区三区| 欧美精品人人做人人爱视频| 在线视频观看一区二区| 9999热视频在线观看| 在线观看亚洲| 久久久综合网站| 最近更新的2019中文字幕| 你懂得在线网址| 精品a在线观看| 国产在线69| 国产亚洲精品日韩| 欧美啪啪一区| 亚洲免费看黄网站| 国产激情精品一区二区三区| 欧美精品一区二区成人| 日韩网站免费观看| 久久久久女人精品毛片九一| 卡一卡二卡三在线观看| 中文字幕久热精品在线视频| www免费网站在线观看| 国内精品视频| 日日摸夜夜添夜夜添精品视频| 国产女人18毛片18精品| 亚洲成人第一网站| 91亚洲一区精品| 日韩一级视频免费观看在线| 综合色天天鬼久久鬼色| 四虎国产精品永久在线国在线| 亚洲精品人成网在线播放影院| 久久久青草婷婷精品综合日韩| 欧美成人a∨高清免费观看| 久久亚洲精品一区| 青青草原在线亚洲| 日韩人妻精品无码一区二区三区| 美女网站在线免费欧美精品| 熟女性饥渴一区二区三区| 精品少妇一二三区| 国产精品爽爽ⅴa在线观看| 国产精品伦一区二区三区视频| 初高中福利视频网站| 久草在线免费福利资源| 欧洲免费av| 久久久久亚洲精品中文字幕| 可以免费在线观看的av| 在线观看欧美一区| 成人在线免费观看91| 户外露出精品视频国产| 亚洲亚洲一区二区三区| 国产真实老熟女无套内射| 欧美精品电影免费在线观看| 中文字幕资源在线观看| 国产videos久久| 亚洲免费观看高清完整版在线观看熊| 亚洲国产成人tv| 久草一本av| 成人久久久精品乱码一区二区三区| 无码人妻久久一区二区三区不卡| 欧美男女交配视频| 成人精品视频一区二区三区| 免费看美剧网站| 中文字幕4区| 亚洲电影在线播放| 日本在线播放视频| 黄黄的网站在线观看| 亚洲色偷偷综合亚洲av伊人| 国产精品毛片a∨一区二区三区|国| 男女做暖暖视频| 欧美午夜免费电影| 精品久久久久久国产| 精品一区二区三区无码视频| 久久亚洲欧美日韩精品专区| 日本电影二区| 欧美剧情片在线观看| 综合天堂久久久久久久| 男男做性免费视频网| 综合在线观看色| 日本a级片免费观看| 国产三级欧美三级| 中国成人在线视频| 国产中文av在线| 日韩av片免费在线观看| av老司机久久| 中文字幕亚洲图片| 欧美黄片一区二区三区| 亚洲综合伊人久久| 日本99精品| 国产日产亚洲系列最新| 国产成人午夜精品| 欧美亚洲成人xxx| 先锋影音av资源在线| 亚洲欧美在线人成swag| 国产成人视屏| www.久久久久久久久久久| 无码无套少妇毛多18pxxxx| 五十度飞在线播放| jizz日本在线播放| 午夜精品亚洲| av 日韩 人妻 黑人 综合 无码| 亚洲欧洲一区二区在线播放| 色内内免费视频播放| 成年人福利网站| 色成年激情久久综合| 97精品人妻一区二区三区香蕉| 26uuu精品一区二区三区四区在线| 国外成人在线直播| www.日韩在线| 日本中文字幕一区| 国产三级在线免费观看| 亚洲成人自拍偷拍| 激情综合五月天| 日韩精品福利网站| 国产一级免费视频| 美女福利精品视频| 精品国产区在线| 国内一区二区视频| 91免费观看视频| 亚洲色图丝袜| 国产激情在线| 国产亚洲一卡2卡3卡4卡新区| 92裸体在线视频网站| 国产亚洲综合av| 1区2区视频| 亚洲黄色三级| 亚洲午夜精品在线观看| 艳色歌舞团一区二区三区| 欧美日韩国产成人在线| 性猛交富婆╳xxx乱大交一| 成人美女免费网站视频| 中文字幕影音先锋| 天堂网视频在线观看| 在线免费观看一级片| 国内精品久久99人妻无码| 国产精品久久一区二区三区| 亚洲精品日韩av| 免费无码av片在线观看| 丁香高清在线观看完整电影视频| 久久精品一区二区三区资源网| 国产精品免费一区二区三区观看| 国产无套粉嫩白浆内谢| 色爱精品视频一区| 最新中文字幕亚洲| 一区在线播放| 成人无遮挡免费网站视频在线观看| 国产精品免费一区| 丝袜美腿一区二区三区动态图| 精品51国产黑色丝袜高跟鞋| 日本美女高清在线观看免费| 热re久久精品国产99热| 人妻少妇无码精品视频区| 国产午夜精品一区二区三区嫩草| 97久久超碰福利国产精品…| 亚洲精华液一区二区三区| 欧美亚洲另类视频| 免费看黄视频网站| 激情五月婷婷基地| 久久精品亚洲精品国产欧美kt∨| 亚洲18女电影在线观看| 91尤物视频在线观看| 99久久婷婷国产综合精品电影| 国产精品高潮呻吟久久av野狼| 天天做夜夜做人人爱精品| 欧美大片在线观看一区二区| 九色porn蝌蚪| 在线观看的av| 欧美色婷婷久久99精品红桃| 天堂资源在线观看| av在线天堂网| 中文字幕在线观看不卡视频| 国产婷婷色一区二区三区四区| 日韩欧美三级在线观看| 日韩欧美中文第一页| 色午夜这里只有精品| 成人拍拍拍在线观看| 亚洲特级黄色片| 欧美一级视频免费在线观看| 久久99蜜桃精品| 久久伊伊香蕉| 亚洲大片在线| 你懂的在线观看视频| 日本sm残虐另类| 东热在线免费视频| 国产精品自在自线| 中文字幕 亚洲一区| 欧美日韩中文另类| 午夜免费视频在线国产| 中文乱码人妻一区二区三区视频| 福利在线播放| 亚洲欧美日韩国产手机在线|