最全Pycharm教程(11)——Pycharm調試器之斷點篇

轉載於https://blog.csdn.net/u013088062/article/details/50216015

1、準備工作

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

  (2)至少安裝了一個Python解釋器

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

  (4)使用Debugger tutorial正在調試處理一個實例

  2、什麼是斷點

  Pycharm提供了多種不同類型的斷點types of breakpoints,並都有特定的圖標icon。本篇教程中我們將詳細介紹行斷點,即標記了一行待掛起的代碼。

  3、斷點屬性

  有兩種方法來瀏覽和改變代碼屬性:

  (1)首先,有一個單獨的置頂窗口來顯示斷點屬性。

  (2)有一個斷點對話框 Breakpoints dialog來顯示當前應用中所存在的所有斷點及其屬性。

  4、設置斷點

  選中對應代碼行,然後執行下面步驟(二選一):

  (1)單擊左邊空白槽

  (2)按下Ctrl+F8快捷鍵

  這是一個觸發開關式的操作,即可以不斷的重複操作以移除/添加斷點。

  作爲練習,在第16行設置斷點:

  5、瀏覽並改變斷點屬性

  爲了瀏覽單獨一個斷點的屬性,只需右擊它即可:

  6、啓用和關閉斷點

  首先,清空複選框中的Line 16 in ThreadSample.py enabled選項,此時斷點會失效,同時圖標中心會變爲綠色:

  OK,再次勾選複選框,圖標恢復原狀,斷點生效。

  7、條件性代碼懸掛

  假設你希望Pycharm在當前代碼處只掛起某一個線程,而其他線程能夠正常通過斷點,操作非常簡單,爲斷點添加一個條件即可:

  接下來我們開始腳本調試(單擊工具欄中的按鈕),你會看到實際上Pycharm只在當前斷點處掛起了Thread-7,而Thread-6正常通過了該斷點:

  8、如何忽略某些斷點?

  通常情況下,你只需要在某一個斷點處停下來,而希望在其他斷點能夠正常通過。換句話說就是我們並不希望Pycharm在斷點處停止,但我們仍需要保留對應斷點來作爲標記,如何實現?

  在對話框中取消Suspend複選框的勾選,此時斷點屬性對話框中會顯示更詳細的信息:

  勾選一下兩個選項:

  (1)Log messages to console:選中這個選項後,Pycharm會在命中該斷點後在控制檯上顯示相關重要信息。

  (2)Log evaluated expressions:選中這個選項之後,Pycharm會計算下方輸入框中給出的特定表達式並顯示在控制檯上。

  順便說一下,在下發輸入框中輸入表達式時Pycharm同樣提供了拼寫提示功能(Ctrl+空格)。OK,重新運行調試,Pycharm會在調試控制檯中顯示一下信息:

  應用的基本信息。

  擊中斷點時的註冊信息

  表達式的計算結果

  9、瀏覽所有斷點

  以上你使用到的所有斷點相關的對話框都能幫助你獲取斷點的大部分重要信息。不過我們通常使用 Breakpoints dialog對話框來完成大部分斷點處理工作,它會顯示當前項目中的所有斷點的屬性信息,並方便我們對其進行更改。

  我們可以通過以下幾種方式來打開這個對話框:

  (1)Ctrl+Shift+F8快捷鍵

  (2)在主菜單中選中Run → View Breakpoints

  (3)在斷點屬性快捷對話框中單擊More (Ctrl+Shift+F8)

  (4)在調試窗口中單擊按鈕。

  10、創建一個臨時斷點

  假設你希望這樣一個斷點,即Pycharm在命中它之後就將命中的斷點刪除。Pycharm提供了一個特殊的複選項Remove once hit,默認情況下是不會啓動這個機制的。

  加入Suspend複選框已經選中,接下來再選中Remove once hit複選框,觀察斷點的圖標的變化:

  重新調試,發現Pycharm只會在斷點處暫停一次,之後便會將其移除,以保證之後的程序執行不會受到阻礙: