設置調試斷點與配置調試器
前面兩節一直在介紹如何在 PyCharm 里直接運行程序,但實際學習工作過程中, 寫完代碼很少一次就能運行成功,需要通過不斷調試,最終使程序能成功執行,本節開始介紹與調試相關的功能,本節的重點是配置調試器與如何設置斷點。
1. 配置調試器
在前面章節,我們為項目配置了多個運行配置,對于這些已存在的配置,可以通過按 ??F9
(Ctrl + Shift + F9) 直接進入調試模式。但通常我們在調試前還需要配置調試器,主要包括通用 Debugger 與 Python Debugger:
1. 主菜單: PyCharm/File -> Preference/Settings -> Build, Execution, Delopyment -> Debugger
, 下面列出各選項的解釋,可根據需要進行設置。
2. 主菜單: PyCharm/File -> Preference/Settings -> Build, Execution, Delopyment -> Python Debugger
,通常使用默認設置即可,不需要更改。除非你的程序使用了PyQt 或者 Gevent
2. 斷點
斷點是源代碼標記,可以在特定點暫停程序執行并檢查其行為。設置后,斷點將保留在項目中,直到顯式刪除它。斷點分為行斷點與異常斷點。
設斷點最直接的方式是在編輯器中,點擊需要設置斷點的代碼行左側邊欄或者按 ? F8 (Ctrl + F8) 就設置了行斷點,然后在左側邊欄出現紅色的圓點圖標。
2.1 查看/編輯斷點
1. 主菜單 Run -> View Breakpoints
, 或者按 ?? F8
(Ctrl + Shift + F8),可以查看當前項目所有斷點。
Tips: 斷點雖然有多個屬性,最常用的也就前兩項,所以通常使用默認就可以了。其余屬性做為一般了解。
2. 在編輯器內, 右鍵點擊斷點圖標,可以查看與編輯單個斷點的屬性。
3. 使斷點失效, 使上面的屬性 “Enabled” 不選中即可,失效的斷點圖標是空心紅色圓。
2.2 創建行斷點
在可執行代碼行上設置行斷點,在執行該斷點以前,線程執行將被掛起,PyCharm 顯示該線程堆棧上的堆棧幀。
在編輯器中,點擊需要設置斷點的代碼行左側邊欄或者按 ? F8
(Ctrl + F8) 就設置了行斷點。
Tips: 如果想移除斷點,只需點擊斷點圖標就可以了,移除斷點的方法是在 Debugger 中設置的。
除此以外,如果按 ? ?? F8
(Ctrl + Alt + Shift + F8) 設置了臨時斷點,斷點將在命中后從項目中刪除,也就是說臨時斷點只使用一次。也可以通過設置斷點屬性 “Remove once hit” 創建臨時斷點。
Tips: 臨時斷點圖標與普通斷點是一樣的,沒執行調試前是沒辦法直接區分的,只是在調試過程中,臨時斷點被擊中后,就自動移除了。
2.2 創建異常斷點
PyCharm 為 Python、Django、Jinja2 和 JavaScript 提供異常斷點。當引發指定的異常時觸發異常斷點。它們全局應用于異常條件,不需要特定的源代碼引用。
主菜單 Run -> View Breakpoints
, 點擊 + 按鈕, 選擇 Python Exception Breakpoint。
在"Select Exception Class"對話框中,指定庫或項目中的異常類。
新增加的異常斷點會顯示在對應分類下,如果想刪除,可以點擊 — 按鈕或者選擇要刪除斷點,點擊鍵盤上的刪除按鈕。
3. 小結
本節主要是介紹調試程序前的準備工作, 主要包括如何配置調試器,斷點的分類、創建、屬性及編輯等功能。無論配置調試器還是斷點,大多數情況都會選擇系統提供的默認設置,如需更新屬性設置,請先了解本節介紹的各個屬性基本含義后再進行設置。