一般開(kāi)發(fā)者都是在 IDE 中進(jìn)行程序的調(diào)試,當(dāng)然,有 IDE 的話,,當(dāng)然首選 IDE 進(jìn)行調(diào)試,。 但是,,有時(shí)我們的業(yè)務(wù)場(chǎng)景,,限制只能在 Linux 命令行模式進(jìn)行調(diào)試。 這時(shí)該怎么辦呢,? 今天的Python學(xué)習(xí)教程,,就給大家介紹一個(gè) Linux 下調(diào)試 Python 程序的工具。 pdb簡(jiǎn)介pdb 調(diào)試器是 Python 標(biāo)準(zhǔn)庫(kù)提供的,,因此最為方便,,不需要安裝其他組件,直接 import 后就能使用,。 pdb 調(diào)試器提供了調(diào)試所需的大多數(shù)功能,,如斷點(diǎn)、單行步進(jìn),、堆棧幀的檢查等等,。 常用命令l # 查看運(yùn)行到哪行代碼 n # 單步運(yùn)行,跳過(guò)函數(shù) s # 單步運(yùn)行,,可進(jìn)入函數(shù) p 變量 # 查看變量值 b 行號(hào) # 斷點(diǎn)設(shè)置到第幾行 b # 顯示所有斷點(diǎn)列表 cl 斷點(diǎn)號(hào) # 刪除某個(gè)斷點(diǎn) cl # 刪除所有斷點(diǎn) c # 跳到下一個(gè)斷點(diǎn) r # return 當(dāng)前函數(shù) exit # 退出 復(fù)制代碼 使用示例本文 Python 環(huán)境:Python 3.5.2 我們先準(zhǔn)備一小段演示程序: # -*- coding: utf-8 -*- def add(a, b): return a + b if __name__ == '__main__': print("===start===") c = add(1, 3) print("===end===") 復(fù)制代碼 使用方法 1: 運(yùn)行 pdb 的最簡(jiǎn)單方法是從命令行,,將程序作為參數(shù)傳遞來(lái)調(diào)試,。 $ python -m pdb test_pdb.py 復(fù)制代碼 這時(shí),就開(kāi)始單步執(zhí)行了,。 這種方法對(duì)代碼沒(méi)有侵入性,,但是每次都需要設(shè)置斷點(diǎn)。 使用方法 2: 在代碼頭部引入 pdb,,然后可以在代碼里,,通過(guò) pdb.set_trace() 來(lái)設(shè)置斷點(diǎn): # -*- coding: utf-8 -*- import pdb def add(a, b): pdb.set_trace() return a + b if __name__ == '__main__': print("===start===") pdb.set_trace() c = add(1, 3) print("===end===") 復(fù)制代碼 此時(shí),運(yùn)行程序,,就會(huì)自動(dòng)跳轉(zhuǎn)到設(shè)置的斷點(diǎn)處: 本期Python學(xué)習(xí)教程總結(jié)沒(méi)了圖形化頁(yè)面,,調(diào)試只能這么來(lái)了,不過(guò)還好,,pdb 使用看著不難吧,。 其實(shí)還有一些增強(qiáng)的調(diào)試器,比如 IPython 的 ipdb 和 pdb++,,它們一般都提供了更好的用戶體驗(yàn),,添加了有用的額外功能,例如語(yǔ)法突出高亮,、更好的回溯和自省,。 |
|