亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

設置調試斷點與配置調試器

前面兩節一直在介紹如何在 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. 小結

本節主要是介紹調試程序前的準備工作, 主要包括如何配置調試器,斷點的分類、創建、屬性及編輯等功能。無論配置調試器還是斷點,大多數情況都會選擇系統提供的默認設置,如需更新屬性設置,請先了解本節介紹的各個屬性基本含義后再進行設置。

圖片描述