摘要:表達式按或者來顯示選定變量或者表達式的值。這也是我最喜歡的一個功能。使用方式選擇調用棧中的一楨,點擊按鈕跳到楨要注意的是已經被修改的變量不會被重置,它們會保留當時的值。
說明
本文參考了網上一些debug的教程,又在自己實踐的基礎上增加和改進了很多技巧.以上所有教程都是在debug視圖中,請注意!
條件斷點如果你不知道如何添加斷點,只需點擊左邊面板(行號前面)斷點即被創(chuàng)建。在調試界面中,“斷點”視圖會把所有被創(chuàng)建的斷點列出來。我們可以給它加一個布爾條件,然后按Ctrl+s保存斷點,該斷點會被激活并且如果布爾條件為真,就會執(zhí)行該斷點,否則將會跳過往下執(zhí)行。
異常斷點在斷點視圖中,有一個J!標記按鈕!我們可以使用該按鈕來添加一個Java異常斷點。例如,我們想讓程序在遇到空指針異常(NullPointerException)時進入斷點,那么我們可以使用該按鈕來添加一個異常斷點!.
異常斷點特別適合調試程序的異常,迅速找到異常拋出的位置
監(jiān)視點這是一個非常好的功能,當選定的屬性訪問或修改程序時,程序會停止執(zhí)行并允許進行調試。在Outline視圖中選擇一個 類變量 右鍵選擇監(jiān)視點,屬性監(jiān)視點將會被創(chuàng)建,在斷點(Breakpoints)視圖中會把所有監(jiān)視點用列表的形式顯示出來。
expressions/表達式按Ctrl+Shift+D或者Ctrl+Shift+I來顯示選定變量或者表達式的值。我們也可以給一個變量或表達式添加永久觀察點,當程序在調試時,這些觀察點就會在表達式視圖(Expression view)中顯示出來。
修改變量值在調試過程中,我們可以修改變量值。先選好一個變量然后進入變量視圖(Variables view),根據變量類型在其對應的Value列里輸入值即可.
注意:這里只能修改基本類型和String,集合類的還不能直接輸入修改
在Main函數里面停止執(zhí)行在運行/調試設置中,編輯配置對話框中有“Main”這個選項卡,我們可以勾選“Stop in main”這個復選框。如果選中,那么在調試一個基于main方法的Java程序時,程序會在main方法第一行位置便停止執(zhí)行。
并不是在系統屬性中添加環(huán)境變量,我們可以在編輯配置對話框中很方便地進行添加。
這也是我最喜歡的一個功能。調試期間,可以重新跳到調用堆棧框架的開始處執(zhí)行,并且變量值也會回到最初。根據回檔調整堆棧的深度,這個功能的主要用途是所有變量狀態(tài)可以快速回到方法開始執(zhí)行時候的樣子,然后你可以重新進行一遍一遍執(zhí)行,這樣就可以在你關注的地方進行多次調試,但是在執(zhí)行過程中也會產生一些副作用,比如插入到數據庫里面的數據是無法刪除的!
單步過濾當我們進入(F5)方法的時候,經常會進入jdk自帶的源碼中,我們可能不需要這個庫,就可以在Perference選項卡頁面添加一個過濾器來排除這個包。
進入、跳出和返回我把這個放在最后一點,在調試過程中,這些是必須要了解(最好掌握)的東西:
F5——進入:移動到下一個步驟,如果當前行有一個方法調用,該控件將會跳轉到被調用方法的第一行執(zhí)行。
F6——跳出:移動到下一行。如果在當前行有方法調用,那么會直接移動到下一行執(zhí)行。不會進入被調用方法體里面。
F7——返回:從當前方法中跳出,繼續(xù)往下執(zhí)行。
F8——移動到下一個斷點處執(zhí)行。
debug時變量太長顯示省略號在debug界面中,右擊variable下面的空白,選擇maxLength,把10000改成0,0代表沒有限制
遠程debug遠程debug可以用來調試遠程服務器上的代碼,保證你本地代碼和遠程部署的代碼是一致,就可以通過這種方式debug服務器代碼,這個是java web開發(fā)的一大利器,否則定位服務器問題簡直是災難。遠程debug需要服務器端啟動jvm的時候做一些開啟和端口的配置,具體的配置網上很多,搜一下即可。然后在本地的debug configuration中雙擊添加一個remote java application,填寫遠程主機的host和配置的debug端口,就可以開始debug了,如下圖
跳到幀跳到幀是一種重入技巧,在debug時,eclipse可以直接跳到調用棧中指定的任意楨,并且使JVM在此處重新運行。這使你可以重新運行你的部分代碼,而不需要為了調試之前的代碼而重新來一次。使用方式:選擇調用棧中的一楨,點擊按鈕“跳到楨”
要注意的是:已經被修改的變量不會被重置,它們會保留當時的值。
Inspectinspect用來查看某個表達式的之,對于變量值debug很容查看,但是對于一個表達式的值就不容易查看,還是這句:this.getTradeDetail(uid, itemStr.subString(0,5))
想看getTradeDetail的值,就沒法想看變量值一樣(雖然這個很有可能是賦值給一個變量...),要看這種表達式值,就需要inspect,具體做法是選中這行表達式,然后右擊->inspect,或者更方便的快捷鍵組合:ctrl+shift+i,會彈出如下的展示表達式結果的框:
display也是用來觀察和修改變量or表達式的,這個應該用的人比較多,在windows->show viewz中打開display窗口,可以在display窗口里寫表達式,然后右擊選擇display運行查看結果或者ctrl+shift+D快捷鍵組合,表達式可以是程序中一行代碼或者你自己寫的一個賦值語句來改變變量值之類的。
邏輯結構主要用來展示map之類的collection數據結構存儲的值的,它只展示存儲值的邏輯部分,而屏蔽了數據結構詳細的內部結構,更方便我們查看map之類collection結構里存儲的值
在variables上找到修改的變量,有兩種方式進行修改值
1.修改list中"aaaa"的值.如圖
第一個方法,在aaaa的地方修改必須使用return,比如 return "aabbcc" 按ctrl+s進行保存
第二個方法,右擊[2]的位置,選擇change value,在彈出框中輸入return "aabbcc"按ctrl+s進行保存,操作如圖:
2.debug時修改map的值如圖:
第一個方法和list的類似.如果要修改"111"的值的話,不能用return了,必須使用map的方法進行賦值.map.put("aaa","ccccc")按ctrl+s進行保存
第二個方法右擊選擇change value,在彈出框中輸入map.put("aaa","ccccc")按ctrl+s進行保存
3.對象的修改,可以直接修改的直接在下面修改,保存即可.不能修改的就用java表達式進行修改
debug源碼,如果項目工程直接有依賴,可以直接debug到工程源碼,而不用在class文件上調試,如下圖,NCWEbpub依賴web_webapnew,在debug里配置source把web_webapnew工程加進來
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/65251.html
摘要:而程序員和醫(yī)生律師的不同點在于持續(xù)學習上。兩個小問題是需要收費,一年大概刀圖書都是英文的。的視頻基本都有英文字幕,配合作者的,英語不好的同學學習也沒有問題。英文好的有技術功底的同學多發(fā)表一些觀點,其他的同學都 摘要: 行業(yè)發(fā)展得太快,你必須學習,純靠經驗積累行不通,技術淘汰的速度遠大于你經驗積累的速度。 非雞湯:不要和程序員談自己的編程歷史,很多的經驗在今天已經不適用了。只要2-3年...
摘要:中國的行業(yè)的蓬勃發(fā)展,蛋糕之大,讓所有行業(yè)從業(yè)者的收入總體處于行業(yè)前列,可比擬的只有金融行業(yè)一個不創(chuàng)造財富,只分配財富的行業(yè)。每天收到十幾份簡歷,卻招聘不到合適的人。很多小伙伴冷門專業(yè),普通學校,畢業(yè)了工作幾年了月薪還是幾千塊,這就是現狀。 ? ? ?? ? ? ?中國的IT行業(yè)因為有人口福...
摘要:大快搜索數據爬蟲技術實例安裝教學篇爬蟲安裝前準備工作大快大數據平臺安裝完成等組件安裝啟動成功。 大快搜索數據爬蟲技術實例安裝教學篇 爬蟲安裝前準備工作:大快大數據平臺安裝完成、zookeeper、redis、elasticsearch、mysql等組件安裝啟動成功。 1、修改爬蟲安裝配置文件(最好在線下修改好后再上傳平臺) showImg(https://segmentfault.co...
閱讀 3319·2021-11-23 09:51
閱讀 2436·2021-11-09 09:46
閱讀 1476·2019-08-30 15:54
閱讀 3121·2019-08-30 14:22
閱讀 2909·2019-08-29 12:40
閱讀 1629·2019-08-26 10:33
閱讀 1774·2019-08-23 17:09
閱讀 1553·2019-08-23 16:11