- 1. 概要
- 2. デバッグする
- 3. 変数に値を設定する
- 4. break point の指定
1. 参考サイト
本ページは、下記のサイトを参考にさせていただきました。
「27.3. pdb — Python デバッガ」
「pdb --- Python デバッガ」
「Python デバッグ Tips」
2. デバッグする
まぁ、ちょうどいい具合というか、悪い具合というか、ソース記述時に思うように動作しなかったので、デバッグすることにしました。
デバッガは以下のようにして起動します。
python -m pdb ソース名
「n」で次のステップ、「q」で終了するあたりは、他のデバッガと同様です。
わたしが、よく使うコマンドをリストしておきます。
コ マ ン ド | 意 味 | 備 考 |
b(reak) | 指定した場所(ファイル名や行番号を指定可)で停止 | |
c(ont(inue)) | ブレークポイントに出会うまで、実行を継続 | |
cl(ear) | ブレークのクリア(引数で行番号を指定) | 行番号をいれないと全部消えちゃうらしい |
l(ist) | 実行中の行を表示 | |
n(ext) | 次のステップを実行 | |
p(rint) | 値の表示 | print と打ってしまうと print 関数を実行するらしい |
q(uit) | 終了 | |
restart | プログラムを再実行します | |
u(p) [count] | スタックフレーム内で現在のフレームを count レベル (デフォルトは 1) 古いフレーム方向に移動 | |
w(here)) | スタックの底にある最も新しいフレームと一緒にスタックトレースをプリントします
矢印 (>) はカレントフレームを指し、それがほとんどのコマンドのコンテキストを決定します | |
コマンドのカッコ内((),[])は、省略可能であることを示します。
3. 変数に値を設定する
if verbose > 1:
てな行がありまして。
「verbose」の値を見てみたら
(Pdb) p verbose
0
となっておる。
ちょっと、「then」条件が見たくて、コマンドが、「gdb」に類似しているかと
(Pdb) p verbose=1
*** SyntaxError: invalid syntax
わはは、怒られちゃいました。
単に
(Pdb) verbose=1
でいいようです。
(Pdb) verbose=1
(Pdb) p verbose
1
4. break point の指定
「break point」の指定は、下記の形式になります。
b(reak) [([filename:]lineno | function) [, condition]]
「filename」は、実行時のパスと異なる場合、「パス/filename」で指定する必要があります。
|
|