目錄
1、條件斷點
2、評估表達式(Evaluate Expression)
3、日志斷點
4、方法斷點
5、異常斷點
6、Field WatchPoint
1、條件斷點
假設(shè)我們列表循環(huán)的某個元素時候才暫停,就用這種方式。具體方式在循環(huán)列表打斷點,對著斷點右鍵一下,然后會彈出有一行填寫condition的,這里就填寫條件即可,如下面的例子。
2、評估表達式(Evaluate Expression)
這種可以對斷點的值按鍵ALT+F8,我們再去執(zhí)行一些函數(shù),想求得自己最后想要的值
3、日志斷點
很多時候我們調(diào)試的時候更多的是打印日志定位異常代碼,縮小范圍之后再使用斷點解決問題;所以經(jīng)常做的事情就是在代碼里面添加日志信息,輸出函數(shù)參數(shù),返回信息,輸出我們感興趣的變量信息等。
具體做法:首先我們在想要輸出信息的地方下一個斷點;然后右鍵這個斷點,在出現(xiàn)的設(shè)置框里面把這個斷點的?suspend?屬性設(shè)置為?False?,這樣雖然叫做“斷點”,但是并不會真正斷下來;然后,我們在?log message?里面填上我們想要輸出的日志信息。如下圖(注意標紅位置):
4、方法斷點
方法斷點會在進入或退出特定方法時暫停應用的執(zhí)行。暫停時,您可以檢查變量,對表達式求值,然后繼續(xù)逐行執(zhí)行,以確定運行時錯誤的原因。具體方法:在方法第一行打上斷點,標志有不同。
5、異常斷點
有時候我們只對特定的異常才會感興趣,那么我們可以自定義補抓相關(guān)異常。
具體做法:在調(diào)試窗口點擊1處,再2處點擊增加要補抓什么樣異常
6、Field WatchPoint
在上面我們添加異常斷點的時候,點擊加號的時候,有四個選項;第一個就是我們前面所說的第二種方法斷點的添加方式,第三個是異常斷點,那么第二個?Field WatchPoint?是干什么的呢?
有沒有這樣一種場景:你發(fā)現(xiàn)某個值莫名其妙滴不知道什么時候被誰給修改了,罪魁禍首是誰?Java雖然是值傳遞,但是引用也可以是值;對象全部存放在堆上面,而堆是被所有線程共享的,因此在非常復雜的場景下,你根本不知道這些共享變量被誰修改了,這樣非常危險;在多線程環(huán)境下,不變性是一個很重要的特性,我們看到高并發(fā)的語言諸如?Erlang,?Scala?對于這種不變性都有著某種程度的支持。
具體做法:對著變量那行打斷點,然后選擇第二個;可以查看變量多種狀態(tài)改變的斷點設(shè)置;
文章來源:http://www.zghlxwxcb.cn/news/detail-426114.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-426114.html
到了這里,關(guān)于android不可不知調(diào)試技巧的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!