eclipse斷點調試指導_第1頁
eclipse斷點調試指導_第2頁
eclipse斷點調試指導_第3頁
eclipse斷點調試指導_第4頁
eclipse斷點調試指導_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1.進入debug模式(基礎知識列表)1、設置斷點 2、啟動servers端的debug模式 3、運行程序,在后臺遇到斷點時,進入debug調試狀態(tài) = 作用域 功能 快捷鍵 全局 單步返回 F7 全局 單步跳過 F6 全局 單步跳入 F5 全局 單步跳入選擇 Ctrl+F5 全局 調試上次啟動 F11 全局 繼續(xù) F8 全局 使用過濾器單步執(zhí)行 Shift+F5 全局 添加/去除斷點 Ctrl+Shift+B 全局 顯示 Ctrl+D 全局 運行上次啟動

2、 Ctrl+F11 全局 運行至行 Ctrl+R 全局 執(zhí)行 Ctrl+U = 1.Step Into (also F5) 跳入 2.Step Over (also F6) 跳過 3.Step Return (also F7) 執(zhí)行完當前method,然后return跳出此method 4.step Filter 逐步過濾 一直執(zhí)行直到遇到未經過濾的位置或斷點(設置Filter:window-preferences-java-Debug-step Filtering) 5.resume 重新開始執(zhí)行debug,一直

3、運行直到遇到breakpoint。     例如 :A和B兩個斷點,debug過程中發(fā)現(xiàn)A斷點已經無用,去除A斷點,運行resume就會跳過A直接到達B斷點。 6.hit count 設置執(zhí)行次數(shù) 適合程序中的for循環(huán)(設置 breakpoint view-右鍵hit count) 7.inspect 檢查 運算。執(zhí)行一個表達式顯示執(zhí)行值 8.watch 實時地監(jiān)視對象、方法或變量的變化 9.我們常說的斷點(breakpoints)是指line breakpoints,除了line breakpoints,還有其

4、他的斷點類型:field(watchpoint)breakpoint,method breakpoint ,exception breakpoint. 10.field breakpoint 也叫watchpoint(監(jiān)視點) 當成員變量被讀取或修改時暫掛 11.添加method breakpoint 進入/離開此方法時暫掛(Run-method breakpoint) 12.添加Exception breakpoint 捕抓到Execption時暫掛(待續(xù).) 斷點屬性:    1.hit count 執(zhí)行多少次數(shù)后暫掛

5、用于循環(huán)    2.enable condition 遇到符合你輸入條件(為ture改變時)就暫掛    3.suspend thread 多線程時暫掛此線程    4.suspend VM 暫掛虛擬機 13.variables 視圖里的變量可以改變變量值,在variables 視圖選擇變量點擊右鍵-change value.一次來進行快速調試。 14.debug 過程中修改了某些code后-save&build->resume->重新暫掛于斷點 15.r

6、esume 當debug調試跑出異常時,運行resume,重新從斷點開始調試 16.如果一行有很多方法, 當?shù)谝淮伟碏5鍵就跳入這一行第一個方法,F6一步一步調試,F7跳出這方法. 當?shù)诙伟碏5鍵就跳入這一行第二個方法,F6一步一步調試,F7跳出這方法. 以此類推.想進入這一行第幾個方法,就按幾次F5和F7. 2.基礎知識篇(包含部分實踐)Eclipse 調試器本身是 Eclipse 內的一個標準插件集。Eclipse 還有一個特殊的 Debug 視圖,用于在工作臺中管理程序的調試或運行。它可以顯示每個調試目標中掛起線程的堆棧框架。程序中的每

7、個線程都顯示為樹中的一個節(jié)點,Debug 視圖顯示了每個運行目標的進程。如果某個線程處于掛起狀態(tài),其堆棧框架顯示為子元素。在使用 Eclipse 調試器之前,假定您已經安裝了合適的 Java SDK/JRE(我推薦使用 Java VM V1.4)和 Eclipse Platform SDK V3.3,而且兩者的運行都沒問題。一般來說,先用 Eclipse 示例測試一下調試選項比較好。如果想開發(fā)和調試 C/C+ 項目,還需要獲得并安裝 C/C+ 開發(fā)工具(C/C+ Development Tools,CDT)。關于 Java SDK/JRE、Eclipse 平臺和示例以及 CDT,請參閱

8、0;參考資源。 圖 1 顯示了 Debug 透視圖的一般視圖。圖 1. Eclipse Debug 透視圖的一般視圖調試 Java 語言程序在可以調試項目前,需要干凈地編譯和運行代碼。首先,需要為應用程序創(chuàng)建一個運行配置,確保應用程序可以正確啟動。然后,需要通過 Run > Debug 菜單以類似的方式設置調試配置。還需要選擇一個類,將它作為調試的主 Java 類來使用(請參見圖 2)。您可以按照自己的意愿為單個項目設置多個調試配置。當調試器啟動時(從 Run > Debug),會在一個新的窗口中打開,這時就可以開始調試了。圖 2. 在調試配置中設置項

9、目的主 Java 類接下來,將討論 Eclipse 中的一些常用調試實踐。設置斷點在 啟動應用程序進行調試時,Eclipse 會自動切換到 Debug 透視圖。毫無疑問,最常見的調試步驟是設置斷點,這樣可以檢查條件語句或循環(huán)內的變量和值。要在 Java 透視圖的 Package Explorer 視圖中設置斷點,雙擊選擇的源代碼文件,在一個編輯器中打開它。遍歷代碼,將鼠標放在可疑代碼一行的標記欄(在編輯器區(qū)域的左側)上,雙擊即可設置斷點。圖 3. 編輯器左側看到的兩個斷點現(xiàn)在,從 Run > Debug 菜單啟動調試會話。最好不要將多條語句放在一行上,因為會無法單步執(zhí)

10、行,也不能為同一行上的多條語句設置行斷點。圖 4. 視圖中左側空白處的箭頭指示當前正在執(zhí)行的行還有一個方便的斷點視圖來管理所有的斷點。圖 5. 斷點視圖條件斷點一 旦了解到錯誤發(fā)生的位置,您可能想要知道在程序崩潰之前,程序在做什么。一種方法就是單步執(zhí)行程序的每行語句。一次執(zhí)行一行,直到運行到可疑的那行代碼。 有時,最好只運行一段代碼,在可疑代碼處停止運行,在這個位置檢查數(shù)據(jù)。還可以聲明條件斷點,它在表達式值發(fā)生變化時觸發(fā)(請參見圖 6)。除此之外,在輸入條件表達式時,也可以使用代碼幫助。圖 6. 設置條件斷點觸發(fā)器計算表達式的值為了在 Debug 透視圖的編輯器中計算表達式的值,選擇設置了斷點

11、的那行代碼,在上下文菜單中,通過 Ctrl+Shift+I 或右鍵單擊您感興趣的變量(參見圖 7)選擇 Inspect 選項。在當前堆棧框架的上下文中會計算表達式的值,在 Display 窗口的 Expressions 視圖中會顯示結果。圖 7. 通過 Inspect 選項計算表達式的值剪切活動代碼Display 視圖允許您以剪切類型的方式處理活動代碼(參見圖 8)。要處理一個變量,在 Display 視圖中輸入變量名即可,視圖會提示您一個熟悉的內容助手。圖 8. Display 視圖當 調試器停止在一個斷點處時,您可以從 Debug 視圖工具欄(參見圖 9)中選擇 Ste

12、p Over 選項,繼續(xù)調試器會話。該操作會越過高亮顯示的那行代碼,繼續(xù)執(zhí)行同一方法中的下一行代碼(或者繼續(xù)執(zhí)行調用當前方法的那個方法的下一行代碼)。執(zhí)行上一 步后發(fā)生改變的變量會用某種顏色高亮顯示(默認是黃色)。顏色可以在調試首選項頁面中改變。圖 9. 改變顏色的變量要在 Debug 視圖中掛起執(zhí)行線程,選擇一個運行線程,單擊 Debug 視圖工具欄中的 Suspend。 該線程的當前調用堆棧就會顯示出來,當前執(zhí)行的代碼行就會在 Debug 透視圖中的編輯器中高亮顯示。掛起一個線程時,將鼠標放在 Java 編輯器中的變量上,該變量的值就會在一個小的懸停窗口中顯示出來。此時,該線程的

13、頂部堆棧框架也會自動選中,其中的可視變量也會在 Variables 視圖中顯示出來。您可以通過單擊 Variables 視圖中合適的變量名來檢查變量。熱交換錯誤修正:動態(tài)代碼修正如 果運行的是 Java 虛擬機(Java Virtual Machine,JVM)V1.4 或更高的版本,Eclipse 支持一個叫做熱交換錯誤修正(Hotswap Bug Fixing)的功能,JVM V1.3 或更低的版本不支持該功能。該功能允許在調試器會話中改變源代碼,這比退出應用程序、更改代碼、重新編譯、然后啟動另一個調試會話更好。要利用該功能,在 編輯器中更改代碼后重新調試即可。由于 JVM V1.4 與

14、Java 平臺調試器架構(Java Platform Debugger Architecture,JPDA)兼容,所以才有可能具備該功能。JPDA 實現(xiàn)了在運行的應用程序中替換經過修改的代碼的功能。如果應用程序啟動時間較長或執(zhí)行到程序失敗的地方時間很長,那么這一點特別有用。如果在完成調試時,程序還沒有全部執(zhí)行一遍,在 Debug 視圖的上下文菜單中選擇 Terminate 選項。容易犯的一個錯誤是在調試器會話中使用 Debug 或 Run,而不是 Resume。這樣做會啟動另一個調試器會話,而不是繼續(xù)當前會話。 3.DEBUG調試方式(方法匯總篇)1、 條件斷點 斷點處點擊

15、鼠標右鍵 - 選擇"Breakpoint Properties" 勾選"Enabled" 啟動斷點 勾選"Hit Count" 輸入框寫運行次數(shù) 勾選"Enable Condition" 輸入框寫停止條件 2、 變量斷點 變量也可以接受斷點,在變量的值初始化,或是變量值改變時可以停止 可以加條件,和上面條件斷點的設置是一樣的 3、 方法斷點 方法斷點的特別之處在于它可以打在 JDK的源碼里 由于 JDK 在編譯時去掉了調試信息

16、,所以普通斷點是不能打到里面的 但是方法斷點卻可以,可以通過這種方法查看方法的調用棧 4、 改變變量值 在Debug 視圖的 Variables 小窗口中, 可以在變量上右鍵,選擇"Change Value." 在彈出的對話框中修改變量的值 或是在下面的值查看窗口中修改,Ctr+S 保存 5、 重新調試 這種調試的回退不是萬能的,最多只能退回到當前線程的調用的開始處 回退時,請在需要回退的線程方法上點右鍵,選擇 "Drop to Frame" 6、 遠程調試

17、0;用于調試不在本機上的程序 連接時遠程服務器時,需要在Eclipse中新建一個遠程調試程序 7、異常斷點 要找到異常發(fā)生的地方比較困難,還好可以打一個異常斷點 Breakpoints工具框頂右第四使用"增加Exception異常斷點" 當異常發(fā)生時,代碼會停在異常發(fā)生處,定位問題時應該比較有幫助 4.各種斷點設置方法(實踐篇)大家肯定都用過Eclipse的調試的功能,在調試的過程中自然也無法避免要使用斷點(breakpoint),但不知是否對Eclipse中各類斷點都有所了解。本篇圖文并茂地介紹了Eclipse中

18、全部類型的斷點,及其設置,希望對大家有所幫助。(2011.11.20)1. 示例程序BreakpointDemo是一個臆造的應用程序,只是為了便于講解Eclipse中各類斷點的使用罷了。其代碼如下圖所示,BreakpointDemo主要包含兩個方法:1setValue,該方法根據(jù)指定的次數(shù)(count),對成員變量value進行賦值,值的范圍為0-9的隨機整數(shù)。2printValue,該方法會調用setValue()對value進行賦值,并打印出value的值;但,如果value能被3整除,那么就會拋出IllegalArgumentException異常。2. Line BreakpointL

19、ine Breakpoin是最簡單的Eclipse斷點,只要雙擊某行代碼對應的左側欄,就對該行設置上斷點。此處,對第20行代碼設置上Line Breakpoint,如下圖所示, 可以為Line Breakpoint設置一個條件,那么當程序運行到該斷點時,只有滿足設定的條件,才會被中斷。右鍵點擊第20行的斷點,選擇"Breakpoint Properties." 在彈出的屬性對話框中,勾選上"Conditional",然后在文本框中輸入"count % 2 = 0"。 該條件表示,當程序運行到第2

20、0行時,只有當count為偶數(shù)時,程序才會被中斷。細心地話,你會發(fā)現(xiàn)該斷點的圖標發(fā)生了改變,多了一個問號。 3. WatchpointLine Breakpoint關注于程序運行的"過程",大家也常把使用這種斷點的調試稱為單步調試。但有時候,我們對程序的運行過程不太了解,可能也不太關心,不能確定在什么地方設置斷點比較合適,而可能比較關注某個關鍵變量的變化或使用。此時,就可以為該變量設置一種特殊的斷點-Watchpoint。在此示例,我們最關心的就是成員變量value的值,那么就可以為它設置一個Watchpoint,雙擊第9行代碼對應的左側欄就可以了。 使

21、用在2中所提及的方法,查看該斷點的屬性, 默認地,當該變量被訪問或它的值被修改時,程序都會被中斷。但在本示例中,只希望當對value的值進行修改時程序才需要被中斷,所以取消對"Access"的勾選。 這時,我們會發(fā)現(xiàn)原來的Watchpoin圖標也有變化了。 4. Method Breakpoint與關注對某個變量的訪問與修改一樣,我們也可以關注程序對某個方法的調用情況,即,可以設置Method Breakpoint。在此處,設置針對方法setValue的Method Breakpoint。同理,雙擊第11行代碼對應的左側欄即可。 仍然要查看該斷點的屬性。默認地,只勾選了"Entry",而沒有勾選"Exit"。這表示,當剛進入該方法(調用開始)時,程序會被中斷;而,離開該方法(調用結束)時,程序并不會被中斷。在本示例中,需要同時勾選上"Exit"。點擊OK之后,可以看到該斷點的圖標也有所改變。 根據(jù)這里的設置

溫馨提示

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

最新文檔

評論

0/150

提交評論