Eclipse中Debug調(diào)試及視圖_第1頁
Eclipse中Debug調(diào)試及視圖_第2頁
Eclipse中Debug調(diào)試及視圖_第3頁
Eclipse中Debug調(diào)試及視圖_第4頁
Eclipse中Debug調(diào)試及視圖_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Eclipse 調(diào)試器和 Debug 視圖編者注:Pawel Leszek 最初于 2003 年 5 月撰寫了下文,后來由 Chris Aniszczyk 于 2007 年 4 月進(jìn)行了更新。 Eclipse SDK 是針對 Java 開發(fā)工具(Java Development Tools,JDT)的項目,它具有一個內(nèi)置的 Java 調(diào)試器,可以提供所有標(biāo)準(zhǔn)的調(diào)試功能,包括分步執(zhí)行、設(shè)置斷點和值、檢查變量和值、掛起和恢復(fù)線程的功能。除此之外,還可以調(diào)試遠(yuǎn)程機器上運行的應(yīng)用程序。Eclipse 平臺很健壯,因為其他編程語言可以將該平臺提供的調(diào)試工具用于各自的語言運行時。正如下文所示,同一個 Ec

2、lipse Debug 視圖也可以用于 C/C+ 編程語言。Eclipse 平臺工作臺及其工具是圍繞 JDT 組件構(gòu)建的,該組件為 Eclipse 提供了下列特性: · 項目管理工具 · 透視圖和視圖 · 構(gòu)造器、編輯器、搜索和構(gòu)建功能 · 調(diào)試器 Eclipse 調(diào)試器本身是 Eclipse 內(nèi)的一個標(biāo)準(zhǔn)插件集。Eclipse 還有一個特殊的 Debug 視圖,用于在工作臺中管理程序的調(diào)試或運行。它可以顯示每個調(diào)試目標(biāo)中掛起線程的堆??蚣堋3绦蛑械拿總€線程都顯示為樹中的一個節(jié)點,Debug 視圖顯示了每個運行目標(biāo)的進(jìn)程。如果某個線程處于掛起狀態(tài),其堆棧

3、框架顯示為子元素。在使用 Eclipse 調(diào)試器之前,假定您已經(jīng)安裝了合適的 Java SDK/JRE(我推薦使用 Java VM V1.4)和 Eclipse Platform SDK V3.3,而且兩者的運行都沒問題。一般來說,先用 Eclipse 示例測試一下調(diào)試選項比較好。如果想開發(fā)和調(diào)試 C/C+ 項目,還需要獲得并安裝 C/C+ 開發(fā)工具(C/C+ Development Tools,CDT)。關(guān)于 Java SDK/JRE、Eclipse 平臺和示例以及 CDT,請參閱 參考資源。 圖 1 顯示了 Debug 透視圖的一般視圖。圖 1. Eclipse Debug 透視圖的一般視

4、圖調(diào)試 Java 語言程序在可以調(diào)試項目前,需要干凈地編譯和運行代碼。首先,需要為應(yīng)用程序創(chuàng)建一個運行配置,確保應(yīng)用程序可以正確啟動。然后,需要通過 Run > Debug 菜單以類似的方式設(shè)置調(diào)試配置。還需要選擇一個類,將它作為調(diào)試的主 Java 類來使用(請參見圖 2)。您可以按照自己的意愿為單個項目設(shè)置多個調(diào)試配置。當(dāng)調(diào)試器啟動時(從 Run > Debug),會在一個新的窗口中打開,這時就可以開始調(diào)試了。圖 2. 在調(diào)試配置中設(shè)置項目的主 Java 類接下來,將討論 Eclipse 中的一些常用調(diào)試實踐。設(shè)置斷點在啟動應(yīng)用程序進(jìn)行調(diào)試時,Eclipse 會自動切換到 Deb

5、ug 透視圖。毫無疑問,最常見的調(diào)試步驟是設(shè)置斷點,這樣可以檢查條件語句或循環(huán)內(nèi)的變量和值。要在 Java 透視圖的 Package Explorer 視圖中設(shè)置斷點,雙擊選擇的源代碼文件,在一個編輯器中打開它。遍歷代碼,將鼠標(biāo)放在可疑代碼一行的標(biāo)記欄(在編輯器區(qū)域的左側(cè))上,雙擊即可設(shè)置斷點。圖 3. 編輯器左側(cè)看到的兩個斷點現(xiàn)在,從 Run > Debug 菜單啟動調(diào)試會話。最好不要將多條語句放在一行上,因為會無法單步執(zhí)行,也不能為同一行上的多條語句設(shè)置行斷點。圖 4. 視圖中左側(cè)空白處的箭頭指示當(dāng)前正在執(zhí)行的行還有一個方便的斷點視圖來管理所有的斷點。圖 5. 斷點視圖條件斷點一旦了

6、解到錯誤發(fā)生的位置,您可能想要知道在程序崩潰之前,程序在做什么。一種方法就是單步執(zhí)行程序的每行語句。一次執(zhí)行一行,直到運行到可疑的那行代碼。有時,最好只運行一段代碼,在可疑代碼處停止運行,在這個位置檢查數(shù)據(jù)。還可以聲明條件斷點,它在表達(dá)式值發(fā)生變化時觸發(fā)(請參見圖 6)。除此之外,在輸入條件表達(dá)式時,也可以使用代碼幫助。圖 6. 設(shè)置條件斷點觸發(fā)器計算表達(dá)式的值為了在 Debug 透視圖的編輯器中計算表達(dá)式的值,選擇設(shè)置了斷點的那行代碼,在上下文菜單中,通過 Ctrl+Shift+I 或右鍵單擊您感興趣的變量(參見圖 7)選擇 Inspect 選項。在當(dāng)前堆??蚣艿纳舷挛闹袝嬎惚磉_(dá)式的值,在

7、 Display 窗口的 Expressions 視圖中會顯示結(jié)果。圖 7. 通過 Inspect 選項計算表達(dá)式的值剪切活動代碼Display 視圖允許您以剪切類型的方式處理活動代碼(參見圖 8)。要處理一個變量,在 Display 視圖中輸入變量名即可,視圖會提示您一個熟悉的內(nèi)容助手。圖 8. Display 視圖當(dāng)調(diào)試器停止在一個斷點處時,您可以從 Debug 視圖工具欄(參見圖 9)中選擇 Step Over 選項,繼續(xù)調(diào)試器會話。該操作會越過高亮顯示的那行代碼,繼續(xù)執(zhí)行同一方法中的下一行代碼(或者繼續(xù)執(zhí)行調(diào)用當(dāng)前方法的那個方法的下一行代碼)。執(zhí)行上一步后發(fā)生改變的變量會用某種顏色高亮

8、顯示(默認(rèn)是黃色)。顏色可以在調(diào)試首選項頁面中改變。圖 9. 改變顏色的變量要在 Debug 視圖中掛起執(zhí)行線程,選擇一個運行線程,單擊 Debug 視圖工具欄中的 Suspend。該線程的當(dāng)前調(diào)用堆棧就會顯示出來,當(dāng)前執(zhí)行的代碼行就會在 Debug 透視圖中的編輯器中高亮顯示。掛起一個線程時,將鼠標(biāo)放在 Java 編輯器中的變量上,該變量的值就會在一個小的懸停窗口中顯示出來。此時,該線程的頂部堆??蚣芤矔詣舆x中,其中的可視變量也會在 Variables 視圖中顯示出來。您可以通過單擊 Variables 視圖中合適的變量名來檢查變量。熱交換錯誤修正:動態(tài)代碼修正如果運行的是 Java 虛擬

9、機(Java Virtual Machine,JVM)V1.4 或更高的版本,Eclipse 支持一個叫做熱交換錯誤修正(Hotswap Bug Fixing)的功能,JVM V1.3 或更低的版本不支持該功能。該功能允許在調(diào)試器會話中改變源代碼,這比退出應(yīng)用程序、更改代碼、重新編譯、然后啟動另一個調(diào)試會話更好。要利用該功能,在編輯器中更改代碼后重新調(diào)試即可。由于 JVM V1.4 與 Java 平臺調(diào)試器架構(gòu)(Java Platform Debugger Architecture,JPDA)兼容,所以才有可能具備該功能。JPDA 實現(xiàn)了在運行的應(yīng)用程序中替換經(jīng)過修改的代碼的功能。如果應(yīng)用程序

10、啟動時間較長或執(zhí)行到程序失敗的地方時間很長,那么這一點特別有用。如果在完成調(diào)試時,程序還沒有全部執(zhí)行一遍,在 Debug 視圖的上下文菜單中選擇 Terminate 選項。容易犯的一個錯誤是在調(diào)試器會話中使用 Debug 或 Run,而不是 Resume。這樣做會啟動另一個調(diào)試器會話,而不是繼續(xù)當(dāng)前會話?;仨撌走h(yuǎn)程調(diào)試Eclipse 調(diào)試器提供了一個有趣的選項,可以調(diào)試遠(yuǎn)程應(yīng)用程序。它可以連接到一個運行 Java 應(yīng)用程序的遠(yuǎn)程 VM,將自己連接到該應(yīng)用程序上去。使用遠(yuǎn)程調(diào)試會話與使用本地調(diào)試會話大致相同。但是,遠(yuǎn)程調(diào)試配置需要在 Run > Debug 窗口中配置一些不同的設(shè)置。需要在

11、左側(cè)視圖中先選擇 Remote Java Application 選項,然后單擊 New。這樣就創(chuàng)建了一個新的遠(yuǎn)程啟動配置,會顯示出三個選項卡:Connect、Source 和 Common。在 Connect 選項卡的 Project 字段,選擇在啟動搜索源代碼時要引用的項目。在 Connect 選項卡的 Host 字段,輸入運行 Java 程序的遠(yuǎn)程主機的 IP 地址或域名。在 Connect 選項卡的 Port 字段,輸入遠(yuǎn)程 VM 接收連接的端口。通常,該端口在啟動遠(yuǎn)程 VM 時指定。如果想讓調(diào)試器決定在遠(yuǎn)程會話中 Terminate 命令是否可用,可以選擇 Allow termina

12、tion of remote VM 選項。如果希望可以終止連接的 VM,則選擇該選項?,F(xiàn)在,在您選擇 Debug 選項時,調(diào)試器會嘗試連接到指定地址或端口的遠(yuǎn)程 VM,結(jié)果會在 Debug 視圖中顯示出來。如果啟動程序不能連接到指定地址的 VM,會出現(xiàn)一條錯誤信息。通常來說,是否可以使用遠(yuǎn)程調(diào)試功能完全取決于遠(yuǎn)程主機上運行的 Java VM。圖 10 顯示了一個遠(yuǎn)程調(diào)試會話的連接屬性設(shè)置。圖 10. 設(shè)置一個遠(yuǎn)程調(diào)試會話的連接屬性回頁首調(diào)試其他語言盡管 Java 語言是 Eclipse 使用的最廣泛的語言,但是 Eclipse 是一個可擴展的平臺,可以支持許多其他的語言。Eclipse 可以通

13、過 C/C+ 開發(fā)工具(CDT)支持 C/C+ 。CDT 擴展了標(biāo)準(zhǔn)的 Eclipse Debug 視圖,添加了調(diào)試 C/C+ 代碼的功能,CDT Debug 視圖可以在工作臺中管理 C/C+ 項目的調(diào)試過程。CDT 中沒有內(nèi)部的調(diào)試器,但是它提供了一個 GNU GDB 調(diào)試器的前端,該調(diào)試器必須在本地可用。還有其他項目可以提供各自的調(diào)試器,例如 PHP 開發(fā)工具(PHP Development Tools ,PDT),請參見圖 11。 圖 11. PHP 調(diào)試器回頁首結(jié)束語Eclipse 平臺提供了一個內(nèi)置 Java 語言調(diào)試器,它帶有標(biāo)準(zhǔn)的調(diào)試功能,包括分步執(zhí)行、設(shè)置斷點和值、檢查變量和值

14、以及掛起和恢復(fù)線程功能。它還可以用來調(diào)試運行在遠(yuǎn)程機器上的應(yīng)用程序。Eclipse 平臺主要是一個 Java 開發(fā)環(huán)境,但是其中的 Eclipse Debug 視圖還可以用于 C/C+、PHP 和許多其他的編程語言?;仨撌字轮x感謝 Tyler Anderson 繪制了圖 11。參考資料 學(xué)習(xí)· 您可以參閱本文在 developerWorks 全球站點上的 英文原文 。· 訪問 E 獲得關(guān)于程序及其使用的全面信息。· 訪問 PlanetE 隨時了解 Eclipse 社區(qū)的變化。· 從 E 的 CD

15、T 項目 了解 C/C+ 開發(fā)工具。· 查看 Ajax Tools Framework (ATF) flash 頁面 和 項目頁面,了解 JavaScript 調(diào)試。· 通過這份 EclipseCon 教程 了解 Eclipse Debug Framework 的知識。· 查看 “Eclipse 推薦閱讀清單”。 · 瀏覽 developerWorks 上所有的 Eclipse 文章 和 教程。· Eclipse 的新用戶應(yīng)該從這里查看 Eclipse 新手入門。· 查看 IBM developerWorks 的 Eclipse 項目

16、資源中心,擴展您的 Eclipse 技能。· 要收聽針對軟件開發(fā)人員的有趣訪談和討論,請查看 developerWorks podcasts。· 要獲得 Eclipse 平臺的介紹,請參閱 “Getting started with the Eclipse Platform”。· 隨時關(guān)注 developerWorks 的 技術(shù)事件和網(wǎng)絡(luò)廣播。· 查看全球范圍內(nèi)面向 IBM 開放源碼開發(fā)人員的即將舉行的會議、商業(yè)展覽、網(wǎng)絡(luò)廣播和其他 活動。· 訪問 developerWorks 開放源碼技術(shù)專區(qū),提供了大量的 how-to 信息、工具和項目更新

17、,幫助您使用開源技術(shù)進(jìn)行開發(fā),并與 IBM 產(chǎn)品結(jié)合使用。獲得產(chǎn)品和技術(shù)· 在 IBM alphaWorks 查看最新的 Eclipse 技術(shù)下載。· 下載 IBM 產(chǎn)品評估版本,開始使用來自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的應(yīng)用程序開發(fā)工具和中間件產(chǎn)品。· 使用 IBM 試用軟件 創(chuàng)建您的下一個開放源碼開發(fā)項目,可通過下載或從 DVD 中獲得。討論· 查看 Eclipse CDT 新聞組,了解有關(guān) C/C+ 調(diào)試的開發(fā)幫助。(選擇該鏈接將啟動默認(rèn)的 Usenet 新聞閱讀器應(yīng)用程序,并打開。) · 查看 Eclipse ATF newsgroups,了解有關(guān) JavaScript 調(diào)試的開發(fā)幫助。(選擇該鏈接將啟動默認(rèn)的 Usenet 新聞閱讀器應(yīng)用程序,并打開。)· 查看 Eclipse platform newsgroups,提出有關(guān)調(diào)試以及 Eclipse 平臺方面的問

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論