pdb
是 Python 的官方標準庫之一,提供了一個交互式源代碼調試器。它可以讓開發者在程序執行過程中暫停,檢查代碼狀態(如變量的值),單步執行代碼,以及運行到某個特定位置等。這些功能使得開發者能夠理解代碼是如何執行的,以及在執行過程中數據是如何變化的,幫助快速定位和修復程序中的錯誤。
使用 pdb
,可以做到以下幾點:
- 啟動和停止程序的執行,在感興趣的地方暫停,查看那時候的程序狀態。
- 單步執行代碼,逐行或逐過程地運行程序,觀察執行過程和狀態變化。
- 查看程序的執行環境,包括局部和全局命名空間的內容。
- 修改程序的執行狀態,改變變量的值,動態地影響程序的行為和執行路徑。
- 設置斷點,使得程序在滿足特定條件或達到特定代碼行時自動暫停。
可以通過多種方式使用 pdb
,例如直接在命令行中啟動,或在代碼中嵌入斷點。下面是一些基本用法:
-
命令行啟動:在終端中使用
python -m pdb your_script.py
來啟動pdb
并執行你的腳本。 -
在代碼中設置斷點:你可以在代碼中的任何位置添加
import pdb; pdb.set_trace()
,這會在該行處暫停程序執行,啟動pdb
調試環境。
一個簡單示例:
import pdbdef divide(a, b):pdb.set_trace()return a / bprint(divide(1, 0))
當執行到 pdb.set_trace()
所在行時,程序會暫停,并進入 pdb
的交互式環境,此時可以進行變量檢查、單步執行等操作。
pdb
提供了豐富的命令來支持調試,像是:
c
(continue):繼續執行程序直到遇到下一個斷點。n
(next):執行下一行代碼。s
(step):進入當前行調用的函數內部。l
(list):顯示當前行的上下文代碼。p
(print):打印變量的值。q
(quit):退出pdb
調試器。
pdb
是 Python 自帶的功能強大的調試工具,對于理解和調試 Python 代碼非常有幫助。對于更大的項目,或需要更高級功能的情況,像 ipdb
(基于 pdb
,但提供了更好的交互性)或 IDE 集成的調試工具可能更為合適。