溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Eclipse中怎么調(diào)試Bug

發(fā)布時間:2021-06-12 17:45:45 來源:億速云 閱讀:181 作者:Leah 欄目:編程語言

Eclipse中怎么調(diào)試Bug,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

1、 條件斷點

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

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

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

Eclipse中怎么調(diào)試Bug

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

Eclipse中怎么調(diào)試Bug

2、 變量斷點

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

Eclipse中怎么調(diào)試Bug

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

3、 方法斷點

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

Eclipse中怎么調(diào)試Bug

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

4、 改變變量值

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

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

Eclipse中怎么調(diào)試Bug

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

Eclipse中怎么調(diào)試Bug

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

Eclipse中怎么調(diào)試Bug

5、 重新調(diào)試

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

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

Eclipse中怎么調(diào)試Bug

6、 遠(yuǎn)程調(diào)試

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

1、本機(jī)作為客戶端

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

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

本機(jī)作為客戶端

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

服務(wù)器端需要加上虛擬機(jī)參數(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

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

Eclipse中怎么調(diào)試Bug

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

本機(jī)作為服務(wù)端

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

Eclipse中怎么調(diào)試Bug

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

Eclipse中怎么調(diào)試Bug

連接程序使用如下參數(shù)即可連接本機(jī)服務(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

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

7、異常斷點

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

Eclipse中怎么調(diào)試Bug

看完上述內(nèi)容,你們掌握Eclipse中怎么調(diào)試Bug的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI