成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Eclipse調(diào)試Bug的七種常用技巧

開發(fā) 后端
本篇文章主要介紹了Eclipse在調(diào)試代碼時用到的幾種調(diào)試方法,并附于截圖方便理解。

本文寫給那些像幾年前的我一樣剛剛走出校門,及一些未使用過這些高級些的調(diào)試技巧的人。

記得剛剛畢業(yè)的時候,自己連斷點也不會打,當(dāng)時還在用JCreate ,就連畢業(yè)設(shè)計也是用 System.out 找 Bug 的,想想真的很笨。開始工作后,一個星期過去了,在一個 1 、 2 百萬行的系統(tǒng)中找 Bug ,我依然在用 System.out ,當(dāng)時最痛苦的就是修改代碼,每次找到疑似 Bug ,就輸出一下,然后重啟(那時也不知道代碼熱替換),直到有一天帶我的導(dǎo)師發(fā)現(xiàn)了這樣笨笨的調(diào)試 Bug ,才讓我***次認(rèn)識了斷點,也知道了代碼修改完了可以進行熱替換, 我這個中國教育的半犧牲品才算向美好生活邁進了一小步。

1、 條件斷點

斷點大家都比較熟悉,在Eclipse Java 編輯區(qū)的行頭雙擊就會得到一個斷點,代碼會運行到此處時停止。

條件斷點,顧名思義就是一個有一定條件的斷點,只有滿足了用戶設(shè)置的條件,代碼才會在運行到斷點處時停止。

在斷點處點擊鼠標(biāo)右鍵,選擇***一個"Breakpoint Properties"

斷點的屬性界面及各個選項的意思如下圖,

2、 變量斷點

斷點不僅能打在語句上,變量也可以接受斷點,

上圖就是一個變量的打的斷點,在變量的值初始化,或是變量值改變時可以停止,當(dāng)然變量斷點上也是可以加條件的,和上面的介紹的條件斷點的設(shè)置是一樣的。

3、 方法斷點

方法斷點就是將斷點打在方法的入口處,

方法斷點的特別之處在于它可以打在 JDK的源碼里,由于 JDK 在編譯時去掉了調(diào)試信息,所以普通斷點是不能打到里面的,但是方法斷點卻可以,可以通過這種方法查看方法的調(diào)用棧。

4、 改變變量值

代碼停在了斷點處,但是傳過來的值不正確,如何修改一下變量值保證代碼繼續(xù)走正確的流程,或是說有一個異常分支老是進不去,能不能調(diào)試時改一下條件,看一下異常分支代碼是否正確?

在Debug 視圖的 Variables 小窗口中,我們可以看到 mDestJarName 變量的值為 " F:\Study\eclipsepro\JarDir\jarHelp.jar "

我們可以在變量上右鍵,選擇"Change Value..." 在彈出的對話框中修改變量的值,

或是在下面的值查看窗口中修改,保用Ctr+S 保存后,變量值就會變成修改后的新值了。

5、 重新調(diào)試

這種調(diào)試的回退不是***的,只能在當(dāng)前線程的棧幀中回退,也就說最多只能退回到當(dāng)前線程的調(diào)用的開始處。

回退時,請在需要回退的線程方法上點右鍵,選擇 "Drop to Frame"

6、 遠程調(diào)試

用于調(diào)試不在本機上的程序,有兩種方式,

1、本機作為客戶端

2、本機作為服務(wù)端

使用遠程調(diào)試的前提是服務(wù)器端和客戶端的代碼是一致的。

本機作為客戶端

本機作客戶端比較常用,需要在遠端的服務(wù)器上的java程序在啟動時打開遠程調(diào)試開關(guān),

服務(wù)器端需要加上虛擬機參數(shù)

1.5以前版本(1.5以后也可用):【-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 】

1.5及以上版本:【 -agentlib:jdwp=transport=dt_socket,server=y,address=8000】

F:\Study\eclipsepro\screensnap>java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar screensnap3.jar

連接時遠程服務(wù)器時,需要在Eclipse中新建一個遠程調(diào)試程序

這里有一個小地方需注意,連接上的時候貌似不能自動切換到Debug視圖,不要以為本機的調(diào)試程序沒有連接到服務(wù)器端。

本機作為服務(wù)端

同本機作為客戶端相比,只需要修改一下“Connection Type”

這時Eclipse會進入到等待連接的狀態(tài)

連接程序使用如下參數(shù)即可連接本機服務(wù)器,IP地址請用實現(xiàn)IP替換~~

【-agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000】

F:\Study\eclipsepro\screensnap>java -agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000 -jar screensnap3.jar

遠程調(diào)試時本地的代碼修改可同步到遠程,但不會寫到遠程的文件里,也就是說本地修改會在下次啟動遠程程序時就沒有了,不會影響到下次使用時的遠程代碼。

7、異常斷點

經(jīng)常遇見一些異常,然后程序就退出來了,要找到異常發(fā)生的地方就比較難了,還好可以打一個異常斷點,

上圖中我們增加了一個NullPointException的異常斷點,當(dāng)異常發(fā)生時,代碼會停在異常發(fā)生處,定位問題時應(yīng)該比較有幫助。

【編輯推薦】

  1. 配置Eclipse進行遠程調(diào)試
  2. Java程序調(diào)試技巧淺析
  3. 使用Eclipse調(diào)試Java程序代碼
  4. 使用Eclipse平臺進行調(diào)試
責(zé)任編輯:金賀 來源: JavaEye論壇
相關(guān)推薦

2014-05-13 09:56:24

數(shù)據(jù)挖掘

2021-10-19 14:51:33

說服力IT主管CIO

2015-09-02 12:12:13

2024-12-05 10:37:36

Java純函數(shù)final

2025-05-13 08:20:58

2025-01-06 05:10:00

Python數(shù)據(jù)類型編程

2014-01-10 10:42:33

2024-05-28 00:03:00

JavaScript開發(fā)

2020-01-14 08:00:00

.NET緩存編程語言

2022-05-10 08:08:01

find命令Linux

2025-04-03 04:11:00

JS代碼URL

2010-10-15 10:02:01

Mysql表類型

2016-03-16 10:39:30

數(shù)據(jù)分析數(shù)據(jù)科學(xué)可視化

2025-05-12 10:00:00

JavaScript代碼編碼

2025-01-21 08:00:00

限流微服務(wù)算法

2019-09-06 09:00:00

開發(fā)技能代碼

2020-01-14 11:09:36

CIO IT技術(shù)

2013-01-07 10:14:06

JavaJava枚舉

2025-01-15 10:46:23

開發(fā)JavaScript集合

2024-02-19 15:28:33

機器學(xué)習(xí)線性降維
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲综合在线视频 | 久久国产成人精品国产成人亚洲 | 欧美色综合一区二区三区 | 欧美在线播放一区 | 国产日韩欧美综合 | 永久av | 国产高清免费视频 | 狠狠爱一区二区三区 | 国产999精品久久久 精品三级在线观看 | 91精品国产综合久久久亚洲 | 久久精品一 | 国产一区欧美 | www中文字幕 | 国产精品成人一区二区三区 | 天天看天天操 | 国产精品国产三级国产aⅴ无密码 | 国产成人久久精品一区二区三区 | 中文字幕精品视频 | 日韩一区二区在线视频 | 亚洲二区视频 | 中文字幕视频在线观看 | 亚洲精品欧美 | 在线免费观看日本视频 | 日韩中文字幕av | 欧美午夜精品 | 在线观看av免费 | www亚洲免费国内精品 | av免费在线播放 | 欧美爱爱视频网站 | 国产精品自产av一区二区三区 | 亚洲区一 | 国产一区二区三区在线 | 日韩综合一区 | 国产精品久久久久久久久久 | www日本在线观看 | 中文字幕亚洲一区二区va在线 | 拍拍无遮挡人做人爱视频免费观看 | 亚洲视频欧美视频 | www日| 国产视频一区在线 | 成人午夜视频在线观看 |