欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

eclipse調試

系統 1816 0
daimojingdeyu 寫道

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

?

?

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

?

?

1、 條件斷點

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

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

在斷點處點擊鼠標右鍵,選擇最后一個 "Breakpoint?Properties"

eclipse調試

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

2、 變量斷點

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

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

3、 方法斷點

?

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

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

4、 改變變量值

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

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

eclipse調試

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

eclipse調試

?

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

eclipse調試

5、 重新調試

?

這種調試的回退不是萬能的,只能在當前線程的棧幀中回退,也就說最多只能退回到當前線程的調用的開始處。

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

eclipse調試

6、 遠程調試

用于調試不在本機上的程序,有兩種方式,

1、本機作為客戶端

2、本機作為服務端

使用遠程調試的前提是服務器端和客戶端的代碼是一致的。

?

本機作為客戶端

本機作客戶端比較常用,需要在遠端的服務器上的java程序在啟動時打開遠程調試開關,

服務器端需要加上虛擬機參數

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

連接時遠程服務器時,需要在Eclipse中新建一個遠程調試程序

eclipse調試

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

?

本機作為服務端

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

eclipse調試

?

這時Eclipse會進入到等待連接的狀態

eclipse調試

連接程序使用如下參數即可連接本機服務器,IP地址請用實現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

?

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

?

有關遠程調試更詳細點的介紹請參考 【使用 Eclipse 遠程調試 Java 應用程序】

?

?

好像漏了一個斷點,異常斷點,補一下。

7、異常斷點

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

eclipse調試

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

?

?

?

eclipse調試


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 污网站免费 | 亚洲国产精品日韩高清秒播 | 二区在线视频 | 亚洲欧洲日韩国产 | 亚洲成人福利在线观看 | 亚洲乱码在线 | 国产欧美一区二区精品忘忧草 | 欧美一级二级在线观看 | av国产片| 亚洲午夜在线播放 | 秦浩最新电视剧 | 中文字幕高清 | 亚洲第1页 | 5060网午夜| 欧美成年黄网站色视频 | 国产精品视频网站 | 亚洲福利网 | 亚洲97 | 奇米影视亚洲春色 | 天天影视插插插 | 一级在线免费视频 | 黄免费在线 | 成人小视频在线观看 | 美女久久 | 天天摸天天做天天爽在线 | 仇爱电视剧泰剧在线观看免费播放 | 亚洲第一精品在线 | 亚洲播播播 | 7777精品伊人久久久大香线蕉 | 91久久精品久久国产性色也91 | 日韩不卡高清 | 国产在线中文字幕 | 中文字幕日韩欧美一区二区三区 | 欧美日韩国产在线播放 | 亚洲在线xoxo日本在线 | 亚洲AV无码色情第一综合网 | 免费jizz在线播放视频 | 国产乱偷国产偷高清 | 成人伊人 | 国产二区视频 | 九九色综合 |