pythonのデバッグをやりやすくするツール pdb


業務上、殆どpython触らないのですが、たまに触ることになり、
且つなんか変な動きをする、という調査をする羽目になり。

んで、printでステータスを表示しようとしたら、いいもんがあるよ、と教えてもらいました。


ソースの中に、これを入れるだけ。

import pdb; pdb.set_trace()

pdb紹介:
https://docs.python.jp/3.3/library/pdb.html

これを入れると、基本的に実行がステップ実行になります。
VBとかをちょっと思い出します。


んで、コンソール上でコマンドを入力すると、ちょっとずつ実行することができるわけです。

●よく使いそうなコマンド(詳細は上記pdbの紹介をご覧ください)
l : 現在実行している付近の行を表示
s : 現在の行を実行(関数があれば内部まで入る)
n : 現在の行を実行(関数があってもその関数自体を実行)
r : 現在の関数を抜けるまで実行
b {行数} : ブレークポイントを行に設定
c : ブレークポイントまで移動
a : 現在の関数の引数をprint
p {データ} : データ部分をprint
q : デバッガ終了

未記入でenterをすると、前に実行したコマンドを再実行します。


参考:
http://racchai.hatenablog.com/entry/2016/05/30/070000