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

首頁 > 學院 > 編程設計 > 正文

Eclipse 調試器 零距離接觸實戰技巧

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

Eclipse 平臺的最大特色是插件化(Plugin)。調試是任何程序員都無法回避的工作。因此Eclipse的內置插件Java開發工具包(Java Development Toolkit,簡稱JDT)中集成了一個功能強大的Java調試器(Debugger)。實際上,JDT是Eclipse工作平臺(Eclipse Platform Workbench)的基礎工具,除了調試器,還提供透視圖、視圖、編輯器、搜索等Eclipse基礎功能。

由于Eclipse調試器采用了基于客戶端/服務器的設計模式,遠程應用的調試變得與本地一樣簡單。其工作原理是,本地Eclipse工作平臺充當調試的客戶端,而遠程應用所在的機器則充當了調試服務器的角色。

Debug 視圖

Debug視圖作為Eclipse調試器透視圖的一部分,管理與程序調試相關的功能。如圖所示,Debug視圖呈樹狀結構,每一個線程對應一樹節點。圖中顯示的是暫掛線程Main的調試堆棧幀結構。

Eclipse 調試器:零距離接觸實戰技巧

作為標準的Java調試平臺,Debug視圖提供了許多執行控制命令(Execution Control Commands),用于在程序中設置/取消斷點,單步執行,暫掛與恢復線程。以下是一些常用的執行控制命令:

1. Layout布局

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

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

Layout菜單的第二個特點Breadrumb模式。選擇菜單選項Layout -> Breadcrumb,打開Breadrumb模式。除此之外,選擇菜單選項Layout -> Auto-Expand Breadcrumb,可實現自動展開Breadrumb模式。當選擇下拉框時,可自動定位到暫掛線程的調試堆棧幀。這個細節對于編程人員來說,也是非常 的方便。

Eclipse 調試器:零距離接觸實戰技巧

2. 調試啟動停止等相關命令

Debug視圖提供了諸多的啟停控制命令,叫法上與其它的調試器可能稍微有些不同,具體如下:

啟動調試視圖:Eclipse提供三種方式來啟動程序(Launch)的調試,分別是通過菜單(Run –> Debug)、圖標(“綠色臭蟲”)以及快捷鍵(F11),在這一點上,與其他命令(例如Run)類似。

停止調試:Eclipse通過Terminate命令終止對本地程序的調試。特別的,對于遠程程序的調試,Eclipse使用 Disconnect命令來終止與遠程JVM的socket連接。前面我們談到,Eclipse調試器采用了基于客戶端/服務器的設計模式,本地 Eclipse工作平臺充當調試的客戶端,而遠程應用所在的JVM則充當了調試服務器的角色。簡單的說,Terminate命令終止本地調 試,Disconnect命令終止遠程調試。Terminate/Disconnect All終止所有的調試,包括本地與遠程。

重新啟動調試:Eclipse通過Relaunch命令重新啟動調試。這里需要指出的是Relaunch支持兩種重啟動模式,一種是針對已經停止的程序調 試,另一種是針對Active的當程序調試。前者不難理解,效果上等同于Terminate+Launch。后者的處理方式有些不同,效果上則等同于 Launch一個新的Debug項。實際上,針對后一種情況,我們通常采用Eclipse的Terminate and Relaunch命令來達到重啟Debug的目的。

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

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

3. 單步執行

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

此外,Eclipse還提供了Run to line(快捷鍵Ctr + R)功能,從開始處運行程序,到正在執行的斷點暫停。

4. Drop to Frame

Drop to Frame功能雖然不屬于單步調試的核心,但是該功能非常的適用,它為調試人員提供了調試回退的機會。Drop to Frame可以重新跳到當前方法的開始處重新執行,并且所有上下文變量的值也相應回到初始時刻,如圖所示。

Eclipse 調試器:零距離接觸實戰技巧

5. Step Filters

當在你調試的時候,你只希望查看自己的代碼,而不是從JDK或者是其他庫中的代碼,甚至是你也想屏蔽自己代碼庫中的框架部分代碼。

針對這樣的需求,Eclipse提供了逐步過濾器(Step Filters)選項指的是一直執行直到遇到未經過濾的位置或斷點。Step Filters功能由Use Step Filters,Edit Step Filters,Filter Type,Filter Package四項組成。

具體操作如下:

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

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

步驟 3:在屏幕上選中所需的選項。你可以添加你自己代碼庫中的部分代碼。

步驟 4:點擊‘Apply’.

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

Eclipse 調試器:零距離接觸實戰技巧

6. 聲明選項

Open Declared Type命令會打開當前調試堆棧幀的類型聲明編輯器。而Open Declared Type Hierarchy則展現的是完整的層次結構,如圖所示。

Eclipse 調試器:零距離接觸實戰技巧

7. 線程的暫掛/恢復

Eclipse通過Suspend與Resume來支持線程的暫掛與恢復。一般來講,Suspend適用于多線程程序的調試,當需要查看某一個線程的堆棧 幀及變量值時,我們可以通過Suspend命令將該線程暫掛。Resume用于恢復。有兩種Resume需要注意:第一是當在調試過程中修改程序代碼,然 后保存,點擊Resume,此時程序會暫掛于斷點。第二是當程序拋出異常時,運行Resume,程序也會暫掛于斷點。

8. Show Monitor命令

Show Monitor命令可實時顯示變量的值。舉個例子,我們寫一個簡單的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對應的監視信息會以“鑰匙”的形式出現在當前stack frame前面。當前信號量的id為16。

Eclipse 調試器:零距離接觸實戰技巧

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人一区二区三区电影| 亚洲人成电影在线观看天堂色| 亚洲综合在线做性| 国产精品综合久久久| 欧美色欧美亚洲高清在线视频| 日韩精品视频中文在线观看| 亚洲国产精品成人一区二区| 亚洲男人的天堂在线| 亚洲高清免费观看高清完整版| 国产在线999| 在线观看欧美日韩| 国产欧美精品一区二区三区介绍| 亚洲精品v欧美精品v日韩精品| 日韩在线高清视频| 伊人久久五月天| 欧美日韩亚洲一区二区| 色妞在线综合亚洲欧美| 亚洲成色www8888| 欧美成人免费在线观看| 91理论片午午论夜理片久久| 一本大道久久加勒比香蕉| 精品日韩美女的视频高清| 日日噜噜噜夜夜爽亚洲精品| 国产日韩欧美在线视频观看| 亚洲欧美日韩第一区| 91国产美女在线观看| 伊是香蕉大人久久| 在线电影欧美日韩一区二区私密| 国产男人精品视频| 搡老女人一区二区三区视频tv| 色七七影院综合| 精品女同一区二区三区在线播放| 成人激情综合网| 日韩国产一区三区| 欧美性xxxxxx| 俺去了亚洲欧美日韩| 久久久久亚洲精品| 日本午夜在线亚洲.国产| 久久久久久国产免费| 亚洲电影免费在线观看| 欧美大尺度激情区在线播放| 这里精品视频免费| 久久久精品欧美| 成人激情av在线| 亚洲国产高清高潮精品美女| 国产成人精品一区二区三区| 国产精品久久久久久久久久久久久| 国产精品久久久久久久久久东京| 国产精品美女久久久久久免费| 欧美日韩不卡合集视频| 日本久久久久久久久久久| 日韩免费中文字幕| 色99之美女主播在线视频| 日本精品一区二区三区在线播放视频| 日韩黄色在线免费观看| 中文字幕无线精品亚洲乱码一区| 91久久精品美女| 91久久久精品| 97香蕉超级碰碰久久免费软件| 8050国产精品久久久久久| 韩国欧美亚洲国产| 亚洲高清福利视频| 国产精品视频导航| 亚洲的天堂在线中文字幕| 亚洲精品小视频| 91久久久久久久久| 国产精品高潮粉嫩av| 欧美成人免费全部观看天天性色| 91黑丝高跟在线| 国产在线不卡精品| 激情懂色av一区av二区av| 成人精品一区二区三区电影黑人| 欧美日韩成人网| 亚洲激情电影中文字幕| 欧美国产在线视频| 国产精品电影久久久久电影网| 亚洲一区二区久久久久久| 欧美中文字幕在线视频| 国产美女精彩久久| 91久久久久久久久久| 97在线免费观看视频| 美女黄色丝袜一区| 97久久精品视频| 成人在线免费观看视视频| 国产精品入口日韩视频大尺度| 日本国产精品视频| 日韩在线视频一区| 日韩性xxxx爱| 成人中文字幕+乱码+中文字幕| 欧美日韩国产123| 国产视频亚洲精品| 国产精品亚洲欧美导航| 日韩大片在线观看视频| 97视频免费在线观看| 97在线观看视频国产| 亚洲欧美日韩区| 亚洲国产精品中文| 日韩精品视频三区| 亚洲国产精品成人精品| 在线观看免费高清视频97| 国产日韩欧美一二三区| 国产福利精品视频| 亚洲自拍偷拍色片视频| 中文在线资源观看视频网站免费不卡| 日韩美女视频免费在线观看| 日韩精品在线播放| 精品国产999| 国产91色在线免费| 久久久久国产精品www| 国产中文字幕亚洲| 在线观看不卡av| 久久精视频免费在线久久完整在线看| 久久精品免费播放| 色黄久久久久久| 久久精品国产综合| 久久露脸国产精品| 人人澡人人澡人人看欧美| 欧美一级免费看| 91久热免费在线视频| 97视频在线观看亚洲| 国产经典一区二区| 欧日韩在线观看| 日韩视频免费观看| 久久久亚洲网站| 国产在线观看91精品一区| 国内精品美女av在线播放| 精品国产精品三级精品av网址| 欧美激情2020午夜免费观看| 亚洲精品久久7777777| 日韩人体视频一二区| 91精品国产高清久久久久久久久| 久久视频中文字幕| 国产日韩欧美在线视频观看| 中文字幕精品在线| 性欧美办公室18xxxxhd| 色777狠狠综合秋免鲁丝| 浅井舞香一区二区| 668精品在线视频| 亚洲精品久久久久中文字幕欢迎你| 日韩在线观看网址| 中文字幕亚洲无线码a| 欧美日本高清视频| 日韩免费电影在线观看| 一级做a爰片久久毛片美女图片| 国产精品精品一区二区三区午夜版| 日韩电影免费在线观看中文字幕| 久久五月天色综合| 精品国产精品自拍| 欧美在线观看一区二区三区| 久久精品青青大伊人av| 欧美成人精品h版在线观看| 精品国产电影一区| 91性高湖久久久久久久久_久久99| 久久五月天综合| 91成人在线播放| 日韩最新在线视频| 欧美大片va欧美在线播放| 日韩精品一二三四区| 亚洲精品大尺度| 久久精品99国产精品酒店日本| 日韩中文字幕在线视频播放| 欧美限制级电影在线观看| 亚洲最大在线视频| 亚洲色图校园春色|