1. 程式人生 > >最全Pycharm教程(10)——Pycharm偵錯程式總篇

最全Pycharm教程(10)——Pycharm偵錯程式總篇

如果覺得這篇文章對您有所啟發,歡迎關注我的公眾號,我會盡可能積極和大家交流,謝謝。 


  1、準備工作

  (1)Pycharm版本為3.0或者更高版本

  (2)至少安裝了一個Python直譯器並且已經正確配置

  (3)已經建立了一個Python工程

  2、主要內容

  介紹如何通過Pycharm來除錯指令碼檔案,以及各個工具按鈕的作用等等,至於Python程式設計方法,請參見Python documentation

  3、待複習知識

  為了完成本篇教程的內容,需要用到前面的兩個重要知識點:

  (1)Run/debug配置檔案的相關知識

  (2)斷點的相關知識

  4、Run/debug 配置知識

  每當你通過Pycharm來執行或者除錯一個指令碼檔案時,都需要一個特殊的檔案來記錄指令碼的名稱、工作目錄以及其他的重要除錯資訊。Pycharm已經針對特定模式預先建立好了配置檔案,避免我們手動去建立。

  每次你單擊執行或者除錯按鈕時(或者通過快捷選單執行相同的操作),我們實際上都是在當前工作模式中載入了對應的配置檔案。詳見product documentation

  5、斷點

  6、例項

  在你的Python工程中,建立一個新的Python檔案,命名為ThreadSample.py,然後輸入以下程式碼:

  7、設定斷點

  首先,在原始碼中設定斷點。通過單擊程式碼左側的空白槽來在對應位置生成斷點:

  8、開始除錯

  選擇 run/debug configuration "ThreadSample",然後按下Shift+F9(或者單擊工具欄中的綠色蜘蛛形式的按鈕),除錯開始,並在第一個斷點處停止:

  斷點所在的行變為藍色,說明Pycharm已經擊中了這個斷點,但尚未執行這行程式碼。

  9、更改除錯視窗的佈局

  加入你並不喜歡當前的預設佈局,例如你希望將偵錯程式輸出視窗作為一個獨立的視窗顯示以便更方便的觀察當前的除錯狀態,你可以對佈局進行個性化定製。

  首先,我們先把除錯工具視窗獨立出來,只需要右擊視窗的標題欄,然後選擇Floating mode

  接下來將控制檯視窗移動成為一個獨立的視窗,只需要拖動控制檯視窗將其拖出測試視窗即可:

  可以通過單擊工具欄上的按鈕來恢復到預設佈局。

  10、新增一個變數檢視器

  接下來我們介紹如何在除錯過程中觀察變數的狀態。我們需要對其設定一個檢視器。在Watches

視窗中,單擊綠色的加號,輸入期望檢視的變數名稱,例如這裡輸入delay,然後回車。當然你也可以採用另外一種方式:在編輯視窗中右擊變數名,在快捷選單中選擇Add to watches

  此時觀察Watches視窗,發現delay變數目前尚未定義:

  稍後你將會看到如何對這個變數進行負值,以及其在watches視窗中的變化。接下來我們為get_thread_name()函式設定一個檢視器作為練習。

  11、瀏覽幀

  此時你能看到一個名為MainThread的程序,其中包含三幀。單擊每一幀來顯示其變數狀態以及相對應的py檔案,同時會對有問題的程式碼行以高亮顯示:

  12、簡單的除錯

  在每個斷點出都單擊按鈕來時程式繼續執行,觀察控制檯的指令碼輸出:

  13、步進式指令碼除錯

  讓我們對當前指令碼進行進一步的除錯。單擊重啟除錯程序,程式再次執行到第一個斷點處並暫停。

  在除錯視窗的頂端,你會看到一列包含步進除錯按鈕的工具欄 stepping buttons

  單擊,或者按下F8,你會發現藍色標記移動到了下一行:

  與此同時,當你暫停了指令碼執行時(單擊按鈕),你能看到高亮表示的函式print_time(),你可以選擇其中的任何一個程序,並觀察變數的變化:

  14、執行到當前游標處  

  假如你不想加入斷點,但仍希望程式碼能夠除錯執行到某一指定的程式碼行,如何操作?

  返回除錯介面的第二個斷點處,在對應行插入輸入游標。

  單擊按鈕,或者按下Alt+F9快捷鍵,該行程式碼變為高亮顯示:

  15、如何呼叫Debug命令

  值得一提的是所有的除錯操作不僅僅可以通過除錯工具欄的對應按鈕來完成,還可以通過主選單中Run選單下的命令來實現,以及相關的快捷選單項。下面給出一些常用的除錯選單命令及其對應的快捷鍵列表:

如果覺得這篇文章對您有所啟發,歡迎關注我的公眾號,我會盡可能積極和大家交流,謝謝。