モジュール pdb は、Pyhtonプログラムのための対話型ソースコードデバッガを定義しています。 pdbはソースラインレベルでのでのブレークポイント設定(条件付き)と シングルステップ実行、スタックフレームの点検、ソースコードの列挙、 および任意のスタックフレームコンテキストでの任意のパイソンコードの評価をサポートしています。 また、pdbは検死(post-mortem)デバッグのサポートやプログラム制御下で呼び出すことができます。
デバッガは実際にクラスPdbとして定義され、拡張可能です。 Pdb. これは現在文書化されていませんが、ソースを読むことで容易に理解できます。 拡張インターフェースは(同じく文書化されていない)モジュール bdb と cmd を使用します。
また、ベーシックなウインドウを使用するデバッガのバージョンも存在します。 これはモジュールwdbです。そしてwdbはstdwinを必要とします。 (STDWINの特定モジュールの章を参照)
デバッガのプロンプトは"(Pdb) "です。 デバッガの制御下においてプログラムが走る典型的な使用法は、
>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')
> <string>(0)?()
(Pdb) continue
> <string>(1)?()
(Pdb) continue
NameError: 'spam'
> <string>(1)?()
(Pdb)
"pdb.py"は他のスクリプトをデバッグするために同じくスクリプトとして呼び出すことができます。 例えば、
python /usr/local/lib/python1.5/pdb.py myscript.py
クラッシュしたプログラムを点検する方法は
>>> import pdb
>>> import mymodule
>>> mymodule.test()
Traceback (innermost last):
File "<stdin>", line 1, in ?
File "./mymodule.py", line 4, in test
test2()
File "./mymodule.py", line 3, in test2
print spam
NameError: spam
>>> pdb.pm()
> ./mymodule.py(3)test2()
-> print spam
(Pdb)
モジュールは次に述べる機能を定義します。 また、それぞれがわずかに異なった方法でデバッガに入ります。
guido@python.org