pudb: A full-screen, console-based Python debugger

Yanwei Liu
Aug 15, 2021

在2021年3月份的時候,曾寫過使用Python內建的pdb和breakpoint()進行程式debug ,介紹了使用pdb進行除錯的方法。

今天早上看到pudb這個工具,有著更完整的debug功能,可直接在Terminal中開啟使用,且能直接顯示出所有程式碼一行一行中的變數,也能直接新增breakpoint(鍵盤b鍵)

安裝

pip install pudb

import

只要在程式碼的第一行import以下內容,下次使用python fileName.py的時候就能開啟Debug模式

import pudb; pu.db

GUI畫面中的Variables、Stack、Breakpoints差異

Variables會顯示程式碼中的變數實際數值

Stack會分成兩部分,預設都會有module,module為實際程式碼運作到第幾行;而當程式進入function之後會顯示function的名稱。使用鍵盤的上下左右鍵可將畫面中的highlight進行切換

Breakpoints則是斷點的部份,可使用b進行設定

範例

# 1.將以下程式碼保存成test.pyimport pudb; pu.dbdef 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)
# 2.執行python test.py指令# 3.此時會進入到GUI的Debug介面# 4.使用n進入程式碼的下一行、當進入到y1 = sum(10)這一行時,可使用s進入函數當中。使用n可在函數當中進入下一行,此時右側Variables的框框中會出現result, i, n的數值。

快捷鍵

Ctrl+p: 打開屬性設置
n: next,也就是執行一步 (一定要用)
s: step into,進入函數內部 (常用,可直接進到function當中,搭配n觀看變數變化)
f: finsh current function,結束當前函數?
c: continue,繼續執行
b: break point,在游標所在行添加或消除斷點 (常用)
t: to cursor,運行到游標位置
: 開啟python命令行 (在當下行輸入python程式)
: 開啟幫助視窗 (常用,查詢快捷鍵)
o: output screen,打開輸出視窗/控制台 (觀看程式的output)
m: module,打開模組
q: quit,退出PUDB (離開pudb)
/: 搜尋
,/. 搜索下一個/上一個

參考資料

PUDB調試python程式_shuzfan的專欄-CSDN博客_pudb python

使用pudb调试python — 老顽童的wiki (zhbzz2007.github.io)

pudb使用指南 | Legendtkl

--

--