首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Linux 下 Python 調試利器 pdb 完整使用指南

     編輯:Java 綜合教學

Linux 下 Python 調試利器 pdb 完整使用指南

Python 內建 pdb 模塊提供類 GDB 的交互式調試能力:斷點、單步執行、堆棧查看、變量檢查、後現場調試。本文總結三種啟動方式與核心命令速查表。

一、三種啟動調試的方式

1. 命令行直接啟動(從程序入口斷下)

python -m pdb myscript.py

2. 交互式環境中啟動

>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')

3. 代碼中埋點(最常用,類比 IDE 斷點)

if __name__ == "__main__":
    a = 1
    import pdb
    pdb.set_trace()  # 程序運行到此處暫停,進入 (Pdb) 提示符
    b = 2
    c = a + b
    print(c)

二、核心命令速查表

命令縮寫功能說明
help [cmd]h查看幫助,無參數列出所有命令
nextn單步執行下一行(不進入函數內部)
steps單步執行下一行(進入函數內部)
continuec繼續執行至下一個斷點或程序結束
returnr執行至當前函數返回
break [file:]lineno [condition]b設置斷點,支持條件斷點
clear [bpnumber]cl刪除斷點
disable/enable [bpnumber]禁用/啟用斷點
list [first [,last]]l查看源碼上下文
print exprp打印變量/表達式值
argsa打印當前函數參數
where / btw打印堆棧回溯
up / downu / d在調用棧中向上/向下切換幀
jump linenoj跳轉到指定行繼續執行
quit / exitq終止調試並退出程序

三、實戰場景示例

1. 條件斷點:僅在變量滿足條件時暫停

(Pdb) break 25, i > 100  # 第 25 行且 i > 100 時斷下

2. 後現場調試:異常拋出時自動進入 pdb

python -m pdb -c continue myscript.py
# 或者代碼中:
import sys, pdb
sys.excepthook = lambda t, v, tb: pdb.post_mortem(tb)

3. 遠程調試(配合 rpdb / remote-pdb)

# 服務端代碼插入
import remote_pdb
remote_pdb.set_trace(host='0.0.0.0', port=4444)
# 客戶端連接
telnet localhost 4444
# 或 nc localhost 4444

四、進階技巧

  • 命令別名:alias pp pprint.pprint 方便打印複雜結構
  • 配置文件:~/.pdbrc 預加載別名、導入常用模塊
  • IPython 增強:%debug 魔術命令、ipdb(支持語法高亮、Tab 補全)
  • VS Code / PyCharm:圖形化界面調試底層仍調用 pdb 協議,推薦日常開發使用

五、官方文檔

Python 官方 pdb 文檔

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved