版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Eclipse 調(diào)試器和 Debug 視圖Eclipse SDK 是針對(duì) Java 開(kāi)發(fā)工具(Java Development Tools,JDT)的項(xiàng)目,它具有一個(gè)內(nèi)置的 Java 調(diào)試器,可以提供所有標(biāo)準(zhǔn)的調(diào)試功能,包括分步執(zhí)行、設(shè)置斷點(diǎn)和值、檢查變量和值、掛起和恢復(fù)線程的功能。除此之外,還可以調(diào)試遠(yuǎn)程機(jī)器上運(yùn)行的應(yīng)用程序。Eclipse 平臺(tái)很健壯,因?yàn)槠渌幊陶Z(yǔ)言可以將該平臺(tái)提供的調(diào)試工具用于各自的語(yǔ)言運(yùn)行時(shí)。正如下文所示,同一個(gè) Eclipse Debug 視圖也可以用于 C/C+ 編程語(yǔ)言。Eclipse 平臺(tái)工作臺(tái)及其工具是圍繞 JDT 組件構(gòu)建的,該組件為 Eclipse 提供
2、了下列特性:· 項(xiàng)目管理工具· 透視圖和視圖· 構(gòu)造器、編輯器、搜索和構(gòu)建功能· 調(diào)試器Eclipse 調(diào)試器本身是 Eclipse 內(nèi)的一個(gè)標(biāo)準(zhǔn)插件集。Eclipse 還有一個(gè)特殊的 Debug 視圖,用于在工作臺(tái)中管理程序的調(diào)試或運(yùn)行。它可以顯示每個(gè)調(diào)試目標(biāo)中掛起線程的堆??蚣堋3绦蛑械拿總€(gè)線程都顯示為樹(shù)中的一個(gè)節(jié)點(diǎn),Debug 視圖顯示了每個(gè)運(yùn)行目標(biāo)的進(jìn)程。如果某個(gè)線程處于掛起狀態(tài),其堆??蚣茱@示為子元素。在使用 Eclipse 調(diào)試器之前,假定您已經(jīng)安裝了合適的 Java SDK/JRE(我推薦使用 Java VM V1.4)和 Eclipse
3、Platform SDK V3.3,而且兩者的運(yùn)行都沒(méi)問(wèn)題。一般來(lái)說(shuō),先用 Eclipse 示例測(cè)試一下調(diào)試選項(xiàng)比較好。如果想開(kāi)發(fā)和調(diào)試 C/C+ 項(xiàng)目,還需要獲得并安裝 C/C+ 開(kāi)發(fā)工具(C/C+ Development Tools,CDT)。關(guān)于 Java SDK/JRE、Eclipse 平臺(tái)和示例以及 CDT,請(qǐng)參閱 參考資源。 圖 1 顯示了 Debug 透視圖的一般視圖。圖 1. Eclipse Debug 透視圖的一般視圖 調(diào)試 Java 語(yǔ)言程序在可以調(diào)試項(xiàng)目前,需要干凈地編譯和運(yùn)行代碼。首先,需要為應(yīng)用程序創(chuàng)建一個(gè)運(yùn)行配置,確保應(yīng)用程序可以正確啟動(dòng)。然后,
4、需要通過(guò) Run > Debug 菜單以類似的方式設(shè)置調(diào)試配置。還需要選擇一個(gè)類,將它作為調(diào)試的主 Java 類來(lái)使用(請(qǐng)參見(jiàn)圖 2)。您可以按照自己的意愿為單個(gè)項(xiàng)目設(shè)置多個(gè)調(diào)試配置。當(dāng)調(diào)試器啟動(dòng)時(shí)(從 Run > Debug),會(huì)在一個(gè)新的窗口中打開(kāi),這時(shí)就可以開(kāi)始調(diào)試了。圖 2. 在調(diào)試配置中設(shè)置項(xiàng)目的主 Java 類 接下來(lái),將討論 Eclipse 中的一些常用調(diào)試實(shí)踐。設(shè)置斷點(diǎn)在啟動(dòng)應(yīng)用程序進(jìn)行調(diào)試時(shí),Eclipse 會(huì)自動(dòng)切換到 Debug 透視圖。毫無(wú)疑問(wèn),最常見(jiàn)的調(diào)試步驟是設(shè)置斷點(diǎn),這樣可以檢查條件語(yǔ)句或循環(huán)內(nèi)的變量和值。要在
5、Java 透視圖的 Package Explorer 視圖中設(shè)置斷點(diǎn),雙擊選擇的源代碼文件,在一個(gè)編輯器中打開(kāi)它。遍歷代碼,將鼠標(biāo)放在可疑代碼一行的標(biāo)記欄(在編輯器區(qū)域的左側(cè))上,雙擊即可設(shè)置斷點(diǎn)。圖 3. 編輯器左側(cè)看到的兩個(gè)斷點(diǎn) 現(xiàn)在,從 Run > Debug 菜單啟動(dòng)調(diào)試會(huì)話。最好不要將多條語(yǔ)句放在一行上,因?yàn)闀?huì)無(wú)法單步執(zhí)行,也不能為同一行上的多條語(yǔ)句設(shè)置行斷點(diǎn)。圖 4. 視圖中左側(cè)空白處的箭頭指示當(dāng)前正在執(zhí)行的行 還有一個(gè)方便的斷點(diǎn)視圖來(lái)管理所有的斷點(diǎn)。圖 5. 斷點(diǎn)視圖 條件斷點(diǎn)一旦了解到錯(cuò)誤發(fā)生的位置,您可能想要知道在程序崩
6、潰之前,程序在做什么。一種方法就是單步執(zhí)行程序的每行語(yǔ)句。一次執(zhí)行一行,直到運(yùn)行到可疑的那行代碼。有時(shí),最好只運(yùn)行一段代碼,在可疑代碼處停止運(yùn)行,在這個(gè)位置檢查數(shù)據(jù)。還可以聲明條件斷點(diǎn),它在表達(dá)式值發(fā)生變化時(shí)觸發(fā)(請(qǐng)參見(jiàn)圖 6)。除此之外,在輸入條件表達(dá)式時(shí),也可以使用代碼幫助。圖 6. 設(shè)置條件斷點(diǎn)觸發(fā)器 計(jì)算表達(dá)式的值為了在 Debug 透視圖的編輯器中計(jì)算表達(dá)式的值,選擇設(shè)置了斷點(diǎn)的那行代碼,在上下文菜單中,通過(guò) Ctrl+Shift+I 或右鍵單擊您感興趣的變量(參見(jiàn)圖 7)選擇 Inspect 選項(xiàng)。在當(dāng)前堆??蚣艿纳舷挛闹袝?huì)計(jì)算表達(dá)式的值,在 Disp
7、lay 窗口的 Expressions 視圖中會(huì)顯示結(jié)果。圖 7. 通過(guò) Inspect 選項(xiàng)計(jì)算表達(dá)式的值 剪切活動(dòng)代碼Display 視圖允許您以剪切類型的方式處理活動(dòng)代碼(參見(jiàn)圖 8)。要處理一個(gè)變量,在 Display 視圖中輸入變量名即可,視圖會(huì)提示您一個(gè)熟悉的內(nèi)容助手。圖 8. Display 視圖 當(dāng)調(diào)試器停止在一個(gè)斷點(diǎn)處時(shí),您可以從 Debug 視圖工具欄(參見(jiàn)圖 9)中選擇 Step Over 選項(xiàng),繼續(xù)調(diào)試器會(huì)話。該操作會(huì)越過(guò)高亮顯示的那行代碼,繼續(xù)執(zhí)行同一方法中的下一行代碼(或者繼續(xù)執(zhí)行調(diào)用當(dāng)前方法的那個(gè)方法的下一行代碼)。執(zhí)行上一步后發(fā)生改變的變量會(huì)
8、用某種顏色高亮顯示(默認(rèn)是黃色)。顏色可以在調(diào)試首選項(xiàng)頁(yè)面中改變。圖 9. 改變顏色的變量 要在 Debug 視圖中掛起執(zhí)行線程,選擇一個(gè)運(yùn)行線程,單擊 Debug 視圖工具欄中的 Suspend。該線程的當(dāng)前調(diào)用堆棧就會(huì)顯示出來(lái),當(dāng)前執(zhí)行的代碼行就會(huì)在 Debug 透視圖中的編輯器中高亮顯示。掛起一個(gè)線程時(shí),將鼠標(biāo)放在 Java 編輯器中的變量上,該變量的值就會(huì)在一個(gè)小的懸停窗口中顯示出來(lái)。此時(shí),該線程的頂部堆??蚣芤矔?huì)自動(dòng)選中,其中的可視變量也會(huì)在 Variables 視圖中顯示出來(lái)。您可以通過(guò)單擊 Variables 視圖中合適的變量名來(lái)檢查變量。熱交換錯(cuò)誤修正:動(dòng)態(tài)
9、代碼修正如果運(yùn)行的是 Java 虛擬機(jī)(Java Virtual Machine,JVM)V1.4 或更高的版本,Eclipse 支持一個(gè)叫做熱交換錯(cuò)誤修正(Hotswap Bug Fixing)的功能,JVM V1.3 或更低的版本不支持該功能。該功能允許在調(diào)試器會(huì)話中改變?cè)创a,這比退出應(yīng)用程序、更改代碼、重新編譯、然后啟動(dòng)另一個(gè)調(diào)試會(huì)話更好。要利用該功能,在編輯器中更改代碼后重新調(diào)試即可。由于 JVM V1.4 與 Java 平臺(tái)調(diào)試器架構(gòu)(Java Platform Debugger Architecture,JPDA)兼容,所以才有可能具備該功能。JPDA 實(shí)現(xiàn)了在運(yùn)行的應(yīng)用程序中替
10、換經(jīng)過(guò)修改的代碼的功能。如果應(yīng)用程序啟動(dòng)時(shí)間較長(zhǎng)或執(zhí)行到程序失敗的地方時(shí)間很長(zhǎng),那么這一點(diǎn)特別有用。如果在完成調(diào)試時(shí),程序還沒(méi)有全部執(zhí)行一遍,在 Debug 視圖的上下文菜單中選擇 Terminate 選項(xiàng)。容易犯的一個(gè)錯(cuò)誤是在調(diào)試器會(huì)話中使用 Debug 或 Run,而不是 Resume。這樣做會(huì)啟動(dòng)另一個(gè)調(diào)試器會(huì)話,而不是繼續(xù)當(dāng)前會(huì)話。遠(yuǎn)程調(diào)試Eclipse 調(diào)試器提供了一個(gè)有趣的選項(xiàng),可以調(diào)試遠(yuǎn)程應(yīng)用程序。它可以連接到一個(gè)運(yùn)行 Java 應(yīng)用程序的遠(yuǎn)程 VM,將自己連接到該應(yīng)用程序上去。使用遠(yuǎn)程調(diào)試會(huì)話與使用本地調(diào)試會(huì)話大致相同。但是,遠(yuǎn)程調(diào)試配置需要在 Run > De
11、bug 窗口中配置一些不同的設(shè)置。需要在左側(cè)視圖中先選擇 Remote Java Application 選項(xiàng),然后單擊 New。這樣就創(chuàng)建了一個(gè)新的遠(yuǎn)程啟動(dòng)配置,會(huì)顯示出三個(gè)選項(xiàng)卡:Connect、Source 和 Common。在 Connect 選項(xiàng)卡的 Project 字段,選擇在啟動(dòng)搜索源代碼時(shí)要引用的項(xiàng)目。在 Connect 選項(xiàng)卡的 Host 字段,輸入運(yùn)行 Java 程序的遠(yuǎn)程主機(jī)的 IP 地址或域名。在 Connect 選項(xiàng)卡的 Port 字段,輸入遠(yuǎn)程 VM 接收連接的端口。通常,該端口在啟動(dòng)遠(yuǎn)程 VM 時(shí)指定。如果想讓調(diào)試器決定在遠(yuǎn)
12、程會(huì)話中 Terminate 命令是否可用,可以選擇 Allow termination of remote VM 選項(xiàng)。如果希望可以終止連接的 VM,則選擇該選項(xiàng)?,F(xiàn)在,在您選擇 Debug 選項(xiàng)時(shí),調(diào)試器會(huì)嘗試連接到指定地址或端口的遠(yuǎn)程 VM,結(jié)果會(huì)在 Debug 視圖中顯示出來(lái)。如果啟動(dòng)程序不能連接到指定地址的 VM,會(huì)出現(xiàn)一條錯(cuò)誤信息。通常來(lái)說(shuō),是否可以使用遠(yuǎn)程調(diào)試功能完全取決于遠(yuǎn)程主機(jī)上運(yùn)行的 Java VM。圖 10 顯示了一個(gè)遠(yuǎn)程調(diào)試會(huì)話的連接屬性設(shè)置。圖 10. 設(shè)置一個(gè)遠(yuǎn)程調(diào)試會(huì)話的連接屬性 調(diào)試其他語(yǔ)言盡管 Java 語(yǔ)言是 Eclipse 使用的最廣泛的語(yǔ)言,但
13、是 Eclipse 是一個(gè)可擴(kuò)展的平臺(tái),可以支持許多其他的語(yǔ)言。Eclipse 可以通過(guò) C/C+ 開(kāi)發(fā)工具(CDT)支持 C/C+ 。CDT 擴(kuò)展了標(biāo)準(zhǔn)的 Eclipse Debug 視圖,添加了調(diào)試 C/C+ 代碼的功能,CDT Debug 視圖可以在工作臺(tái)中管理 C/C+ 項(xiàng)目的調(diào)試過(guò)程。CDT 中沒(méi)有內(nèi)部的調(diào)試器,但是它提供了一個(gè) GNU GDB 調(diào)試器的前端,該調(diào)試器必須在本地可用。還有其他項(xiàng)目可以提供各自的調(diào)試器,例如 PHP 開(kāi)發(fā)工具(PHP Development Tools ,PDT),請(qǐng)參見(jiàn)圖 11。圖 11. PHP 調(diào)試器 結(jié)束語(yǔ)Eclipse 平臺(tái)提供了一個(gè)
14、內(nèi)置 Java 語(yǔ)言調(diào)試器,它帶有標(biāo)準(zhǔn)的調(diào)試功能,包括分步執(zhí)行、設(shè)置斷點(diǎn)和值、檢查變量和值以及掛起和恢復(fù)線程功能。它還可以用來(lái)調(diào)試運(yùn)行在遠(yuǎn)程機(jī)器上的應(yīng)用程序。Eclipse 平臺(tái)主要是一個(gè) Java 開(kāi)發(fā)環(huán)境,但是其中的 Eclipse Debug 視圖還可以用于 C/C+、PHP 和許多其他的編程語(yǔ)言。附:Eclipse快捷鍵調(diào)試大全(1)Ctrl+M 切換窗口的大小(2)Ctrl+Q 跳到最后一次的編輯處(3)F2 -重命名類名 工程名 當(dāng)鼠標(biāo)放在一個(gè)標(biāo)記處出現(xiàn)Tooltip時(shí)候按F2則把鼠標(biāo)移開(kāi)時(shí)Tooltip還會(huì)顯示即Show Tooltip Description。 F3 跳到聲明或
15、定義的地方。 F5 單步調(diào)試進(jìn)入函數(shù)內(nèi)部。 F6 單步調(diào)試不進(jìn)入函數(shù)內(nèi)部,如果裝了金山詞霸2006則要把“取詞開(kāi)關(guān)”的快捷鍵改成其他的。 F7 由函數(shù)內(nèi)部返回到調(diào)用處。 F8 一直執(zhí)行到下一個(gè)斷點(diǎn)。(4)Ctrl+Pg 對(duì)于XML文件是切換代碼和圖示窗口(5)Ctrl+Alt+I 看Java文件中變量的相關(guān)信息(6)Ctrl+PgUp 對(duì)于代碼窗口是打開(kāi)“Show List”下拉框,在此下拉框里顯示有最近曾打開(kāi)的文件(7)Ctrl+/ 在代碼窗口中是這種/注釋。 Ctrl+Shift+/ 在代碼窗口中是這種/*/注釋,在JSP文件窗口中是!-。(8)Alt+Shift+O(或點(diǎn)擊工具欄中的Toggle Mark Occurrences按鈕) 當(dāng)點(diǎn)擊某個(gè)標(biāo)記時(shí)可使本頁(yè)面中其他地方的此標(biāo)記黃色凸顯,并且窗口的右邊框會(huì)出現(xiàn)白色的方塊,點(diǎn)擊此方塊會(huì)跳到此標(biāo)記處。(9)右擊窗口的左邊框即加斷點(diǎn)的地方選Show Line Numbers可以加行號(hào)。(10)Ctrl+I格式化激活的元素Format Active Elements。 Ctrl+Shift+F格式化文件Format Document。(11)Ctrl+S保存當(dāng)前文件。 Ctrl+Shift+S保存所有未保存的文件。(12)Ctrl+Shift+M(先把光標(biāo)放在需導(dǎo)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)性化文物展示方案
- 2026年化學(xué)基礎(chǔ)理論與實(shí)驗(yàn)技能題庫(kù)
- 2026年食品安全法規(guī)及檢測(cè)技術(shù)試題集
- 2026年建筑設(shè)計(jì)師建筑結(jié)構(gòu)與材料知識(shí)測(cè)試題
- 2026年現(xiàn)代科技發(fā)展趨勢(shì)理解試題
- 2026年地理信息系統(tǒng)技術(shù)應(yīng)用與實(shí)踐試題
- 家具制造行業(yè)安全培訓(xùn)
- 2026年物流業(yè)應(yīng)屆生AI物流技術(shù)面試題及答案解析
- 2026年廚藝大師烘焙技巧與食品造型設(shè)計(jì)題集
- 2026年IT項(xiàng)目經(jīng)理軟件項(xiàng)目管理及實(shí)施經(jīng)驗(yàn)案例專項(xiàng)題庫(kù)
- 2025年秋季散學(xué)典禮校長(zhǎng)講話:以四馬精神赴新程攜溫暖期許啟寒假
- 2026貴州省黔晟國(guó)有資產(chǎn)經(jīng)營(yíng)有限責(zé)任公司面向社會(huì)招聘中層管理人員2人備考考試試題及答案解析
- 2025年?duì)I養(yǎng)師考試練習(xí)題及答案
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)及答案詳解一套
- 2026江蘇省數(shù)據(jù)集團(tuán)數(shù)字科技有限公司招聘考試備考題庫(kù)及答案解析
- 消費(fèi)者權(quán)益保護(hù)與投訴處理手冊(cè)(標(biāo)準(zhǔn)版)
- 南京航空航天大學(xué)飛行器制造工程考試試題及答案
- 規(guī)范廣告宣傳誤差真實(shí)性核查流程
- 注塑模具調(diào)試員聘用協(xié)議
- 2026年工程監(jiān)理招聘面試常見(jiàn)問(wèn)題集
- 航運(yùn)電子商務(wù)行業(yè)發(fā)展前景分析及物流配送體系創(chuàng)新與商業(yè)模式研究
評(píng)論
0/150
提交評(píng)論