程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 細說MyEclipse調試,細說myeclipse

細說MyEclipse調試,細說myeclipse

編輯:JAVA綜合教程

細說MyEclipse調試,細說myeclipse


    在程序出現問題時,我們需要找到並解決掉這些惱人的Bug,才能使程序順利的運行下去。但是,當代碼很多,程序很大的時候,找起來就很麻煩。

所以,我們需要借助工具——Eclipse/MyEclipse中的Debug(調試)手段。而調試的時候,需要入口和觀測點,所以我們需要設置斷點來進行調試。

  1 設置斷點的方法:

     在想要加上斷點的行的邊側欄雙擊/右鍵後點擊Toggle Breakpoint即可。

    2 啟動調試模式

      設置好斷點後,在項目中右鍵 —— Debug As —— Java Application即可

           或點擊如圖所示處:

              

  2 斷點的設置位置:

        a) 屬性斷點: 在成員變量的所在行設置的斷點

        (第4行的邊側欄上的標志)

         b) 方法斷點: 在方法的執行處或定義處設置的斷點(一般推薦在執行處設置)

                (17行邊側欄的標志)

          c) 條件斷點: 滿足某條件後即停止運行程序

                設置方法:  在斷點所在行點擊右鍵 Breakpoint Properties(斷點屬性) —— 如圖

            

                 注: 

                      1 書寫條件斷點的條件時,不要有分號。 sum > 8(正確) sum>8;(錯誤)

                      2 設置斷點時要牢記一個原則: 哪行設置了斷點,哪行在調試時就將要被執行。

                      所以要正確設置位置,以免出現未初始化的錯誤。

                      比如:

                            public void print() {
                *    int sum = 0;//在此行設置了斷點
                    for (int i = 0; i < 10; i++) {
                      sum += i;
                    }
                  System.out.println(sum);
               }

                      而我設置條件斷點時如下書寫: sum > 5。斷點設置在定義sum的一行,說明調試的時候sum是未被定義的,而斷點屬性設置為             sum>5—— sum都未被定義怎麼可以賦值呢?所以錯誤。

                       3 如果想要修改代碼/設置條件斷點/Breakpoint Properties中的屬性值,一定要先停止Debug,再設置,然後重新開始Debug

                          這樣才能生效。

                       4 Breakpoint Properties中幾個屬性的介紹

                         在斷點處右鍵 —— Breakpoint Properties 會進入如圖的界面:

             

 

  3 修改變量的值

    什麼時候用? 比如如果程序中某一個變量的值有問題,我們在調試時需要修改一下才能使程序運行下去。

        (點擊changeValue後彈出對話框)

  4 幾個需要掌握的用於調試的按鈕
        a: resume 英 [ri'zju:m] (重新開始) 點擊後直接執行下一個斷點,如果在循環中,執行下一次循環。
        b: step into  一步一步執行
        c: step over  一行一行執行,子函數也被看做是一步(main()裡面調用print()使用step over一次就跳過了)
        d: drop to frame 。
            主要用途是
                所有變量狀態快速恢復到方法開始時候的樣子重新執行一遍,即可以一遍又一遍地在那個你關注的
                上下文中進行多次調試(結合改變變量值等其它功能),而不用重來一遍調試到哪裡了。當然,
                原來執行過程中產生的副作用是不可逆的(比如你往數據庫中插入了一條記錄)。
            
            使用方式:
                這種調試的回退不是萬能的,只能在當前線程的棧幀中回退,也就說最多只能退回到當前線程的
                調用的開始處。回退時,請在需要回退的線程方法上點右鍵,選擇  "Drop to Frame"

   5 異常斷點 —— 幫助我們確定異常位置。
        位置:  調試界面右上角,Breakpoints一欄中——add Java Excption BreakPoint
        
        經常遇見一些異常,然後程序就退出來了,要找到異常發生的地方就比較難了,還好可以打一個異常斷點,
        這樣一來,當異常發生時,代碼會停在異常發生處,
        定位問題時應該比較有幫助。
        
        如何使用?
            1 在控制台的出錯信息中找到異常的名稱
            2 復制後打開debug界面,添加同名的異常斷點
            3 (如果只是為了找出異常出現的位置,不需要加斷點)直接開始調試,程序就會停在異常出現的地方。
        
    6 Expressions(非常靈活!強推!)

        位置: 調試界面右上角Expressions一欄
        通過添加表達式 Expressions 來查看各變量的值。
        的(Add a new watch expression)符號。
        
        書寫代表某值的表達式: 如:sum, sum*3; getSum(); 等等
        點擊OK 可以查看結果如下:(查看結果相當方便吧,個人感覺比變量窗口更有用!)
        
        比Varibles強大之處在於:
            1 查看值的方式更加靈活,根據表達式可以查看任意的值。比如: 變量,變量表達式,方法的返回值
            方法的返回值的表達式等等。sum, sum*3; getSum(); printRestule() 等等         

              

   參考資料包括:

       1 黑馬程序員許剛老師視頻  

       2 http://eggbucket.iteye.com/blog/1381610(MyEclipse調試技術)                  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved