Pythonの標準モジュールのpdbではなく、PuDBというツールを使ったデバッグもある
pipでインストール
$ pip3 install --user pudb実行時にpudbで実行すればいい
$ pudb sample.py # 通常は $ python sample.pyもしくは-mオプションをつけて実行する
$ python -m pudb sample.pypipでインストールではなく、pipenvでインストールすればできた
https://docs.python.jp/3/library/pdb.html
デバッグしたいスクリプトを実行するときに-m pdbを付けて実行するとデバッグモードで実行できる。
$ python3 -m pdb myscript.pyソースの中に直接記述することもできる
...
import pdb; pdb.set_trace()
...
すると、記述した位置で止まり、デバッグモードになる
pdbのデバッグモードにはたくさんのpdbコマンドがある。デバッグモードで、pdbコマンドではない文字列を入力すると、Pythonのコードとして認識される。
これは、変数の値を書き換えたり、関数を呼び出したりできるということ。
!を先頭につけることで明示的にPythonのコードにすることもできる。
| コマンド | 説明 |
|---|---|
| b(reak) | ブレイクポイントの作成 |
| tbreak | 一時的なブレイクポイントの作成. 1度止まったら削除されるブレイクポイント. temp break point? |
| s(tep) | ステップイン |
| n(ext) | ステップアウト |
| r(eturn) | 現在の関数が終わるまで処理を進める |
| c(ont(inue)) | 次のブレイクポイントまで処理を進める |
| l(ist) | 現在のファイルのソースコードを表示 |
| a(rgs) | 現在の関数の引数リストを表示 |
| p | 表示 |
| q(uit) | デバッガーを終了 |