工欲善其事,必先利其器。無論你的 IDE 是 IntelliJ IDEA、Pycharm、WebStorm、GoLang、還是PhpStorm ,偵錯程式都是標配。在遇到有問題的程式時,合理的利用偵錯程式的跟蹤和斷點技巧,可以很快的定位出問題原因。下面讓我們以 Pycharm 為例,一起來系統的學習下 IDE 的除錯技巧吧。
1).Resume Programe:恢復程式,比如,你在第 12 行和 16 行有兩個斷點,當前執行至第 12 行,按 Resume Programe ,則執行到下一個斷點(即第 16 行);
3).Step into:強制步入,能進入任何方法,檢視底層原始碼的時候可以用這個進入官方類庫的方法。
4).Step Into My Code為單步進入,如果當前行有自定義的方法,會進入方法內部,但不會進入官方類庫的方法,效果如下:
03.常用的 DeBug 小技巧
1).斷點條件除錯有這樣一個場景,程式碼 DeBug 的時候,我想知道下面程式碼 index 為 10 時, date_1的值是什麼,正常來說要 程式碼 DeBug 迴圈 10 次,很不方便。
當 index 的值為 10 時,DeBug 就會自動停下,效果如下圖:
2).計算表示式當我們 Debug 某個方法時,有時候會忘了傳入某個引數或者傳錯了,這個時候又不想重新Debug,就可以透過計算表示式來設定某個變數的值,如下圖,發現 day_int = 367 不是期望的值,可以滑鼠右擊下面藍色的 day_int , 選擇 Set Value, 對 day_int 臨時修改值
下面的程式碼程式會根據重新賦的值向下執行,可以看到變數 num_30 的值是 200 整除 30 的結果。
3).多執行緒除錯有時候發現對多執行緒併發程式碼無法除錯, 並不會所有斷點都走到,程式碼中 87 行的 args 裡的變數給了 6個 值,執行緒併發數量設定為 3 個,第 71 行的斷點除錯我只迴圈了 2 次,正常來說應該迴圈 6 次,如下圖:
修改後執行的效果如下: