PDB调试Python程序
pdb是python內(nèi)置的調(diào)試工具, 它可以在終端中調(diào)試Python程序, 這允許pdb在很多無(wú)法安裝IDE的服務(wù)器上使用.
雖然遠(yuǎn)程調(diào)試使用廣泛, 但在必要的時(shí)候(比如難以在本地搭建運(yùn)行環(huán)境)pdb仍然是一個(gè)便利的選擇.
我們可以在python源代碼中設(shè)置斷點(diǎn):
import pdbdef func():for i in range(100):pdb.set_trace() # set breakpointprint(i)隨后執(zhí)行源文件, pdb.set_trace()會(huì)如同一個(gè)斷點(diǎn)阻塞當(dāng)前Python進(jìn)程進(jìn)入pdb終端.或者使用python -m pdb test.py指令從第一行開(kāi)始調(diào)試進(jìn)入.
test.py(5)<module>() -> print(i) (Pdb)pdb終端會(huì)顯示文件名, 行號(hào),當(dāng)前文件, 下一行指令等信息.并等待用戶指令:
c / continue: 繼續(xù)執(zhí)行, 直至進(jìn)程完成或被斷點(diǎn)阻塞
n / next: 執(zhí)行下一條指令, 若遇函數(shù)直接得到函數(shù)返回值, 不進(jìn)入
s / step: 步進(jìn)執(zhí)行下一條指令,若遇函數(shù)則進(jìn)入執(zhí)行
r / return: 跳出當(dāng)前函數(shù), 返回調(diào)用棧的上一層
b / breakpoint [<line_num>] : 在指定行(下一條指令處)設(shè)置一個(gè)斷點(diǎn):b, b 5
a / args: 顯示當(dāng)前函數(shù)的參數(shù)
q / exit: 中止進(jìn)程執(zhí)行
l / list: 顯示下一條指令所在的代碼塊
pp <obj_name>: 顯示某個(gè)對(duì)象的值
disable / enable <line_num>: 禁用/啟用某行上的斷點(diǎn)
condition [<line_num>] <condition>: 在指定行上設(shè)置條件斷點(diǎn).如:condition 5 i==3
!<expr>: 動(dòng)態(tài)執(zhí)行一條語(yǔ)句, 可以是賦值等指令: !i=2, !1==1.
參考資料:
- pdb docs
轉(zhuǎn)載于:https://www.cnblogs.com/Finley/p/6071463.html
總結(jié)
以上是生活随笔為你收集整理的PDB调试Python程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 做梦梦到和朋友吵架什么意思
- 下一篇: python3 TypeError: '