??【微信公眾號:二哈Java帶你飛】:力求用通俗易懂、詼諧有趣的方式與大家分享知識,讓大家在學到東西的同時體驗到編碼的樂趣╰(°▽°)╯
文章目錄
- 前言
- debug詳細操作----活用手中的神兵利器
- 1.debug界面及操作
- 2.debug技巧
- 總結
前言
?? "噼里啪啦!"小哈瘋狂地敲著代碼,為了能夠準點下班,也是拼了把狗命,一頓操作猛如虎,一看bug不忍睹,好不容易寫完了代碼,滿懷期待地按下運行鍵,結果彈出了一連串的bug錯誤,“又來到令人緊張而熟悉的bug捉迷藏環節”小哈象征性的打了幾個斷點,熟練的敲下debug鍵,左手端著熱乎的鐵觀音,右手單指操作F8,一路自信走到底,結果發現走半天走了個寂寞,
??正巧老汪路過,小哈連忙上前請教如何才能迅速找到bug并予以解決,老汪說:“要想讓bug無所遁形,首先要到控制臺日志里定位bug的位置,在bug上方附近打上斷點,通過debug觀察變數里的資料變化,分析是傳參錯誤還是陳述句不規范,找到問題根源bug自然迎刃而解,”“我明白啦,可是我不知道有什么手段能對bug實作精準打擊,我吃雞的時候就被隊友吐槽夕陽紅槍法,總是抓不到點上,理論我是知道的差不多了,但總覺得少了點什么東西,”小哈聳拉著腦袋說道,
??“你缺少一套系統的debug方法,正好我前段時間收藏了一篇非常詳細的有關debug的文章,看在你這么勤奮好學的份上,就分享給你看看吧,但記得要點贊收藏關注三連,不做白嫖黨,這是技術汪的傳統美德哈!”“好的,不等下次,這次一定!謝謝前輩,汪!”
debug詳細操作----活用手中的神兵利器
1.debug界面及操作

【以下操作的順序均按圖1.2從左到右的順序】
1.Alt + F10:跳轉到當前代碼執行的行
2.F8:步過,不會進入方法
3.F7:步入,可以進入方法內部,一般用于進入自定義方法內,不會進入官方類別庫的方法
4.Alt + Shift + F7:強制步入,能進入任何方法,包括官方類別庫的方法(可用于查看底層原始碼)
5.Shift + F8:步出,從步入的方法內退出到方法呼叫處,此時方法已執行完畢,只是還沒有完成賦值,
6.Drop Frame (無快捷鍵):回退最初斷點(debug程序中想回退的時候可用,不需要前端再次發送請求,很實用)
7.Alt + F9:代碼直接運行至游標行,而不需要打斷點(避免打過多無意義的斷點,比如跳過回圈的時候可用,很實用)
8.Alt + F8:計算物件里的數值,可把游標放在物件上快速計算當前資訊

【以下操作的順序均按圖1.3從上到下的順序】
1.Rerun xxx:重啟服務
2.Toggle auto-test:切換自動測驗
3.F9:恢復運行,如果后面有斷點就跳到該斷點上,沒斷點就運行完整個流程
4.Pause Program:暫停程式,啟用Debug
5.Ctrl + F2:關閉服務
6.Ctrl + Shift + F8:查看所有斷點(可查看哪里打了斷點,雙擊可直接跳到該斷點行的位置,很實用)
7.Mute Breakpoints:使所有斷點置灰失效,再次點擊恢復(debug環境中斷點多的時候不走斷點跑完流程,很實用)

1.Alt + F7:查看當前物件在哪被呼叫
2.Add to Watches:將物件添加到Debugger面板上用于觀察資料變化
tips:如果要在直接彈框顯示物件,有三種常用方式:
1)Alt+滑鼠左鍵點擊變數(很實用)
2)滑鼠停留在變數上1秒
3)滑鼠選中變數按Alt+F8 打開Evaluate面板
2.debug技巧

1.【錯誤定位】通過Console日志定位bug的位置,在附近加上斷點
?tips:可以在一些關鍵位置加上log.info()日志資訊,便于快速排查錯誤
2.【變數線索】通過debug觀察變數數值的變化,判斷是否傳參出現了問題(資料型別不對),變數型別是否與資料庫欄位設定的型別一致(如果沒有要做一下轉換)等
3.【語法線索】如果傳參沒問題,檢查是否問題出在了java語法上,比如一些陳述句邏輯不對、獲取物件不當(操作了個空物件)、陣列越界例外等
4.【SQL線索】如果Debugger上沒什么問題,再把目光轉移到console控制臺上的sql陳述句(注意在檢測sql陳述句時建議用控制臺日志記錄的sql,因為直接用mapper里邊寫好的sql有時候是檢測不到問題的,我們要從實際場景進行分析),可以將sql陳述句單獨拿出來拼接傳的引數進行檢測(比如可以放到navicat上運行一下),通過運行sql得到的反饋來判斷問題出現的位置,
總結
??寫代碼出現bug是難以避免的,在開發程序中改bug占據了我們大量的時間,要快速捕捉并解決bug,這需要熟悉idea為我們提供的環境以及日志資訊,工欲善其事,必先利其器,掌握了debug的操作和技巧,才能助我們更快的解決開發中遇到的問題,
tips:后續會不斷更新,點贊、收藏、關注三連,感謝您的支持!

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/246592.html
標籤:其他
