2011年12月18日

Python スクリプトに組み込まれたデバッガ・モジュール pdb

Python には、.py ファイルを右クリックして起動できる IDLE から、簡単なデバッガを使うことができます。 しかし、ステップ実行ができるだけで、変数の内容を見ることはできません。

Python でも bashlib の debugger 関数のようにデバッガ機能を起動する関数を作ろうとしたのですが、Python のモジュールにすでにそういった機能があることが分かりました。

import pdb して、ブレークしたい場所に pdb.set_trace() を記述すると、そこでデバッガが起動します。 l コマンド、w コマンドを使うとブレークした位置を表示できます。 p コマンドを使えば、変数の値を表示することができます。 Python 3.2 以降なら、display コマンドを使えば、ウォッチ機能が使えます。

http://docs.python.org/py3k/library/pdb.html?highlight=set_trace#pdb.Pdb.set_trace

デバッグの手順は、誤った出力値について、入力から出力までのデータの流れにおいて、途中のデータ処理が通っているかどうかをブレークポイントで確認し、そこの処理の入力値と出力値を確認することで、入力値が正しく、出力値が誤っている場所を2分法で狭めていく定型作業です。 print デバッグでもできなくはないですが、デバッガを使った方が何十倍も早く調べられるのです。

Python には欲しい機能がモジュールにほとんどあるみたいです。 公式ドキュメントも整備されています。 あとは、ドキュメントに動くサンプルが無いことでしょうか。

sage_p at 23:57│Comments(0)TrackBack(0) プログラミング 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔