PUDB除錯python程式
阿新 • • 發佈:2019-02-16
其特點主要有:
- 原始碼語法高亮,棧、斷點、變數可見並且一直動態更新。變數展示還有很多可以定製化的功能
- 基於鍵盤,簡單高效。支援游標鍵和Vi快捷鍵導航,還支援PDB的某些命令
- 支援搜尋原始碼,可以使用“m”來呼叫顯示載入模組的模組瀏覽器
- 可以通過定位一行並點選“b”來設定斷點,然後在斷點視窗中可視地進行編輯。或者點選“t”來執行游標所在行
- 可以通過按下“!”來直接進入python環境
- PuDB很關注異常處理,post-mortem模式將會使得追蹤程式崩潰的最後一步更簡單
- 整合IPython
- 支援python2.6以及更高版本,包括python3
我使用的是Anaconda,但是通過conda安裝pudb時總是出現網路問題,因此採用下面的形式:
sudo apt-get install python-pudb
或者
pip install pudb
首先給出示例程式碼:
import pudb; pu.db
def sum(n):
result = 0
for i in range(n):
result = result + i
return result
if __name__ == "__main__":
y1 = sum(10)
y2 = sum(100 )
y3 = sum(100)
PUDB的使用很簡單,主要分兩步:
- 在程式碼中插入
import pudb; pu.db
- 使用pudb命令啟動python程式
# 為了演示,這裡建立了一個數列求和的python程式:pudbSum.py
pudb pudbSum.py
得到的介面可能如下:
如果需要修改配色等屬性,可以執行“Ctrl+P”調出設定介面。我的配色風格為“monokai”。
學習PUDB除錯的整個過程中,最需要的快捷鍵就是“?”,用於調出幫助視窗,如下圖所示:
常用的除錯命令如下:
- Ctrl+p: 開啟屬性設定
- n: next,也就是執行一步
- s: step into,進入函式內部
- f: finsh current function,結束當前函式?
- c: continue,繼續執行
- b: break point,在游標所在行新增或消除斷點
- t: to cursor,執行到游標位置
- !: 開啟python命令列
- ?: 開啟幫助視窗
- o: output screen,開啟輸出視窗/控制檯
- m: module,開啟模組
- q: quit,退出PUDB
- /: 搜尋
- ,/. 搜尋下一個/上一個
PUDB的介面主要分為:左上角的原始碼,右上角的變數區,左下角的命令列區,右下角的斷點區,以及右邊中間的StacK區
下面是我添加了一個斷點後,執行“c”命令後的結果。