Eclipse調試


  看了好多年博客園了,從沒有自己寫過。這是本人寫的第一篇文章,寫之前只希望本篇不會是最后一篇。

  好吧,言歸正傳。最近由於工作上的需要要使用Eclipse進行Java開發,其實老實說一開始用Eclipse真是各種不習慣,各種糾結不過慢慢習慣了也還好。雖然還是沒有VS使用的順手,但基本的開發也不存在問題,工具這東西主要還是看熟不熟,又跑題了。

  咳咳,程序開發當然最先要學會使用工具,工具用得好才能事半工倍。而且開發工具的使用調試功能則顯得更為重要,寫的代碼達不到預期效果當然需要調試一番了。本文作為講解Eclipse的調試,重點只講解使用Eclipse進行調試的常用 方法。更高層次的調試方法(如:遠程調試、熱部署)以及其它調試方法(如:日志追蹤分析等)則不在本文描述。

一、增加斷點

  進行調試的第一步當然是增加斷點,增加斷點的方式很簡單,只需要在斷點停住的那行代碼左側雙擊即可,再次雙擊則斷點消除。
  有斷點的狀態如下:
  
  (好精致的小圓點...)

二、啟動tomcat服務選擇debug模式

  斷點增加完進行站點發布后,啟動tomcat服務選擇debug模式即可:

 

  啟動完后Server視圖如下:

三、調試方式

  前面兩步完成后,當運行到斷點時就會自動掛起程序了如下圖:

  進行斷點后,eclipse界面自動會自動切換到調試模式,如果需要回到代碼開發模式選擇又上角的Java EE即可。

  如果Debug常用視圖在你的eclipse里面沒有,可以通過菜單Window-ShowView-Other-Deubg下來調出來。

  下面就幾種常用的視圖進行講解:

3.1 調試工具條

  調試工具條即調試代碼的執行方式,工具條如下:

  

  
就是這個工具了,七個按鈕做一下些講解:
  1).該按鈕會提示Resume F8。表示繼續運行直到遇到下一個斷點,快捷鍵為F8.
  2).Suspend即掛起選擇的線程。一般在多程線的代碼調試的時候啟用,用來查看某一個線程的堆棧幀或變量 值。
  3).Terminate即中斷操作。停止調試。停止后tomcat也會自動停止,網站不能訪問.
  4).Disconnect,當進行遠程調試時,中斷與遠程JVM的socket連接。
  5).Setp Into F5.即單步調試,如有方法則進入。快捷鍵F5
  6).Sept Over F6。單步調試,但遇到方法如果方法 內無斷點則不會進行方法。快捷鍵F6
  7).Sept Return F7。退出當前調試方法 ,返回被調用的方法。快捷鍵F7

3.2 Debug View

   debug視圖展示了當前調試掛起的線程的堆棧幀信息,每一個線程做為一個對節點顯示。  

   

  可以進行的操作有:

  

    主要常用的功能已經在上小節講過了(如:Setp Into、Setp Over...),下面主要講解兩個

 3.2.1 Drop To Frame

    該操作可以重新從方法的第一行開始逐步執行,而且成員變量的值及相關的操作則不會逆回如:在方法中執行了增加操作,如果Drop To Frame即會可能會繼續執行增加操作,可能會造成增加失敗。
    這個操作有點類似於VS里面回退執行(拖動當前執行代碼掛起的標志回退到之前操作),但相對而言功能要弱很多沒那么方便。

 3.2.2 Use Step Filters

    該方法可以過濾不想執行的的代碼斷點,可以根據包名和類名來限定。如果選擇了過濾,則還需要配置過濾的類或包。
    通過 Windows -Preferences - Java - Debug -Step Filtering

 

3.3 Variables View

Variables View即變量視圖會列出Debug視圖中所選的堆棧幀對應的相關的變量,點擊右邊的值可以對變量進行更改。

  

  變量視圖可擇的操作有:

   

   下面講解幾個常用的操作:

    3.3.1  Change Value

    這個改變值自然不要多說,可以點擊列表中去改變,也可以選擇這個。選擇這個會彈出一個框用來輸入需要改變的值。

 3.3.2 All References

    會列出這個變量所有引用的對象

    3.3.3 All Instances 

    變量所對應的類型在當然堆棧幀上的所有實例。
    其它的自然不要多說,嘗試一下就知道了。 不過要記住變量顯示的范圍的是在Debug View選擇對應的堆棧幀,如果變量值不符合預期很有可能是堆棧幀選錯了。

3.4 BreakPotints View

  Breakpoints視圖會顯示當前工作區間下的所有斷點,可以方便查詢和管理工作區間下面的斷點。
  
  Breakpoints視圖會顯示當前工作區間下的所有斷點,可以方便查詢和管理工作區間下面的斷點。有兩個操作非常有用

  3.4.1 Hit Count

        即當斷點命中到指定的次數,斷點才會命中。比如在for循環里面可以設定超過300次即命中斷點。

  3.4.2 Conditional

        可以根據指定的變量條件來命中斷點,如我們可以寫一個變量值,當觸發某些條件時設置一個固定值然后根據條件就能命中斷點了。
     注意如果同時設置二者,如果有邏輯錯誤就會自動忽略。

3.5 Expressions View

  表達式視圖也比較常用,比如需要監控方法 返回值,計算變量值等。但是沒智能提示,但是沒智能提示,但是沒智能提示...
  

四、小結

  總的來講eclipse的調試功能還是比較強大的,需要有的功能點也基本上全了,像高級一些的熱布署(hot code replace HCR)也早就得到了支持(貌似VS 2013后才支持?)。開發也無非就是寫代碼、調代碼,有時候調代碼的時間可能比寫代碼的時間還要和。掌握各種代碼調試、排查、糾錯方法也當然就能很提高自己的開發能力。當然,第一次寫文章,感覺真的累。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM