MyEclipse如何跟蹤調試

MyEclipse如何跟蹤調試

       學習編程調試爲先。在MyEclipse下如何跟蹤調試只要採用以下步驟就行:

    1. 調試模式設置

       1) 在建立好的工程下面要先debug as -> java application 

      

        圖進入調試模式 

      

        圖跳出調試模式

       2) 然後再設置斷點。

      

     

    3)  最後在啓動,並在瀏覽器上運行即可,當程序走到斷點處就會轉到debug視圖下。

2. 功能說明

           1)         F5鍵與F6鍵均爲單步調試;

           2)         F5是step into,也就是進入本行代碼中執行;

           3)         F6是step over也就是執行本行代碼,跳到下一行,

           4)         F7是跳出函數 step return;

           5)        F8是執行到最後;

           6)        Step Into (also F5) 跳入 ;

           7)        Step Over (also F6) 跳過;

           8)        Step Return (also F7) 執行完當前method,然後return跳出此method,step Filter 逐步過濾一直執行直到遇到未經過濾的位置或斷點(設置Filter:window-preferences-java-Debug-step Filtering);

           9)        resume 重新開始執行debug,一直運行直到遇到breakpoint;

         10)     hit count 設置執行次數 適合程序中的for循環(設置 breakpoint view-右鍵hit count)

         11)     inspect 檢查 運算。執行一個表達式顯示執行值

         12)     watch 實時地監視變量的變化;

         13)     我們常說的斷點(breakpoints)是指line breakpoints,除了line breakpoints,還有其他的斷點類型:field(watchpoint)breakpoint,method breakpoint,exception breakpoint.

         14)     field breakpoint 也叫watchpoint(監視點) 當成員變量被讀取或修改時暫掛

         15)     添加method breakpoint 進入/離開此方法時暫掛(Run-method breakpoint)

         16)     添加Exception breakpoint 捕抓到Execption時暫掛(待續...)

         17)     斷點屬性:

                  a) hit count 執行多少次數後暫掛 用於循環;

                  b) enable condition 遇到符合你輸入條件(爲ture\改變時)就暫掛;

                  c) suspend thread 多線程時暫掛此線程;

                  d) suspend VM 暫掛虛擬機。

         18)     variables 視圖裏的變量可以改變變量值,在variables 視圖選擇變量點擊右鍵--change value.一次來進行快速調試;

         19)     debug 過程中修改了某些code後--〉save&build-->resume-->重新暫掛於斷點。

-----------------------------------------------------------------------------------------------------------------------------------------

MyEclipse調試小技巧

http://blog.sina.com.cn/s/blog_852c6e630101f25h.html

前言

現在我們很多人都是使用MyEclipse來進行開發,最近一段時間我也在使用MyEclipse,結合我自己使用過程中的經驗以及蒐羅的一些小技巧,在這裏跟大家分享一下,幫助我們大家一起利用這些小技巧來提高我們的工作效率。

 

正題

我們都知道,在使用MyEclipse進行開發的時候並沒有浪費什麼時間,浪費時間的就是我們的調試工作了,下面介紹的是我們在調試時經常會用到的一些方法:

一、調試運行的快捷鍵:

    一般情況下,我們都是直接點擊Server窗口的Run或者Debug運行服務器或則右擊項目選擇運行模式,下面介紹一個調試運行的快捷鍵Shift+Alt+D可以調出調試運行的菜單,然後我們可以選擇我們需要運行的模式,常用的就是JRT,即Java程序調試,Web服務器調試和Junit測試調試模式。

Shift+Alt+D 彈出菜單後按J :Java程序調試

Shift+Alt+D 彈出菜單後按R :在Web Server上調試

Shift+Alt+D 彈出菜單後按T :在Junit Test上調試

 

二、Debug視圖

   我們一進行Debug模式運行程序,那麼就會提示我們進入Debug視圖(或者在窗口的右上角去切換到Debug視圖),然後這個視圖默認給我們打開了很多個窗口,剛一看可能有些亂,但是對每一個窗口的作用稍作了解的話,你就會知道它的存在是多麼的方便我們的調試。下面我們就分別來看下我們常常會用到的這幾個小窗口:

1.Debug窗口

左上角有一個Debug窗口,這個窗口是用來跟蹤調試時程序運行到哪行代碼了;下面簡單介紹下它的各個快捷的使用:

 

F5:跟入Step into, 一般會跟蹤進入到調用函數的函數體,Step Over則不會跟蹤進入,直接把調用當做一個語句處理。

 

F6:單步執行Step Over。通常如果不關心該語句的調用細節,單步執行就可以了。

 

F7:返回到調用處Step Return。如果無意Step into了一個不需要關心的函數,或者沒有必要再對某個函數跟蹤了,直接F7返回到調用語句處。

 

ps:這個是我不太常用的,但是昨天嘗試了一下真的很好用,因爲有時總會不小心Step into到某某些函數然後又害怕執行過去所以一直往裏面走,很浪費時間,學會了F7可以省去不少時間滴。

 

F8:運行至下一斷點Resume。

 

這幾個快捷鍵是我們調試時最常用到的,合理的配合使用這幾個鍵可以幫助我們更加快速的定位出錯的代碼。下面舉兩個例子:

 

1)如何跳過一段循環

有的時候跟蹤代碼執行,無意中進入了循環中,看了幾次發現沒什麼問題了。是不是要StepOver到循環結束呢,或許你會Step Return,那麼循環下面的代碼就跟蹤不到了。這時候就要利用Resume這個有趣的特性了。

去掉舊斷點(循環體內的),增加新斷點(循環體外),然後Resume(F8)。

 

2)如何調試遞歸調用

還是要巧用F7StepReturn)、F8Resume)這兩個鍵。

另外別忘了Debug模式中的Expressions視圖(Window->showview-> Expressions)

把你關心的遞歸變量的表達式都add進來吧,這樣看起來就比Variable輕鬆多了。

返回上一層遞歸,使用F7。跳過循環使用上面的方法。

 

還有巧設斷點。直接讓光標運行到你需要關注的地方。

在Expressions中添加能區分遞歸層次的表達式,這樣你看起來就不會亂(不知道調用到哪一層了)。

 

2.Variables窗口

右上角第一個窗口就是Variables窗口,這個窗口是用來查看程序中變量或對象的值(只要是你程序中定義的或者調用的變量都會在這裏顯示出來),就可以知道變量或對象的值是不是你想要的

 

3.Breakpoints窗口

右上角第二個窗口是Breakpoints窗口,這個窗口是顯示你程序中所有的斷點列表,可以通過該窗口將你的以前測試時設置的一些斷點去掉(而不用去程序裏面查找)。

 

4.Expressions窗口

右上角第三個窗口就是Expressions窗口,這個窗口有些類似於我們VS中的立即窗口,它不僅支持顯示運算結果、數組元素,還可以顯示方法返回值。你只需要將你關心的表達式寫進來就可以了。

 

例如,我在Name列中輸入表達式 s.equals("0")然後在對應的value列中出現對應的結果(true還是false)。

 

5.Console窗口

最下面就是控制檯(這個窗口是我們常見的,如果沒有看到的話,直接從左下角的快速視圖中調出來即可),如果有打印的變量,在這個窗口中就可以看到這個變量輸出的值;

 

小結:

   其實,我們平常的調試,只需要用到DebugVariablesConsole窗口就夠了,但是如果錯誤比較隱蔽的話我們就需要藉助Expressions窗口來幫我們更加細緻的去查找錯誤根源。當然我們在這之前要先學會定位斷點的位置(這個需要根據你的錯誤和程序進行分析,判斷出大概的出錯位置然後設置斷點),再之後纔是合理和巧妙的使用我們這些小窗口來幫助我們提高我們調試的效率。

轉載於:https://www.cnblogs.com/lteal/archive/2013/05/07/3064399.html