<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          最全的Pycharm debug技巧,來襲!

          共 1988字,需瀏覽 4分鐘

           ·

          2021-01-23 17:10


          公眾號?“菜鳥學Python

          434篇原創(chuàng),設(shè)為 “星標”,一起學Python!


          工欲善其事,必先利其器。無論你的 IDE 是 IntelliJ IDEA、Pycharm、WebStorm、GoLang、還是PhpStorm ,調(diào)試器都是標配。在遇到有問題的程序時,合理的利用調(diào)試器的跟蹤和斷點技巧,可以很快的定位出問題原因。下面讓我們以 Pycharm 為例,一起來系統(tǒng)的學習下 IDE 的調(diào)試技巧吧。


          01.Debug 運行方式

          在代碼所在行號處左擊鼠標,就會設(shè)置一個行斷點。點擊 Pycharm 右上角的小蟲子圖標按鈕,就會以 DeBug 的方式運行代碼。下面是 DeBug 工作界面的簡單介紹。


          02.菜單按鈕功能介紹

          平常 Debug 代碼,常用到的一些調(diào)試按鈕如下,藍顏色的字體是按鈕的名稱:


          1).Resume Programe:
          恢復程序,比如,你在第 12 行和 16 行有兩個斷點,當前運行至第 12 行,按 Resume Programe ,則運行到下一個斷點(即第 16 行);


          2).Step Over:

          一行一行地往下走,如果這一行上有方法, 不會進入方法。例如下面第 17 行代碼有自己的實例方法,點擊 Step Over 按鈕調(diào)試代碼就不會進入這個實例方法。

          3).Step into:

          強制步入,能進入任何方法,查看底層源碼的時候可以用這個進入官方類庫的方法。

          4).Step Into My Code

          為單步進入,如果當前行有自定義的方法,會進入方法內(nèi)部,但不會進入官方類庫的方法,效果如下:


          03.常用的 DeBug 小技巧

          1).斷點條件調(diào)試

          有這樣一個場景,代碼 DeBug 的時候,我想知道下面代碼 index 為 10 時, date_1的值是什么,正常來說要 代碼 DeBug 循環(huán) 10 次,很不方便。

          在 IDE 中有個條件斷點,只需設(shè)置好變量條件,只有當某個變量等于你設(shè)置的條件的值時,斷點就會自動停下。首先右擊第 24 行的斷點,給 Conditon 設(shè)置變量條件 index == 10,并點擊 Done 保存設(shè)置。



          當 index 的值為 10 時,DeBug 就會自動停下,效果如下圖:



          2).計算表達式

          當我們 Debug 某個方法時,有時候會忘了傳入某個參數(shù)或者傳錯了,這個時候又不想重新Debug,就可以通過計算表達式來設(shè)置某個變量的值,如下圖,發(fā)現(xiàn) day_int = 367 不是期望的值,可以鼠標右擊下面藍色的 day_int , 選擇 Set Value, 對 day_int 臨時修改值

          下面的代碼程序會根據(jù)重新賦的值向下運行,可以看到變量 num_30 的值是 200 整除 30 的結(jié)果。



          3).多線程調(diào)試

          有時候發(fā)現(xiàn)對多線程并發(fā)代碼無法調(diào)試, 并不會所有斷點都走到,代碼中 87 行的 args 里的變量給了 6個 值,線程并發(fā)數(shù)量設(shè)置為 3 個,第 71 行的斷點調(diào)試我只循環(huán)了 2 次,正常來說應該循環(huán) 6 次,如下圖:

          出現(xiàn)上面的情況是因為 IDE 在 Debug 時默認阻塞級別是 Thread,解決辦法是將它的阻塞級別改為 All, 阻塞其它線程,只有在當前調(diào)試線程走完時才會走其它線程。配置方法是右擊斷點,Suspend 的值改為 All ,再點擊 Make Default, 最好點擊 Done 保存設(shè)置。



          修改后運行的效果如下:


          辛苦熬夜整理的debug 技巧就分享到這里,原創(chuàng)不易,歡迎小伙伴們在評論區(qū)留言吱一聲。


          如果覺得本篇寫的覺得對你有用,可以收藏或者給菜鳥哥來個三連哦!再次謝謝!





          程序員GitHub,現(xiàn)已正式上線!


          接下來我們將會在該公眾號上,專注為大家分享GitHub上有趣的開源庫包括Python,Java,Go,前端開發(fā)等優(yōu)質(zhì)的學習資源和技術(shù),分享一些程序員圈的新鮮趣事。





          年度爆款文案



          點這里,獲取騰訊課堂暢學卡

          瀏覽 22
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美日韩国产免费电影 | 亚洲揄拍A V | 无码操逼网 | 亚洲人性爱视频 | 三级天天干 |