初心者向けのpdbの紹介記事を見かけたのでバット読んだけど、 このやり方も書いて欲しいなと思ってこのエントリを書いてみた。
#!/usr/bin/env python import sys def log(args): print args def main(args): log(args) #import pdb;pdb.set_trace() main(sys.argv)
import pdb
している行をコメントアウトしたスクリプトを用意しました。
% python2.7 -mpdb sample.py > /private/tmp/sample.py(3)<module>() -> import sys (Pdb) b 12 # <= 12行目のmain()にブレイクポイントをセットします。 Breakpoint 1 at /private/tmp/sample.py:12 (Pdb) c # <= ブレイクポイントまでスクリプトを実行します。 > /private/tmp/sample.py(12)<module>() -> main(sys.argv) (Pdb) l 7 8 def main(args): 9 log(args) 10 11 #import pdb;pdb.set_trace() 12 B-> main(sys.argv)
スクリプトの起動時に -m pdb
で渡すメリットとしてはスクリプトを編集する必要がないところです。
本番環境などで改変が禁止されているスクリプトをどうしてもデバッグしたいときにはこの方法が有効です。
お粗末な内容ですが補足でした。