python pdb調試基本命令整理
使用簡介
啟動調試
-
侵入式
在 py 文件內部設置:
import pdb; pdb.set_trace()
程序會在運行到這一行時停下來,進入 pdb 交互。
-
非侵入式
在運行 py 腳本時:
python -m pdb main.py
程序會在一啟動時就進入 pdb 交互。
基本命令
簡寫(命令全稱) | 功能 |
---|---|
h(elp) | 輸出所有命令幫助 |
h(elp) command | 輸出指定命令的幫助 |
q(uit) | 退出 |
查看相關命令
簡寫(命令全稱) | 功能 |
---|---|
p(rint) expr | 打印表達式的值 |
pp(rint) expr | pretty 打印表達式的值 |
w(here) | 打印當前位置(包括stack trace) |
l(ist) | 打印當前行的附近11行 |
l(ist) fisrt, last | 從行號 fisrt 打印到行號 list |
a(rgs) | 打印當前函數的參數 |
移動相關命令
簡寫(命令全稱) | 功能 |
---|---|
<ENTER> | 重復上一條命令 |
n(ext) | 執行當前語句(step over) |
s(tep) | 執行并進入函數 |
r(eturn) | 繼續執行直到當前函數返回 |
c(ontinue) | 繼續執行直到下一個斷點 |
u§ | 移動到stack trace的上一層 |
d(own) | 移動到stack trace的下一層 |
斷點相關命令
簡寫(命令全稱) | 功能 |
---|---|
b(reak) | 顯示所有斷點 |
b(reak) lineno | 在 lineno 設置斷點 |
b(reak) func | 在 func 函數的第一行設置斷點 |
其他
簡寫(命令全稱) | 功能 |
---|---|
!stmt | 執行 python 語句 stmt (而非當做pdb命令) |