Python pdb 簡要指南

Python pdb 簡要指南

pdb常用的啓動方式

a) 通過 pdb.run 方法:

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

b) 命令行參數方式

python -m pdb myscript.py

c) 最常用的是將下面一行插入到欲Debug的代碼特定位置:

import pdb; pdb.set_trace()

然後執行代碼。

(Pdb)模式下的常用命令

q
退出debug

h 即help,打印所有可以命令

h w 
打印命令 w 的含意

n
執行當前行直到到達下一行或直到它返回

s
執行當前行,一有可能就停止(比如當前行有一個函數調用)。它和n(next)的區別是當前行中有函數調用時s(step)會停止當前行的執行而去調用那個函數,而n不會停止,直到計算完成這一行(到達下一行)。

b(reak) [[filename:]lineno | function[, condition]]
設置斷點,可以是行號或函數。如 b 10b foob foo,n == 5,最後在函數foo()入口處設置一個斷點,但僅當n的值是5時纔有效。當b命令無參數時,打印所有斷點。

tb(reak) [[filename:]lineno | function[, condition]]
臨時斷點,只hit一次。

disable [bpnumber [bpnumber ...]]
使指點行的斷點(們)失效

enable [bpnumber [bpnumber ...]]
使指定行上的斷點(們)有效

c
繼續執行程序,直到遇到下一個斷點

w
即where,打印當前執行點的位置

l [first, [,last]]
輸出當前行附近的源碼

p expression
執行一個表達式當打印其值。

a(rgs)
打印當前函數的參數及其值

<直接回車>
重複執行上次的命令

並遇到pdb不認識的命令時,會將它當成python表達式執行。如果你想執行的表達時,最前面加上 ! 字符,比如 !n == 5

多個debug命令可以寫在一行上,中間用兩個分號分隔,如 s;;s

發佈了55 篇原創文章 · 獲贊 16 · 訪問量 46萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章